U prethodnom dijelu smo dali osnovne teorijske osnove za implementaciju problema analitičke geometrije.
Problem 2: Pripadnost tačke kružnom segmentu?
Posmatrajmo gornju sliku na kojoj imamo kružni isječak, iz kojeg su povučene zrake z1 i z2. Pretpostavimo također da imamo tačku A koja se nalazi u kružnom isječku, dok tačka B se nalazi izvan isječka. Da bi odredili pripadnost tačke kružnom isječku potrebno je provjeriti sljedeće:
1. da se tačka nalazi s desne strane zrake z1
2. da se tačka nalazi sa lijeve strane zrake z2
3. da je dužina iz centra isječka do tačke A manja ili jednaka od radijusa kružnog isječka.
U koliko su sva tri uslova ispunjena, tada se tačka nalazi u kružnom isječku.
Kako smo već u prethodnom postu implementirali metodu za određivanje strane tačke, potrebno je još samo implementirati 3 slučaj.
/// <summary> /// /// </summary> /// <param name="a">posmatrana tačka</param> /// <param name="o1">centar kruđnog isječka</param> /// <param name="radius">radijus kružnog isječka</param> /// <returns>tru ako je duzina manja od radijusa</returns> bool isLessThanRadius(Point a, Point o1, float radius) { float length= (float)Math.Sqrt((a.x-o1.x)*(a.x-o1.x) + (a.y-o1.y)*(a.y-o1.y)); if (radius >= length) return true; else return false; }
Na kraju je potrebno implementirati metodu koja će objediniti sva tri slučaja u vratiti true ako sva tri slučaja vrate true, u protivnom će vratiti false.
Ostavlja se čitaocu da sublimira prethodnu i ovu implementaciju shodno zaključcima.