ATMEL
16-06-2012 12:32:52
Bardzo prosta sprawa. Wystarczy wyznaczyć funkcję przechodzącą przez dwa punkty (początku i końca odcinka), a następnie podstawiając do uzyskanego wzoru współrzędną x punktu, sprawdzić czy wyliczona wartość jest większa, mniejsza lub równa współrzędnej y punktu. Na tej podstawie można określić gdzie leży punkt.
Oczywiście pasowałoby dodać warunek czy punkt znajduje się w obszarze odcinka tzn. nie "wychodzi" poza jego współrzędne, ale to już zależy od zastosowania.
Podaję wzór:
y = (Lky - Lpy) / (Lkx - Lpx) * Px + (Lkx * Lpy - Lky * Lpx) / (Lkx - Lpx)
y < Py Nad odcnikiem
y = Py Na odcniku
y > Py Pod odcnikiem
gdzie:
(Lpx, Lpy) - współrzędne początku odcinka
(Lkx, Lky) - współrzędne końca odcinka
(Px, Py) - współrzędne punktu
y - zmienna pomocnicza