Analitička geometrija i C# programiranje dio 2/n


U prethodnom dijelu smo dali osnovne teorijske osnove za implementaciju problema analitičke geometrije.

Problem 2: Pripadnost tačke kružnom segmentu?

tacka_u_kruznom_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.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s