Crtanje 3D Tijela



Uvod

    Da bi prikazali trodimenzionalni objekt (tijelo) na dvodimenzijalnom ekranu trebamo objekt projecirati na neku ravninu koju nazivano ravnina projekcije R. Tijelo je definirano u lijevom trodimezionalnom koordinatnom sustavu kojeg nazivamo sustav scene. Za potrebu projekcije uvodimo desni trodimezionalni kordinatni sustav, tzv. sustav oka  čija je z os usmjerena u smjeru pogleda tj. prema točci gledišta G(xg, yg, zg), tako da predstavlja dubinu slike.
    Prije projekcije tijela na ravninu projekcije R potrebno je preslikati sve točke iz sustava scene u sustav oka što se naziva transformacija pogleda. Projekcija točaka iz sustava oka u sustav prikaza tj. u ravninu projekcije može se napraviti kao paralelna ili perspektivna projekcija.

1.Transformacija pogleda

    Transformacija pogleda se izvršava za sve točke iz sustava scene tako da se one pomnože sa matricom transformacije pogleda T tj. :
AiO=AiST, 
gdje je Ai bilo koja točka, a oznaka O označava sustav oka dok S označava sustav scene
Matrica T je sastavljena od pet matrica elementarnih transformacija, to su :
T1 - pomak ishodišta u točku očišta O(xO, yO, zO),
T2 - rotacija oko z osi sustava scene tako da se z os sustava oka  "poklopi" sa zx-ravninom sustava scene gdje su x i z pozitivni
T3 - rotacija oko y osi sustava scene tako da se z os sustava oko poklopi sa z osi sustava scene,
T4 - rotacija oko z osi sustava scene za 90o, tako da se y os sustava oka poklopi sa y osi sustava scene
T5 - promjena predznaka na x osi sustava oka tako da desni sustava oka postane lijevi

2.Perspektivna projekcija

    Perspektivnom projekcijom dobivamo tijelo projecirano u ravninu projekcije  tako da  su tijela koja su bliže promatraču veća. Za perspektivnu projekciju vrijedi slijedeće :
xp = (x0/z0) H,
yp = (y0/z0) H,
zp=H
gdje je H = ( (xO-xg)2+(yO-yg)2+(zO-zg)2 )1/2.

H označava udaljenost ravnine projekcije od očišta. z koordinatu postavljamo na H kako bi mogli  raspoznavati udaljenost točaka  i  udaljenost tijela od očišta, što je nužno za postupke uklanjana skrivenih linija i površina.

Implementacija vježbe

Sama implementacija vježbe se sastoji od JAVA appleta u osnovi identičnom onom iz vježbe 4, ali sa dodatkom mogućnosti odabira koordinata očista i gledišta te prikazom perspektivno projeciranog tijela. Za potrebe programa napravljeni su i slijedeći razredi Ravnina, Tocka, Tocka3D, Matrix,  MyWindow.

Demonstracija :


Napisao Andro Galinović