schnittpunkte...
-
also ich weiß nicht ob das hier in dieses forum gehört,
aber ich denk es wird mir keiner böse sein ...ich hab ein problem :
ich muss einen algorithmus schreiben der den schnittpunkt
von zwei vektoren berechnetalso ich hab:
vektor AB und vektor CD
und muss vektor OS berechnenso weit ich weiß ist:
OS = OA + AB(einheitsvektor)*x
und
OS = OB + CD(einheitsvektor)*yaber nun stehe ich an...ich weiß nicht mehr weiter ....
ich hoffe es kann mir einer helfen???mfg heady
-
Lösen wie jedes andere LGS.
Bye, TGGC
-
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum Mathematik verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
bravo schrieb:
schnittpunkt
von zwei vektoren berechnetNur als kleine mathematische Anmerkung: Vektoren haben keinen Schnittpunkt! Das was du meinst, das sind Geraden.
-
ok für alle dies immer besser wissen :
ich suche den schnittpunkt von den zwei vektoren projezierten
strecke/geraden...
-
bravo schrieb:
ich muss einen algorithmus schreiben der den schnittpunkt
von zwei vektoren berechnet.. zwei Geraden
bravo schrieb:
also ich hab:
vektor AB und vektor CD
und muss vektor OS berechnenso weit ich weiß ist:
OS = OA + AB(einheitsvektor)*x
und
OS = OB + CD(einheitsvektor)*yaber nun stehe ich an...ich weiß nicht mehr weiter ....
ich hoffe es kann mir einer helfen???Ich nehme mal an, Du meinst
OS = OC + CD*y
Den 'einheitsvektor' kannst Du weglassen.Du kannst OS bestimmen, wenn Du x oder y kennst. Das geht so:
Die Gleichung
OA + ABx
stellt alle Punkte dar, die Gerade 1 bilden; und
OC + CDy
alle Punkte, die Gerade 2 bilden. Im Schnittpunkt ist das natürlich der gleiche Punkt (OS) also kann man das gleichsetzen:
OA + AB*x = OC + CD*y
kleine Umformung:
AB*x - CD*y= OC - OA
Da die Vektoren wahrscheinlich 2-dimensional sind (Ebene) ist das jetzt ein lineares Gleichungssystem (LGS) mit zwei Unbekannten.
angenommen AB sei <u1,u2> und cb sei <v1,v2> und das Ergebnis der Subtraktion OC-OA sei <w1,w2>, dann berechnen sich x und y zu:
x = \frac{w1\*v2-w2\*v1}{D}
y = \frac{u1\*w2-u2\*w1}{D}
mit
Du solltest vor der Division noch prüfen, ob D (die Determinante) nicht 0 ist. In diesem Fall liegen die Geraden parallel und es gibt keinen definierten Schnittpunkt.Einsetzen von z.B. x in OA + AB*x ergibt dann OS.
Gruß
Werner
-
Ich sags noch, aber es hört ja keiner...
Bye, TGGC (Demo or Die)
-
@werner salomon
ja danke das hat mir schon viel weitergeholfen...
eine frage hab ich aber noch...w
OA + AB*x nicht gleich OC + CD*y ist??
schneiden sie sich dann nicht??
-
so ich will alle noch mal danken die mir geholfen haben
ich hab soweit den algorithmus ausprogrammiert...
falls ihn einer haben will muss er mir es nur sagen
-
bravo schrieb:
eine frage hab ich aber noch...w
'w' wie 'wenn'
bravo schrieb:
OA + AB*x nicht gleich OC + CD*y ist??
schneiden sie sich dann nicht??Also wenn OA + AB*x nicht gleich OC + CD*y ist; bzw. es kein Paar x und y gibt, für das die beiden Ausdrücke gleich sind, dann liegen die Geraden parallel. Einfaches Beispiel:
D=\left| \begin{array}{*{2}{c}} 1 & 2 \\ 1 & 2 \\ \end{array} \right|= 1\*2 - 1\*2 =0
\left({0 \atop 0}\right) + \left({1 \atop 1}\right)*x
kann nie
\left({1 \atop 0}\right) + \left({2 \atop 2}\right)*y
werden.
Beide Geraden laufen diagonal; die eine geht durch den Ursprung und die zweite liegt um 1 rechts daneben. Da kann man in x und y einsetzen was man will, das ist nie gleich. Das sieht man auch an der DeterminanteGruß
Werner