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 berechnet

    also ich hab:

    vektor AB und vektor CD
    und muss vektor OS berechnen

    so weit ich weiß ist:

    OS = OA + AB(einheitsvektor)*x
    und
    OS = OB + CD(einheitsvektor)*y

    aber 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 berechnet

    Nur 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 berechnen

    so weit ich weiß ist:

    OS = OA + AB(einheitsvektor)*x
    und
    OS = OB + CD(einheitsvektor)*y

    aber 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 + CD
    y
    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
    D=u1v2u2v1D = u1 * v2 - u2 * v1
    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:
    \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 Determinante

    D=\left| \begin{array}{*{2}{c}} 1 & 2 \\ 1 & 2 \\ \end{array} \right|= 1\*2 - 1\*2 =0

    Gruß
    Werner


Anmelden zum Antworten