Rzutowanie punktu na prostą
gringoM
Rzutowanie prostopadłe punktu "p" na prostą zdefiniowaną dwoma punktami "p1" i "p2".
Dla uproszczenia założę, że istnieje taka klasa jak dPoint2D posiadająca pola x i y typu double.
Zagadnienie jest następujące: dany jest punkt "p" i linia "L" taka, że punkty "p1" oraz "p2" należą do tej linii, natomiast punkt "p" do niej nie należy. Założenie: p1 != p2. Zrzutowanie punktu "p" na linię "L" da punkt "pZ", który jest prostopadłym rzutem punktu "p" na tę linię.
Obliczyć należy współczynnik "u" w następujący sposób:
powyższy wzór można zapisać z użyciem mnożenia skalarnego wektorów:
punkt pZ otrzymany zostanie w wyniku następującej operacji:
Aby dowiedzieć się więcej o wektorach, oraz jak obsłużyć operatory dla przykładowej klasy wektora 2D zajrzyj do artykułów:
Operacje na wektorach
Implementacja wektorów
Aby dowiedzieć się więcej na temat tych wzorów i innych tego typu obliczeń geometrycznych zajrzyj na tą stronę:
http://local.wasp.uwa.edu.au/~pbourke/geometry/pointline/
Aby zobaczyć jak działa ten algorytm zajrzyj tutaj: