[C++] Odległość punktu od prostej

Czy ktos mógłby mi wytłumaczyc (czyli przedstawic krotki i nieskomplikowany dowod matematyczny) w jaki sposób autor tego ebooka:

http://users.v-lo.krakow.pl/~climek/ebooki/stanczyk.pdf

wyprowadził wzór na odległość punktu p od prostej zawierającej punkty p1 i p2?

Nie rozumiem między innymi tego w jaki sposób pozbyto się tam np. wyrazu C, który występuje we wzorze z postacią ogólną prostej:

//Funkcja wyznacza odległość punktu p od prostej (p1 -> p2)double PointLineDist(POINTD p1, POINTD p2, POINTD p)

Raczysz żartować: http://en.wikipedia.org/wiki/Distance_f … _to_a_line

są trzy dowody, wszystkie tak proste jak drut.

W takim razie jeśli dwa odejmowania i dzielenie ciebie przerastają, to powinieneś zastanowić się czy dobrze wybrałeś sobie zajęcie, poważnie…

Ax+By+C=0 - postać ogólna

y = ax + b - postać kierunkowa

co zrobić, żeby do niej dojść? Może przenieśmy C oraz Ax na prawą stronę (odejmowanie), a potem podzielmy przez B?

Ax+By+C=0 // -C

Ax+By = -C // -Ax

By = -Ax-C // :B

y = (-Ax-C)/B // korzystamy z rozdzielności dzielenia względem odejmowania

y = -(Ax/B)-(C/B) <=> y = (-A/B)x + (-C/B) ///stąd widać (porównując z równaniem kierunkowym), że a= -A/B, b= -C/B.

A mając postać kierunkową prostej k i współrzędne punktu P to jakaś pierwsza/druga gimbazjum, aby wyliczyć prostą prostopadłą do k przechodzącą przez punkt P. Mając dwie przecinające się proste znaleźć ich punkt przecięcia i z pitagorasa policzyć odległość między punktami. Shame on you.