- Wstęp
- Konstrukcje geometryczne
- Rozwiązanie programistyczne
- Autor
|
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:
- Znajdę wektor v - prostopadły do wektora AB
- 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);
}
|
|