Okrąg wpisany w okrąg
Janusz Sobieraj - 28 LO

Okrąg wpisany w okrąg. Jak zaprogramować ?

Szczegóły konstrukcji w programie C.a.R zamienię teraz na polecenia programu.

Wszystkie zdefiniowane poprzednio funkcje i procedury zgromadzę w klasie o nazwie _2d. W tym samym folderze np liceum28 należy umieścić również pliki lo28.java i pkt2d.java.

W części "Oblicz" kolejno wyznaczam:
  1. Ad - punkt dw(< A)
  2. Bd - punkt dw(< B)
  3. s =dw(< A) ∩ dw(< B)
  4. Sp - punkt prostopadłej do AB z S
  5. D - koniec promienia okręgu
  6. r - długość promienia
A dalej rysuję :
  1. Δ ABC
  2. dw(< A) oraz dw(< B)
  3. promień SD
  4. okrąg O(S,SD)
  5. oznaczam S i D
void wpisany(Graphics g, pkt2d a, pkt2d b, pkt2d c)
{
//----------Oblicz środek i promień okręgu------------- 
  pkt2d Ad=_2d.suma(a, _2d.w_dwusiecznej(c,a,b)); 
  pkt2d Bd=_2d.suma(b , _2d.w_dwusiecznej(a,b,c)); 
  pkt2d s=_2d.wspolny(a,Ad,b,Bd); 
  pkt2d Sp=_2d.suma(s, 2d.wektor_prostopadly(a , b)); 
  pkt2d d=_2d.wspolny(a,b,s,Sp); 
  double r=_2d.dlugosc(_2d.wektor(s,d)); 
//----------------------------------------------------- 
  _2d.trojkat(g,a,b,c); 
  _2ddwusieczna(g,c,a,b); 
  _2d.dwusieczna(g,a,b,c); 
  lo28.linia(g,s,d); 
  lo28.okrag(g,s,r); 

  _2d.oznacz(g,s,"S"); 
  _2d.oznacz(g,d,"D");
} 

Obok rozwiązanie programistyczne

Jak poprzednio, W aplecie możesz zmieniać położenie punktów A, B i C, przeciągając je myszą w dowolne miejsce. Obserwuj wpisany okrąg .