110 likes | 461 Views
Seminarski rad. Površina poligona u ravni i prostoru. Stana Obrenić Filip Todorović Jelena Mladenović Nebojša Muljava. Površina poligona u ravni i prostoru. Opis problema:
E N D
Seminarski rad Površina poligona u ravni iprostoru Stana Obrenić Filip Todorović Jelena Mladenović Nebojša Muljava
Površina poligona u ravni iprostoru • Opis problema: • Neka je dat poligon u ravni (ne obavezno konveksan). Ako je poligon trougao tada se njegova površina računa pomoću vektorskog proizvoda. • Implementirati funkciju za površinu proizvoljnog poligona u ravni z=0. • Implementirati funkciju za površinu poligona ako on pripada proizvoljnoj ravni koristeći normalu te ravni. • Implementirati funkciju za površinu poligona ako on pripada proizvoljnoj ravni koristeći koordinatni sistem relativan datoj ravni. • Uporediti poslednja dva rezultata i nacrtati slike.
Računanje površineproizvoljnog poligona zadatogkoordinatama • Sortirati temena poligona u niz, u smeru kazaljke na satu ili obrnuto, počevši od bilo koje tacke. Površina poligona računa sepo sledećojformuli: • Ograničenja: Ova metoda radi samo za proste poligone u jednoj ravni. Prednost je što se može koristiti za trouglove, pravilne, nepravilne, konveksne i nekonveksnepoligone.
Računanje površine poligona koji je zadat u nekoj proizvoljnoj ravni • Ovde imamo dva slučaja: • Računanje površine poligona preko vektora normale • Računanje površine poligona preko koordinatnog sistema relativnog toj ravni
Računanje površine poligona koji je zadat u nekoj proizvoljnoj ravni • Prilikom zadavanja ravni, unose se prve tri tačke oblika: • Vektor normale se računa na sledeći način:
Računanje površine poligona koji je zadat u nekoj proizvoljnoj ravni • Ostali vektori se računaju preko: • Data ravan formira se korišćenjem prve tri tačke:
Računanje površine poligona koji je zadat u nekoj proizvoljnoj ravni • Pod uslovom da je c≠0, dobijamo formulu za računanje z koordinate za svaku sledeću tačku koju korisnik unese: Primer unosa tačaka
Računanje površine poligona koji je zadat u nekoj proizvoljnoj ravni • Prvi slučaj: • Posle uspešnog unosa, površina datog poligona računa se pomoću sledećeg obrasca za skalarni proizvod:
Računanje površine poligona koji je zadat u nekoj proizvoljnoj ravni • Drugi slučaj: • U ovom slučaju potrebno je kreirati matricu prelaska C sa jednog koordinatnog sistema na drugi. Ona se sastoji od jediničnih ortonormiranih vektora poređanih po kolonama. • Za matricu C važi i: • Koordinate temena u novom sistemu računaju se pomoću formule: • Posle transformacije z koordinata svake tačke bi trebalo da bude jednaka nuli i to treba proveriti prilikom prvog prevođenja. Pošto prevedemo koordinate svih tačaka, površina poligona se računa pomoću funkcije • float povrsina2D_poligona (int n, vector<Tacka> teme);
Crtanje i upoređivanje rezultata • U slučaju da se poligon direktno zadaje u ravni z=0, potrebno je nacrtati poligon standardnim funkcijama. • U slučaju da je unet poligon u proizvoljnoj ravni, crtanje se vrši normalnom projekcijom na ravan XY (z koordinata svake tačke se postavi na nulu, odnosnokoriste se nemodifikovane koordinate koje je korisnik uneo).