Prostopadła
Janusz Sobieraj - 28 LO

Jak rysować prostą prostopadłą ?

Prostopadła będzie nam potrzebna przy wyznaczaniu promienia okręgu wpisanego w trójkąt.
Rozwiążę teraz zadanie : narysować prostopadłą z punktu C do prostej przechodzącej przez A i B.

Prostopadła to prosta, a więc muszę podać jej dwa punkty. Jednym z nich jest oczywiście C. Znajdę drugi.
Pomysł jest taki:
  1. Znajdę wektor v - prostopadły do wektora AB
  2. Wyznaczę punkt P - obraz C w przesunięciu o wektor v

AD 1. Jeśli wektor AB=[bx-ax , by-ay] to jednym z prostopadłych jest wektor:
   v=[-(by-ay) , bx-ax]
(łatwo sprawdzić, że ich iloczyn skalarny jest zerem)

AD 2.
Wtedy szukany punkt P=(cx + vx , cy + vy)

W aplecie zmienisz położenie pkt A, B i C, przeciągając je myszą w dowolne miejsce. Obserwuj prostą prostopadła (czerwona).

Oto funkcja i procedura wg tego pomysłu :

pkt2d wektor_prostopadly(pkt2d p,pkt2d k) 
{ 
 return(new pkt2d(-k.y+p.y,k.x-p.x)); 
} 
//------------------------------------------ 
void prostopadla(Graphics g,pkt2d C,pkt2d A,pkt2d B) 
{ 
  pkt2d v=wektor_prostopadly(A,B); 
  prosta(g,C, suma(C,v),-2,3); 
}