Einzelnen Beitrag anzeigen

Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#5

Re: Pixelkoordinaten einer Linie

  Alt 28. Jul 2007, 17:42
Geht auch mit Vektoren.
Man zieht einfach eine Gerade durch die 2 Punkte und Prüft, ob der 3. Punkt auch auf der Geraden Liegt.

Gerade: [x y] = [p1.x p2.y] + lambda * [p2.x-p1.x p2.y-p2.y]
Das ist die Gerade. Je nachdem welche Zahl man für lambda einsetzt, berechnet man einen anderen Punkt auf der Geraden. Gibt es ein lambda, durch das man den 3. Punkt erhält, liegt dieser auf der Geraden. (Achtung: muss nicht zwischen den Punkten liegen. Kann man später aber mit dem x-Wert überprüfen)

Gleichungssystem:

p3.x = p1.x + lambda * (p2.x-p1.x)
p3.y = p1.y + lambda * (p2.y-p1.y)

Oder kurz:
if (p1.x-p3.x)/(p1.x-p2.x) = (p1.y-p3.y)/(p1.y-p2.y) then -> auf der Geraden Oder vielleicht auch das, wenn das obere nicht funktionieren sollte:
if abs((p1.x-p3.x)/(p1.x-p2.x)-(p1.y-p3.y)/(p1.y-p2.y))<0.001 then -> auf der Geraden Keine Ahnung ob das jetzt so stimmt, ist schon etwas her, dass ich das in der Schule gelernt habe, aber müsste schon funktionieren.
  Mit Zitat antworten Zitat