Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
Turbo Delphi für Win32
|
Re: Pixelkoordinaten einer Linie
28. Jul 2007, 18:23
Stichwort: Lineare Funktion
Jede Linie (naja, außer einer senkrechten) lässt sich als lineare Funktion darstellen. Eine lineare Funktion ist eine Funktion f(x)=mx+t. Wenn du also zwei Punkte P1(x1|y1) und P2(x2|y2) hast, kannst du m und t folgendermaßen berechnen:
t=y1
m=(y2-y1)/(x2-x1)
Wenn du jetzt einen Punkt P3(x3|y3) hast, musst du nur noch die Koordinaten einsetzen, wenn also folgende Gleichung gilt, liegt P3 auf der Gerade P1P2:
y3=x3*m+t
Wenn du wissen willst, ob P3 auf der Strecke [P1P2] liegt, musst du noch überprüfen, ob x1<=x2<=x3.
Eine Ausname ist, wie gesagt, eine senkrechte Gerade (also mit y1=y2), da musst du überprüfen, ob y3=y1. Bei einer senkrechten Strecke musst du außerdem noch überprüfen ob y1<=y2<=y3.
Manuel Eberl „The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
|