Denkanstoß benötigt: Schnittpunkt 2er Strahlen im R^2



  • Hi Leute!
    Ich brauch mal einen kleinen Denkanstoß was den Schnittpunkt 2er Strahlen angeht.
    Wenn man da den 1. Strahl zur X-Achse machen würde, also die Koordinate = [0, 0] und die Normale = [1, 0] und den 2. Strahl entsprechend rotieren, sodass die Verhältnisse noch stimmen.
    Und dann den 2. Strahl als lineare Funktion nehmen und die Gleichung auf den Nullpunkt lösen.
    Am Ende den erhaltenen x-Wert in einen Vektor packen (y=0) und wieder "zurückrotieren"
    ...
    ...
    Könnte das gehen, oder gibt's da was besseres?

    Danke im Voraus!



  • es geht, ich finde es etwas umständlich. seien

    s(r) = A*r + B
    t(v) = C*v + D
    

    zwei geraden. (großbuchstaben vektoren, kleinbuchstaben skalare)
    [code]
    s(r) =(!) t(v)
    [code]
    sind zwei gleichungen mit zwei unbekannten, kann man lösen.
    der schnittpunkt ist dann s(r) (einsetzen)

    ist bei dir ein "strahl" eine gerade oder eine halbgerade ? für halbgeraden musst du noch schauen, dass r>0, v>0



  • Strahlen sind bei mir Halbgeraden.
    Ich kann mit deiner Formel irgendwie nicht recht viel anfagen.
    Könntest du das bitte noch ein bisschen genauer erklären?



  • Zwei Geraden kann man immer in der Form:

    x = a + rb
    

    wobei x, a und b Vektoren in einem Raum sind (bei dir R²) und
    r eine reele Zahl ist.

    Dabei bezeichnet b den Richtungsvektor und a den Startpunkt der
    Geraden.

    Mal ein Beispiel: die erste Winkelhalbierende:

    a = (0, 0)
    b = (1, 1)
    
    x = (0, 0) + r*(1, 1)
    

    Wenn du nun den Schnittpunkt zweier Geraden bestimmen möchtest,
    geht man wie folgt vor:

    gegeben sind ja zwei geraden:
    x = a + rb   und
    x = a' + sb'
    

    Man setzt diese zwei Gleichungen nun gleich:

    a + rb = a' + sb'
    

    Dadurch erhält man nun zwei Gleichungen (in deinem Fall):

    sei nun a = (a1, a2), b = (b1, b2)
    und entsprechend: a' = (a'1, a'2) und b' = (b'1, b'2)
    
    a + rb = a' + sb'   <=>
    
    (a1, a2) + r(b1, b2) = (a'1, a'2) + s(b'1, b'2)  <=>
    
    a1 + r b1 = a'1 + s b'1  und
    a2 + r b2 = a'2 + s b'2
    

    Dieses Gleichungssystem ist, falls es einen Schnittpunkt gibt,
    eindeutig lösbar, indem du dann nach r oder s auflöst.

    Zum Schluss noch das r oder s in die ursprüngliche Gleichung
    einsetzen und du erhälst den Schnittpunkt.

    Noch Fragen?
    Viel Spaß beim Rechnen.

    Gruß mcr

    PS: leider funktionieren die Latex-Umgebungen bei mir nicht. 😞



  • Jetzt muss ich das ganze nur noch in eine C++ taugliche Form bringen 😋
    Danke an mcr!
    Wenn ich was brauchbares hab, verrat ich's 😉


Anmelden zum Antworten