C Vektoren Vektor mit Array vergleichen

esteban313

Lieutenant
Registriert
Juli 2005
Beiträge
760
Hey,

bin ein kompletter C-Neuling und finde nichts entsprechendes zu meinem Problem:

ich bekomme einen Vektor xc[3] (mit drei Knotenkoordinaten) und möchte diesen mit einem Array der Größe [3*4] vergleichen. Dieser Array enthält die Koordinaten der vier Eckknoten eines Rechtecks.
Der Vektor xc liegt in der Nähe von einem dieser Eckknoten, aber nicht zu 100 % auf ihm.

Könnt ihr mir evtl. einen Tipp geben, wie ich den entsprechenden Eckknoten zum Vektor xc herausbekomme? Hab im Netz leider nur Fälle von 100%iger Übereinstimmung gefunden.

Vielen Dank für eure Hilfe!
 
Ich würde einfach den Abstand zwischen xc und jedem der Knoten im Array berechnen. Der gesuchte Knoten ist dann der mit dem geringsten Abstand zu xc. Abstand gemäß Euklidischem Abstand berechnen.
 
"Könnt ihr mir evtl. einen Tipp geben, wie ich den entsprechenden Eckknoten zum Vektor xc herausbekomme?"
Die selbe Frage stelle ich mir auch... wie wird diese Entscheidung überhaupt getroffen?
Also ich würde ja vermuten über den Abstand (-> Pythagoras, das Wurzel-Ziehen kann man sich aber sparen)...

Wenn über Abstand, dann kannst du die Formel als Grundlage nehmen: distance = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) + (z1-z2)*(z1-z2)
Und die Koordinaten, wo die Entfernung am kleinsten ist, nehmen...

Eine Skizze würde im Übrigen nicht schaden...
 
Zuletzt bearbeitet: (Typos in der Formel korrigiert)
Wenn du xc von den Eckpunktvektoren einzeln abziehst und dann den Betrag ausrechnest ist der kürzeste, der nächste.
 
Zuletzt bearbeitet:
Du solltest am besten die vier paarweisen euklidischen Abstände zwischen xc und und den Eckknoten bestimmen. Der Eckknoten, der die geringste Distanz zu xc hat, ist dann der, den du suchst. ;)
 
Hey

vielen Dank euch allen für die Hilfe. Den Vorschlag mit den euklidischen Abständen habe ich umgesetzt und hat auch einwandfrei funktioniert!

viele Grüße
 
Zurück
Oben