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:

  • vengono memorizzati tutti i vertici calcolati con il metodo dellíintersezione retta-piano;
  • i vertici memorizzati vengono controllati a coppie;

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.

  • Dal nuovo buffer si ottiene un poligono ombra che risulta tagliato lungo líasse x.
  • Lo stesso processo và applicato considerando líasse y come "asse di taglio".


Per i piani di equazione x=0 e y=0 il processo è identico, cambiano solamente le coordinate da considerare e gli assi da tagliare.