Proiezioni
3D Reloaded! Progetto del corso di Geometria Computazionale Università degli Studi di Milano a.a. 2007/08 Realizzato
da: Marco Bastianello & Dario Sottana & Marco Ziliani
|
.:: Home ::. .:: Applet ::. .:: Teoria ::. .:: Manuale ::. .:: Contatti ::. |
.:: Teoria Applicata per la Realizzazione del Progetto ::. .:: Proiezioni::. .:: Teoria Proiezioni ::. Sono state sviluppate due tipi di proiezioni: le proiezioni ortogonali e le ombre da un punto luce. I tre piani su cui vengono visualizzate le proiezioni hanno coordinata x=0, y=0 e z=0. Le proiezioni parallele ai piani sono generate azzerando la coordinata di ogni vertice relativa al piano su cui si vuole visualizzare la proiezione. Per ottenere le ombre sui piani da un punto luce è necessario calcolare líintersezione tra una retta passante per due punti e un piano. Dati due punti P1=(x1, y1, z1) e P2=(x2, y2, z2) si calcola l'equazione parametrica della retta passante: Ora si sostituisce a x, y o z
la rispettiva equazione del piano, ricavando il parametro t.
Sostituendo t nelle restanti equazioni si ottengono le coordinate del
punto in cui la retta interseca il piano.
Nel progetto, ad ogni iterazione dellíalgoritmo, il punto P1 è sempre il punto luce, mentre P2 corrisponde ad un vertice diverso del solido. L'insieme dei punti ottenuto genera un poligono che costituisce líintera ombra su un piano del solido considerato. Se si considerano i tre piani come delle pareti di una stanza e si proietta líombra di un piano ottenuta con il calcolo precedente; si nota che quest'ultima "sfonda" le pareti. E' necessario applicare
allíombra calcolata un algoritmo di "taglio" (clipping) che
consente di togliere le parti di ombra che non possono essere visibili.
.:: Algoritmo di clipping ::. Considerando come esempio l'ombra sul piano con equazione z=0 l'algoritmo esegue i seguenti passi:
se la coordinata x del primo vertice è maggiore o uguale a 0, il vertice viene memorizzato in un nuovo buffer. Se la coordinata x di uno dei due vertici è negativa e líaltra è maggiore o uguale a 0, si calcola líintersezione tra la retta passante per i due vertici e l'asse x. Vengono modificati i valori del vertice negativo in base al punto di intersezione trovato e il nuovo punto viene aggiunto al buffer.
Per i piani di equazione x=0 e y=0 il processo è identico, cambiano solamente le coordinate da considerare e gli assi da tagliare. |