Površina poligonax

Download Report

Transcript Površina poligonax

Slide 1

Seminarski rad

Stana Obrenić
Filip Todorović
Jelena Mladenović
Nebojša Muljava


Slide 2



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.


Slide 3





Sortirati temena poligona u niz, u smeru kazaljke
na satu ili obrnuto, počevši od bilo koje tacke.
Površina poligona računa se po sledećoj formuli:

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 nekonveksne poligone.


Slide 4



Ovde imamo dva slučaja:
◦ Računanje površine poligona preko vektora normale
◦ Računanje površine poligona preko koordinatnog
sistema relativnog toj ravni


Slide 5





Prilikom zadavanja ravni, unose se prve tri
tačke oblika:

Vektor normale se računa na sledeći način:


Slide 6



Ostali vektori se računaju preko:



Data ravan formira se korišćenjem prve tri tačke:


Slide 7



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


Slide 8



Prvi slučaj:
◦ Posle uspešnog unosa, površina datog poligona
računa se pomoću sledećeg obrasca za skalarni
proizvod:


Slide 9



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 teme);


Slide 10





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, odnosno koriste se nemodifikovane
koordinate koje je korisnik uneo).


Slide 11

Hvala na pažnji!