Blaubart: GD: Schnittpunkte ermitteln

Beitrag lesen

Tach.

x/a + y/b = 1

was heisst x, was a? Wieso 1. Sowas sind für mich Welten in denen ich leider nicht drinstecke.

Da hast Du Dir genau die Darstellung rausgesucht, die Dich erstmal am wenigsten weiterbringt. Deswegen hatte ich Dir ja den anderen Part auf der Seite verlinkt. ;)

Hmm, wenn Du mit der Mathematik dort nicht so viel anfangen kannst und an Beispielen besser lernst, zeig ich Dir, was ich mir (in Matlab) ausgeknobelt habe:

Eine Gerade a, die durch die Punkte A1 und A2 geht.
Eine Gerade b, die durch die Punkte B1 und B2 geht.

Jeder Punkt wird jeweils durch Koordinaten x (horizontal) und y (vertikal) beschrieben.

Eine Hilfsfunktion cr(), die zwei Punkte A und B übergeben bekommt.

function cr (A, B) {
    return A.x * B.y - A.y * B.x;
}

Den Schnittpunkt der Geraden a und b kann man nun so berechnen:

((A2-A1)*cr(B1, B2) - (B2-B1)*cr(A1, A2)) / cr(A2-A1, B2-B1)

Damit mußt Du nur aufpassen, wenn beide Gerade parallel verlaufen, sich also nicht schneiden. Dann gibt es nämlich eine Division durch Null. Diesen Fall also vorher abfangen, sonst geht Dein Programm krachen!

--
Once is a mistake, twice is Jazz.