Centro di proiezione. Figura 4.1 Proiezione prospettica e parallela di un segmento.

Documenti analoghi
Centro di proiezione. Figura 4.1 Proiezione prospettica e parallela di un segmento.

Con il termine sezione si intende la figura piana risultante dall intersezione di un solido con un piano.

prof.a.battistelli Assonometria Prospettiva ASSONOMETRIE

TIPI DI LINEA E LORO APPLICAZIONI

Processo di rendering

Grafica al calcolatore - Computer Graphics

La trasformazione di camera

che sommato ai vettori v

Finche il moto si svolge in una sola dimensione moto unidimensionale, moto rettilineo non abbiamo bisogno di vettori

Lezione 6 Richiami di Geometria Analitica

Prisma retto. Generatrice. Direttrice. Prisma obliquo. Nel caso le generatrici non siano parallele. Generatrice

Gli esercizi proposti per le esercitazioni del corso di Geometria 2 Terza serie

DISEGNO PROSPETTICO CAPITOLO 1 METODI DI RAPPRESENTAZIONE PER IL DISEGNO TECNICO: QUADRO GENERALE PROIEZIONI ORTOGRAFICHE PROIEZIONI ASSONOMETRICHE

La matematica del CAD. Vettori e Matrici

Piano cartesiano e retta

misura. Adesso, ad un arbitrario punto P dello spazio associamo una terna di numeri reali x

misura. Adesso, ad un arbitrario punto P dello spazio associamo una terna di numeri reali x

Capitolo 4 Trasformazioni Geometriche

ASSONOMETRIA E PROSPETTIVA

GEOMETRIA ANALITICA NELLO SPAZIO (3D Geometry)

M to t d o i d d i d p ro r i o ezion o e n. c rr r i r spo p ndenza z b univo v ca ope p ra r zi z oni d i p r p o r iezi z one e s ezi z one

LA GEOMETRIA ANALITICA DELLO SPAZIO

= (cioè le due terne di numeri direttori ( devono essere ) proporzionali). Tale uguaglianza non è verificata, poiché risulta ρ

Metodi di Proiezione

(x B x A, y B y A ) = (4, 2) ha modulo

CORSO DI FONDAMENTI DI DISEGNO TECNICO LEZIONE 3 ASSONOMETRIE

Assonometrie e prospettive

PROIEZIONI ASSONOMETRICHE E PROIEZIONI ORTOGONALI

COMUNICAZIONE N.17 DEL

(i) Determinare l equazione cartesiana dell unica circonferenza C passante per i tre punti dati.

Geometria analitica del piano II (M.S. Bernabei & H. Thaler)

L P R P OIEZI Z ONI N A S A S S O S NO N METRICHE

SOLUZIONE AL PROBLEMA DELLE BIGLIE ROTANTI Jeckyll

Commenti ad alcuni degli esercizi proposti 13. Uso del prodotto scalare: condizioni di perpendicolarità, angoli, distanze.

Π 1 (H) Π 2 (G) Π 3 (G) Π 1

PROIEZIONI ASSONOMETRICHE

Corso di Laurea in Scienze dell Architettura. Corso di Fondamenti e Applicazioni di Geometria Descrittiva

Prodotto scalare e ortogonalità

TUTORIAL SULLE ASSONOMETRIE

punti uniti rette di punti uniti rette unite qual è la trasformazione inversa

ADATTATORI di IMPEDENZA

VETTORIALE E PRODOTTO MISTO. PIANI E RETTE DI

25 - Funzioni di più Variabili Introduzione

Gino Cappè. Percorsi tecnologici. per la scuola secondaria di primo grado. Disegno & comunicazione

Elementi di matematica - dott. I. GRASSI

12 gennaio Commenti esame di geometria - Ing. gestionale - a.a

Corso di Geometria BIAR, BSIR Esercizi 10: soluzioni

Esercizi svolti. Geometria analitica: rette e piani

Corso di Geometria BIAR, BSIR Esercizi 8: soluzioni

EQUAZIONE DELLA RETTA

Corso di Idraulica ed Idrologia Forestale

Comunicazione 8 del 26 novembre 2014 *

( ) 2. Determina il resto della divisione fra il polinomio P ( x) 2 2x. 3. Per quale valore del parametro m il polinomio P(

Stabilire se il punto di coordinate (1,1) appartiene alla circonferenza centrata nell origine e di raggio 1.

7. Integrazione delle funzioni di più variabili (II)

II Università degli Studi di Roma

COMUNICAZIONE N.14 DEL

Esercitazione di Analisi Matematica II

Vettori e geometria analitica in R 3 1 / 25

GEOMETRIA ANALITICA. Il Piano cartesiano

Si definisce un operatore vettoriale (nabla) in coordinate cartesiane nella maniera seguente:

UNITÀ DIDATTICA 5 LA RETTA

UNIVERSITÀ DEGLI STUDI DI CASSINO - DICeM

COMUNICAZIONE N.13 DEL

PARTE 2: VETTORI LIBERI

PIANO CARTESIANO. NB: attenzione ai punti con una coordinata nulla: si trovano sugli assi

COMUNICAZIONE N.11 DEL

4. Calcolare il baricentro delle seguenti regioni del piano dotate di densità unitaria:

Liceo Scientifico di ordinamento anno ESAME DI STATO DI LICEO SCIENTIFICO CORSO DI ORDINAMENTO anno PROBLEMA 1

Quando si parla di diedro tra due semipiani, si intende. quello convesso (che non contiene il prolungamento. sono paralleli i rispettivi piani

UNIVERSITÀ DEGLI STUDI DI CASSINO - DICeM

Facsimile di prova d esame Esempio di svolgimento

Rappresentazione di figure solide Unità 3

Geometria BAER Canale I Esercizi 10

ax 1 + bx 2 + c = 0, r : 2x 1 3x = 0.

CORSO DI LAUREA IN INGEGNERIA EDILE/ARCHITETTURA

COMUNICAZIONE N.13 DEL

DEFINIZIONE Un vettore (libero) è un ente geometrico rappresentato da un segmento orientato caratterizzato da tre parametri:

Proiezioni. IUAV Disegno digitale. Camillo Trevisan

Come si rappresentano?

SISTEMI DI RAPPRESENTAZIONE LE PROIEZIONI ASSONOMETRICHE

1 Nozioni utili sul piano cartesiano

PROIEZIONI ASSONOMETRICHE

Geometria BATR-BCVR Esercizi 9

FUNZIONI REALI DI DUE VARIABILI REALI

Introduzione. Al termine della lezione sarai in grado di:

INTRODUZIONE ALLA FISICA PROF. FRANCESCO DE PALMA

Capitolo 4 Trasformazioni Geometriche

Corso di Matematica B - Ingegneria Informatica Testi di Esercizi. A1. Siano u, v, w vettori. Quali tra le seguenti operazioni hanno senso?

Proiezioni. IUAV Laboratorio Multimedia. Camillo Trevisan

Proiezioni Assonometriche

CAP 5: INTRODUZIONE ALLA GEOMETRIA DESCRITTIVA

Quaderno per il recupero del debito MATEMATICA ANNO SCOLASTICO 2016/2017 Prof.ssa Migliaccio Gabriella CLASSE III

2. Coordinate omogenee e trasformazioni del piano

PREREQUISITI. Rette e piani (parallelismo, perpendicolarità, incidenza) Proiezioni ortogonali Componenti Direzione Seno, coseno e tangente Glossario

Proprietà focali delle coniche.

Transcript:

Proieioni Il trattamento di dati tridimensionali, siano essi modelli grafici sintetici o dati reali, è più complesso rispetto al caso bidimensionale, sia perchè c è una dimensione in più, sia perchè i dispositivi di uscita (monitor, stampanti ecc.) sono bidimensionali. In questo capitolo si tratta principalmente il problema di come visualiare dati 3D su dispositivi D. Il meo per fare questo sono le proieioni. In due dimensioni gli oggetti sono visualiati in modo semplice specificando la parte del piano che si desidera vedere (la window) ed la parte del dispositivo di uscita su cui disegnare (la viewport). In tre dimensioni si deve specificare un volume, cioè la parte di spaio che contiene gli oggetti che si vogliono vedere, detto view volume, una proieione (con i suoi parametri) su di un certo piano di proieione, una window su questo piano e la viewport sul dispositivo di uscita. Nel seguito verranno definiti i vari tipi di proieioni ed le formule matematiche necessarie per applicarle a punti nello spaio, lasciando ai capitoli seguenti i metodi per il modellamento di oggetti 3D e le tecniche necessarie per la loro resa realistica, come l eliminaione delle linee nascoste e l ombreggiatura. 4. Introduione In generale, una proieione trasforma i punti definiti in un sistema di riferimento N dimensionale in punti in un sistema di riferimento di dimensioni minori di N. Qui ci si occupa della trasformaione di punti 3D in punti D, anche se sono frequenti in grafica proieioni da spai di dimensioni maggiori di tre. La proieione di un punto 3D è definita come l interseione di una linea retta, detta raggio proiettore, che emana dal centro di proieione (un punto che può essere all infinito) e passa dal punto da proiettare, con il piano di proieione. La Fig. 4. mostra due diverse proieioni di un segmento: per fortuna la proieione di un segmento è ancora un segmento, per cui è sufficiente calcolare le proieioni dei soli punti estremi. Centro di proieione Direione di proieione Figura 4. Proieione prospettica e parallela di un segmento. La classe di proieioni che tratteremo è quindi quella delle proieioni planari geometriche, detta così poichè la superficie di proieione è piana ed i raggi proiettori sono linee rette. Vi sono proieioni che non appartengono a questa classe, ad esempio molte proieioni cartografiche sono non planari e/o non geometriche: in generale per esse non vale che la proieione di un segmento è ancora un segmento. Le proieioni planari geometriche (nel seguito dette semplicemente proieioni) si dividono un due classi principali: proieioni prospettiche e proieioni parallele. La differena è che nelle prime (prospettiche) la distana fra centro di proieione e piano di proieione è finita, mentre nelle seconde 57

(parallele) è infinita, per cui i raggi proiettori sono, appunto, paralleli. Definendo le proieioni prospettiche si parlerà di centro di proieione, mentre per le parallele si userà il termine di direione di proieione. Il centro di proieione è un punto e si può esprimere, in coordinate omogenee, come (,,, ), mentre la direione di proieione è un vettore, cioè la differena fra due punti, ovvero (,,, ) (,,, ) = (a, b, c, 0): come si vede punti all infinito e direioni sono equivalenti, almeno in coordinate omogenee. 4.. Proieioni prospettiche Questo tipo di proieioni, il più diffuso, corrisponde a quanto viene realiato da una macchina fotografica o, con minore approssimaione, dall occhio umano (la cui superficie di proieione non è piana). In particolare gli oggetti appaiono più piccoli al crescere della distana dal piano di proieione e le linee parallele che non sono parallele al piano di proieione danno origine a linee proiettate che convergono verso un punto al finito nel piano di proieione, detto punto di fuga. Ovviamente esistono infiniti punti di fuga, uno per ciascuna delle infinite direioni nello spaio. Altrettanto ovviamente gli angoli fra le linee non sono mantenute dalla proieione, tranne che gli angoli formati da due linee entrambe parallele al piano di proieione. Stessa cosa per le lunghee, non misurabili direttamente. I punti di fuga relativi alle linee parallele ad uno degli assi sono detti punti di fuga principali. Si usa catalogare le proieioni prospettiche a seconda del numero di punti di fuga principali, da uno a tre, ovvero, in modo equivalente, a seconda del numero di assi principali intersecati dal piano di proieione. Ad esempio se il piano di proieione interseca solo l asse, ed è quindi perpendicolare ad esso, solo l asse ha punto di fuga principale, mentre le linee parallele ad o restano parallele dopo la proieione. La Fig. 4. mostra due differenti proieioni ad un punto di fuga di un cubo allineato con gli assi. La Fig. 4.3 mostra la prospettiva dello stesso cubo a due punti di fuga. La prospettiva a Punti di fuga dell asse Figura 4. Due proieioni prospettiche ad un punto di fuga di un cubo allineato agli assi. due punti di fuga è normalmente usata nel disegno tecnico a causa della sua piacevolea e realismo. La prospettiva a tre punti di fuga (con anche le linee verticali convergenti) è invece poco usata: oltre a non aggiungere ulteriore realismo l effetto è quello che si ottiene fotografando con la macchina fotografica inclinata verso l alto o verso il basso (tipiche foto di bambini col testone e di palai a piramide ), cioè quasi sempre penoso. 4.. Proieioni parallele Le proieioni parallele si dividono in due categorie: nelle proieioni parallele ortografiche la direione di proieione corrisponde alla normale del piano di proieione (o alla direione opposta, tanto è lo stesso), mentre nelle proieioni parallele oblique ciò non avviene. I tipi più comuni di proieioni ortografiche sono la pianta ed i due alati frontale e laterale: in esse la direione di proieione coincide con un asse principale ed il piano di proieione è il piano identificato dagli altri due assi. In Fig. 4.4 sono mostrati questi tre tipi di proieione ortografica di una casa: tali proieioni sono comunemente usati nella progettaione, essendo distane ed angoli (di linee parallele al piano di proieione) misurabili direttamente dal disegno. D altra parte la struttura 3D dell oggetto raffigurato è spesso difficilmente derivabile, poichè si vede solo un lato dell oggetto, per cui sono in genere accompagnate da assonometrie o prospettive esplicative. Le proieioni assonometriche ortografiche usano un piano di proieione che non è normale ad alcuno degli assi principali, e quindi visualiano più lati di un oggetto insieme. Assomigliano un po alla prospettiva, a parte per il fatto che non vi è rimpicciolimento con l aumento della distana. Il parallelismo delle linee viene conservato, mentre gli angoli no. Le lunghee dei segmenti paralleli agli assi possono essere misurate, anche se in generale usando fattori di scala differenti.

Punto di fuga dell asse Punto di fuga dell asse Figura 4.3 Proieione prospettica a due punti di fuga di un cubo allineato agli assi. Figura 4.4 Proieioni parallele ortografiche (pianta, fronte e lato) di una casa. La proieione isometrica è un esempio di proieione assonometrica ortografica spesso usata. La normale al piano di proieione, e quindi la direione di proieione, forma angoli uguali con i tre assi: se tale direione si esprime come (d, d, d ) allora deve valere che d = d = d, cioè che ±d = ±d = ±d. Ci sono quindi otto direioni possibili, o quattro se non si eliminano le linee nascoste. La proieione isometrica ha il vantaggio che il fattore di scala è uguale per i segmenti paralleli ai tre assi, che sono così facilmente misurabili. In Fig. 4.5 si vede la proieione isometrica di un cubo con i lati paralleli agli assi. Le proieioni oblique, cioè la seconda classe di proieioni parallele, sono caratteriate dal fatto che la direione di proieione e la normale al piano di proieione sono diverse. Esse combinano le proprietà delle proieioni ortografiche pianta ed alati con quelle delle assonometrie: il piano di proieione è perpendicolare ad uno degli assi, e quindi le lunghea e gli angoli delle linee parallele agli altri due assi sono conservate, ma anche le linee perpendicolari al piano di proieione si vedono e possono essere misurate, in generale con un certo fattore di scala. Due proieioni oblique usate frequentemente sono le proieioni cavaliera e cabinet. La proieione cavaliera è caratteriata dal fatto che la direione di proieione forma un angolo di 45 col piano di proieione. Quindi un segmento perpendicolare al piano di proieione mantiene la sua lunghea. In Fig. 4.6 si vedono due proieioni cavaliere di un cubo: da notare che resta un grado di libertà, ovvero l angolo che i segmenti perpendicolari al piano di proieione formano con l oriontale. Tale angolo è solitamente di 30 o 45. Le direioni di proieione sono ( /, /, ) per α = 45 e ( 3/, /, ) per α = 30.

o 0 0 o 0 o Figura 4.5 Proieione isometrica di un cubo. o α = 45 α = 30 o Figura 4.6 Proieione cavaliera del cubo unitario sul piano = 0. Tutti i lati (paralleli agli assi) mantengono la loro lunghea. Le prieioni cabinet, come quelle in Fig. 4.7, hanno una direione di proieione che forma un angolo di arctan() = 63.4 col piano di proieione, cosicchè i segmenti perpendicolari al piano di proieione hanno una lunghea dopo la proieione pari a metà del vero. Le proieioni cabinet sono un filo più realistiche delle cavaliere, a causa dell accorciamento dei segmenti. Le direioni di proieione sono ( /4, /4, ) per α = 45 e ( 3/4, /4, ) per α = 30. Figura 4.7 Proieione cabinet del cubo unitario sul piano = 0. I lati paralleli ad e mantengono la loro lunghea, quelli paralleli a hanno lunghea /. In Fig. 4.8 sono mostrati gli angoli che determinano le proieioni oblique. Il piano (, ) è il piano di proieione ed il punto P è la proieione di (0, 0, ). L angolo α e la lunghea l sono le stesse delle Figure 4.6 e 4.7. La direione di proieione è (d, d, ), dove ovviamente d = l cos α e d = l sin α. L angolo β formato dalla direione di proieione con il piano di proieione è legato ad l dalla relaione β = arctan(/l). E quindi possibile definire una arbitraria proieione obliqua definendo, ad esempio, l (lunghea proiettata di un segmento unitario perpendicolare al piano di proieione) ed α (angolo che tale segmento proiettato forma con l oriontale). La Fig. 4.9 sintetia le varie classi di proieioni. In comune è il fatto che proiettano su di un piano e che i raggi proiettori sono rette. Per le proieioni prospettiche è necessario definire un centro di proieione (un punto, detto di vista), mentre per le parallele si definisce una direione di proieione, ovvero un punto all infinito.

Figura 4.8 Proieione obliqua parallela del punto P = (0, 0, ) nel punto P = (l cos α, l sin α, 0). La direione di proieione è P P = (l cos α, l sin α, ). Figura 4.9 Le sottoclassi in cui si usa dividere le proieioni planari geometriche. 4. La definiione delle proieioni Il passaggio da entità grafiche definite nello spaio 3D ad immagini bidimensionali richiede la definiione di due passi distinti. Nel primo si specifica il volume di vista (view volume): tutto quello che è esterno ad esso viene ignorato (non visualiato). Nel secondo passo si specificano i parametri della proieione. L insieme di questi due passi contiene tutta l informaione necessaria per passare da 3D a D: per visualiare l informaione D contenuta nel piano di proieione è in realtà necessario specificare ancora la trasformaione che porta in coordinate schermo, ma è banale. Vediamo ora come specificare concretamente i dati necessari, la notaione è quella che si trova in [FvDFH90]. I numerosi parametri da definire permetteranno nel seguito di derivare le formule necessarie a realiare i vari tipi di proieione. Ovviamente sono possibili (ed usati, purtroppo) diversi modi per definire i parametri delle proieioni: quello che conta è cosa deve essere definito, non come. Il piano di proieione, a volte indicato anche come view plane, si definisce mediante un punto sul piano, detto view reference point o VRP, ed un vettore normale al piano, detto view plane normal o VPN. Dato il piano di proieione è necessario definire una finestra (window) su tale piano: il contenuto della finestra sarà in seguito trasformato nella viewport, cioè nella parte di dispositivo di uscita dedicata alla visualiaione. Prima è però necessario definire un sistema di assi cartesiani ortogonali (u, v, n), detto VRC, viewing reference coordinate, solidale con il piano: un modo è quello di fissare l origine coincidente con il VRP e l asse n (l unico che non giace sul piano di proieione) parallelo a VPN. Resta un grado di libertà, ovvero un angolo che specifica l orientamento dei restanti due assi. Un sistema comodo è quello di definire un ulteriore vettore, view up vector o VUP, la cui proieione (nel senso di piede della perpendicolare!) sul piano di proieione cade sulla parte positiva dell asse v. La direione dell asse u è a questo punto obbligata, siccome il sistema di riferimento u, v, n deve formare una terna ortogonale destra, come mostrato in Fig. 4.0. Il punto VRP ed i due vettori VPN e VUP sono specificati utiliando il sistema di coordinate mondo,,, destro pure lui. Alcuni sistemi grafici usano direttamente l asse mondo come VUP, ma questo, oltre ad essere restrittivo, rende la terna VRC indefinita se il vettore VPN è parallelo all asse. A questo punto è possibile definire la window, cioè la parte del piano di proieione che verrà

Figura 4.0 Definiione del piano di proieione e della terna destra solidale ad esso. visualiata nella viewport del dispositivo di uscita. Tale window si specifica mediante i limiti inferiori e superiori in coordinate u e v: non è necessario che sia simmetrica rispetto al VRP, nè che lo contenga, mentre è ovvio (dato come si definisce) che sia un rettangolo allineato con gli assi. Il centro della window, definito implicitamente dai limiti in u e v, è detto CW. Il centro di proieione (COP, Center of projection) e la direione di proieione (DOP, direction of projection) sono definiti da un projection reference point o PRP e da un indicatore del tipo di proieione. Se la proieione è di tipo prospettico il punto PRP è il centro di proieione, detto anche punto di vista. Se la proieione è parallela la direione di proieione (DOP) è definita dal vettore che unisce PRP con CW (OCCHIO, con il centro della window, non con VRP!). In Fig. 4. sono illustrati i due casi. v Piano di proieione v Piano di proieione VPN VRP (uma, vma) VPN VRP (uma, vma) n CW u n CW u (umin, vmin) DOP (umin, vmin) PRP ( COP ) PRP Figura 4. Proieioni prospettica e parallela. Sono visualiati la piramide di vista (per la prospettiva) e la direione di proieione più il parallelepipedo infinito di vista (per la parallela). Da notare che la proieione parallela è obliqua, non essendo la direione di proieione (DOP) parallela al vettore VPN. Il punto PRP viene definito in coordinate VRC anichè in coordinate mondo. Questo semplifica i calcoli in alcuni casi e li complica in altri, tutto non si può avere. Resta ora da definire il volume di vista (view volume), cioè la parte di spaio 3D che verrà troncata (se è il caso) e proiettata. Per la proieione prospettica il volume di vista è la piramide semi infinita con apice nel centro di proieione e la cui interseione con il piano di proieione coincide con la window. I punti dietro il centro di proieione non sono inclusi nel volume di vista e quindi non vengono proiettati. Nel caso di proieione parallela il volume di vista è un parallelepipedo infinito con spigoli paralleli alla direione di proieione. E spesso utile limitare ulteriormente il volume di vista in modo da renderlo finito. Questo, nella prospettiva, evita di proiettare oggetti troppo vicini al centro di proieione (di cui comparirebbero magari solo alcuni segmenti sconnessi) o troppo lontani (tipico esempio un oggetto formato da migliaia di segmenti che, a causa della distana, finiscono tutti nello stesso punto: se l uscita è su schermo questo rallenta molto, se è su plotter si buca la carta...). Inoltre eliminare parti di oggetti può aiutare a capirne la struttura. Per limitare il volume di vista si definiscono due piani detti front clipping plane e back clipping plane o anche hither e on planes. Questi piani sono paralleli al piano di proieione e vengono definiti mediante due distane (con segno) a partire dal view reference point

(VRP) misurate lungo la direione definita da VPN. Il front clipping plane è definito dalla quantità F (front distance): se F è positiva il piano è nel semispaio limitato dal piano di proieione che contiene PRP, se F è negativa dall altra parte. Stessa cosa per B, back distance. Ovviamente F deve essere maggiore di B per avere un volume positivo (e vedere qualcosa). In Fig. 4. è riportato il caso di proieione parallela ortografica. Per la proieione obliqua il volume che si ottiene è un parallelepipedo non retto, per la prospettiva una piramide tronca (retta solo se DOP, cioè il vettore che unisce PRP con CW, e VPN sono paralleli). Front clipping plane View plane VRP Back clipping plane VPN DOP F B Figura 4. Volume di vista troncato per il caso di proieione parallela ortografica. In figura F è positiva e B negativa. 4.3 La matematica delle proieioni In questa seione vengono introdotte le formule necessarie per il calcolo dei vari tipi di proieioni planari geometriche. Per iniiare si considerano i casi di proieioni prospettiche aventi il piano di proieione normale all asse a distana d dall origine e di proieione parallela sul piano = 0. Entrambe le proieioni possono essere definite da matrici 4 4: questo è utile, perchè si possono comporre con le matrici di trasformaione. Nel seguito si vedrà come trattare proieioni arbitrarie. 4.3. Casi particolari Iniiamo con il caso di proieione prospettica sul piano = d con centro di proieione coincidente con l origine. Sia P = (,, ) il generico punto da proiettare. Per calcolare P p = ( p, p, p ), cioè la proieione di P sul piano di proieione, si possono usare le relaioni di similarità fra i triangoli di Fig. 4.3 Moltiplicando per d si ottiene p = d p d =, = /d, p d =. p = d = /d. (4.) La distana d corrisponde quindi ad un semplice fattore di scala per p e p. La divisione per rende la proieione degli oggetti lontani più piccola di quella degli oggetti vicini. Tutti i valori di sono accettabili, a parte lo ero: è possibile quindi proiettare punti posti fra il centro di proieione ed il piano di proieione o dietro il centro di proieione. La trasformaione espressa dall Eq. 4. può essere ottenuta in coordinate omogenee mediante la matrice 4 4: M per = 0 0 0 0 0 0 0 0 0 0 0 /d 0 (4.) Moltiplicando il generico punto P = [ ] T per la matrice M per si ottiene il punto proiettato P p P p = X Y Z W = M per P = 0 0 0 0 0 0 0 0 0 0 0 /d 0 (4.3)

Piano di proieione P(,,) p P(,,) d Piano di proieiione d P p = (,, ) p p p p P(,,) Figura 4.3 Proieione prospettica del punto P (,, ) sul piano = d con centro di proieione in (0, 0, 0). Il punto P proiettato è P p ( p, p, p ). ovvero P p = [X Y Z W ] T = [ d] T (4.4) Dividendo ora per W, cioè /d, si ottiene P p = [ /d ] T /d d (4.5) Il risultato è ovviamente quello dell Eq. 4., più la corretta trasformaione di sul piano di proieione. Una formulaione alternativa (del tutto equivalente) si ottiene posiionando il piano di proieione in = 0 ed il centro di proieione in (0, 0, d), come indicato in Fig. 4.4. Le relaioni di similarità Piano di proieione P(,,) p P(,,) d Piano di proieiione d P p = (,, ) p p p p P(,,) Figura 4.4 Proieione prospettica alternativa. fra i triangoli sono ora Moltiplicando per d si ottiene p d = + d, p d = + d. p = d + d = (/d) +, p = d + d = (/d) +. (4.6) In forma matriciale si ottiene M per = 0 0 0 0 0 0 0 0 0 0 0 0 /d (4.7) Questa formulaione rimane valida anche quando d, distana fra il piano ed il centro di proieione, tende all infinito.

La proieione ortografica sul piano = 0 è banale: la direione di proieione è la perpendicolare al piano di proieione, cioè l asse in questo caso. Quindi un punto P = (,, ) si proietta come p =, p =. La matrice che descrive la proieione è quindi espressa dalla matrice 0 0 0 M ort = 0 0 0 0 0 0 0 (4.8) 0 0 0 Da notare come la matrice in 4.7 diventi la precedente quando d tende all infinito. E possibile generaliare M per e M ort in modo tale da poter descrivere qualsiasi tipo di proieione. La sola limitaione rimane quella di avere il piano di proieione perpendicolare all asse. In Fig. 4.5 la proieione del punto P = (,, ) sul piano di proieione = p è P p = ( p, p, p ). Il centro di proieione (COP) è a distana Q dal punto (0, 0, p ). La direione da (0, 0, p ) a COP è data dal vettore normaliato (d, d, d ). P p è sulla linea che unisce COP a P, definita parametricamente da COP + t(p COP), 0 t. oppure COP Q Piano di proieione P p = (,, ) p p p P(,,) (d, d, d ) (0, 0, ) p Figura 4.5 L interseione della linea che unisce COP a P con il piano di proieione = p è la proieione del punto P. COP è a distana Q dal punto (0, 0, p ), in direione (d, d, d ). Chiamando P = (,, ) il generico punto sulla linea ed essendo COP = (0, 0, p )+Q(d, d, d ) si ottiene (t) = Qd + ( Qd )t (4.9) (t) = Qd + ( Qd )t (4.0) (t) = ( p + Qd ) + ( ( p + Qd ))t (4.) Sostituendo p a si trova il punto P p, proieione di P : dal Eq. 4. si ottiene t = p ( p + Qd ) ( p + Qd ) (4.) Sostituendo nelle 4.9 e 4.0 per trovare = p e = p si ottiene p = d d p = d d + p d d p Qd + + p d d p Qd + (4.3) (4.4) Per poter trovare una espressione di p (che è data) che abbia lo stesso denominatore di p ed p (così si può mettere tutto in una matrice) è possibile usare il trucco seguente: p Qd p = + p p Qd + = p Qd + p +pqd Qd p Qd + (4.5)

Le equaioni 4.3, 4.4 e 4.5 possono ora essere espresse mediante una matrice 4 4, M general, costruita in modo tale che la sua ultima riga moltiplicata per [ ] produca il denominatore comune, che corrisponde alla coordinata omogenea W, cioè al divisore di X, Y e Z: M general = 0 d d 0 d d 0 0 p Qd 0 0 Qd d p d d p d p Qd p + p Qd + (4.6) Da M general possono essere derivate facilmente le tre matrici M per, M per e M ort tramite i seguenti valori: Q [d d d ] M ort 0 [0 0 ] (4.7) M per d d [0 0 ] M per 0 d [0 0 ] Quando Q, M general definisce una proieione prospettica ad un punto di fuga. La posiione sul piano di proieione di tale punto di fuga si trova moltiplicando per M general il punto all infinito dell asse, cioè [0 0 0] T. Eseguendo la moltiplicaione e dividendo per W per tornare in tre dimensioni si ottiene: fu = Qd, fu = Qd, fu = p. Dato il punto di fuga desiderato ( fu, fu ), che giace ovviamente sul piano di proieione, e la distana Q dal centro di proieione si può quindi determinare univocamente [d d d ], dato che ovviamente d + d + d =. In modo simile si ricavano le proieioni Cavaliera e Cabinet (l angolo α è quello delle figure 4.6 e 4.7): Q [d d d ] Cavaliera 0 [cos α sin α ] (4.8) Cabinet 0 [ cos α sin α ] Ovviamente i valori di [d d d ] devono essere normaliati in modo che il modulo del vettore sia unitario. E alfine giunta l ora di togliere anche l ultimo vincolo (piano di proieione perpendicolare all asse ) e di passare alla trattaione delle proieioni arbitrarie. 4.3. Trattaione generale La trattaione delle proieioni arbitrarie può ovviamente essere svolta in molti modi. Uno di questi, spesso usato, parte dalla constataione che uno dei passi computaionalmente più pesanti è il troncamento (clipping) rispetto al volume di vista. La soluione che si può adottare è quella di effettuare una trasformaione geometrica delle entità da proiettare che renda poi facile il troncamento. Nel caso di proieione parallela un volume di vista particolarmente semplice è quello definito dai sei piani =, =, =, =, = 0, =. (4.9) Per la proieione prospettica una scelta possibile è invece =, =, =, =, = min, =. (4.0) Tali volumi, mostrati in Fig. 4.6, sono detti volumi di vista canonici. Il modo di trattare le proieioni arbitrarie sarà quindi quello di trovare le trasformaioni di normaliaione, N par e N per, che trasformino il volume di vista voluto in quello canonico. La sequena necessaria per passare dalla rappresentaione delle entità tridimensionali espresse in coordinate mondo alla loro visualiaione su dispositivo bidimensionale è quindi:. Applicare la trasformaione di normaliaione N par oppure N per.. Troncare rispetto al volume di vista canonico. 3. Proiettare sul piano di proieione. 4. Trasformare nella viewport bidimensionale in coordinate schermo. Questa sequena può essere semplificata unendo i passi 3 e 4 in un unica trasformaione. Per il caso di proieione prospettica è inoltre necessario eseguire la divisione che porta le coordinate omogenee in coordinate 3D classiche. Restano da ricavare le trasformaioni di normaliaione per i casi di proieione parallela e prospettica.

oppure oppure Front plane Back plane Front plane Back plane - - - - - - Figura 4.6 Volumi di vista canonici per il caso di proieioni parallele (a sinistra) e prospettiche. 4.3.3 Proieioni parallele generali La trasformaione N par verrà ricavata per il caso generale di proieione parallela obliqua, anichè per l ortografica (meno generale). La sequena di trasformaioni che componendosi danno origine a N par è la seguente:. Traslare VPR nell origine.. Ruotare VRC in modo tale che l asse n (VPN) diventi l asse, l asse u diventi l asse e v diventi. 3. Eseguire una deformaione di taglio (shear) in modo tale che la direione di proieione sia parallela all asse. Questo passo è necessario solo per proieioni oblique e si salta per le ortografiche. 4. Traslare e scalare il volume di vista in quello canonico definito dall Eq. 4.9. Il passo non è altro che la trasformaione T(-VRP). Per il passo si possono usare le proprietà delle matrici di rotaione già viste. I vettori riga della matrice di rotaione del passo sono vettori unitari che, ruotati dalla matrice R, finiscono sugli assi, e. VPN deve essere ruotato sull asse, per cui R = V P N V P N L asse u, che è perpendicolare a VUP e VPN e quindi può essere espresso dal prodotto vettoriale di VUP e R (che ha la stessa direione di VPN), viene ruotato sull asse. Da ciò deriva che R = V UP R V UP R Analogamente l asse v, che è perpendicolare a R e R, viene ruotato sull asse La matrice di rotaione del passo è quindi: R = R = R R r r r 3 0 r r r 3 0 r r r 3 0 0 0 0 (4.) dove r è il primo elemento di R eccetera. Il tero passo è una deformaione di taglio lungo l asse del volume di vista risultante dalle prime due trasformaioni in modo tale che tutti i piani che lo definiscono siano perpendicolari ad un asse coordinato. Il fine è quello di portare DOP a coincidere con l asse (solo per proieioni parallele oblique, per le ortografiche è inutile, il volume di vista è già allineato). Da ricordare che DOP è il vettore fra PRP al centro della window (CW) e che PRP è specificato nel sistema di riferimento VRC. Le trasfomaioni eseguite nei primi due passi hanno portato VRC a coincidere con il sistema di coordinate mondo, e quindi PRP è già in coordinate mondo. Quindi DOP vale CW - PRP: poichè DOP = dop dop dop 0, CW = u ma+u min v ma+v min 0, P RP = prp u prp v prp n (4.)

si ottiene [ uma + u min DOP = CW P RP = v ma + v min 0 ] T [prp u prp v prp n ] T. (4.3) La deformaione di taglio si esegue mediante la matrice SH par = SH par (sh par, sh par ) = 0 sh par 0 0 sh par 0 0 0 0 0 0 0. (4.4) Come già visto l effetto di SH par è quello di non modificare e di aggiungere a ed i termini sh par e sh par. Chiamando DOP il nuovo valore desiderato per DOP (vedi Fig. 4.7) bisogna trovare sh par e sh par tali che: Quindi i valori cercati sono: DOP = [0 0 dop 0] T = SH par DOP. (4.5) sh par = dop dop, sh par = dop dop. (4.6) Se la proieione è ortogonale dop = dop = 0 e la matrice SH par diventa l identità, come ci si aspettava. oppure DOP oppure VPN DOP VPN - - Figura 4.7 Deformaione di taglio per il passo 3. I limiti del volume di vista dopo i primi tre passi sono diventati: u min u ma, v min v ma, B F (4.7) dove B ed F sono le distane da V RP e misurate lungo V P N dei front clipping plane e back clipping plane. Il quarto ed ultimo passo è quello di trasformare il volume di vista in quello canonico: ciò si ottiene traslando il centro del piano frontale del volume di vista nell origine e scalando in modo da ottenere le dimensioni volute ( ). Le trasformaioni sono: In totale si ottiene: T par S par = T = S ( u ma + u min (, u ma u min 4.3.4 Proieioni prospettiche generali, v ma + v min v ma v min, ), F, (4.8) ). (4.9) F B N par = S par T par SH par R T ( V RP ). (4.30) Qui si deriva la matrice di trasformaione N per che permette di convertire una arbitraria proieione prospettica in quella individuata dal volume di vista canonico definito nell Eq. 4.0, cioè nella piramide troncata con vertice nell origine e lati inclinati di 45 o. Se si esegue la trasformaione N per si può effettuare il clipping in modo facilitato e poi calcolare la proieione mediante la matrice M per vista in precedena. La sequena di trasformaioni che componendosi danno origine a N per è la seguente:

. Traslaione di VPR nell origine.. Rotaione di VRC in modo tale che l asse n (VPN) diventi l asse, l asse u diventi l asse e v diventi. 3. Traslaione in modo che il centro di proieione (COP), dato da PRP, sia nell origine. 4. Deformaione di taglio (shear) in modo tale che la linea centrale del volume di vista sia parallela all asse. 5. Scalamento in modo che il volume di vista diventi quello canonico definito dai sei piani dell Eq. 4.0. I passi e sono uguali a quelli già visti per le proieioni parallele: R T ( V RP ). Il passo 3 è una traslaione del centro di proieione nell origine, come richiesto per ottenere il volume di vista canonico. COP è specificato in modo relativo rispetto a VRP nel sistema di riferimento VRC da P RP = (prp u, prp v, prp n ). Le coordinate VRC sono, dopo i primi due passi, coincidenti con le coordinate mondo e quindi le coordinate di COP sono valide anche in questi sistema di riferimento. La traslaione del passo 3 è allora data da T ( P RP ). Per determinare la deformaione di taglio del passo 4 si può esaminare la Fig. 4.8, che mostra una vista laterale del volume di vista dopo aver eseguito i passi da a 3. La linea centrale del volume di vista, che passa attraverso l origine ed il centro della window (CW), non coincide, in generale, con l asse negativo. Lo scopo del passo 4 è quello di farli coincidere. Poichè PRP si trova (dopo i oppure CW linea centrale del volume di vista - = vrp VPN VRP Figura 4.8 Seione del volume di vista dopo le trasformaioni specificate nei passi da a 3. primi tre passi) nell origine, la direione da portare su è CW P RP, cioè la stessa del caso di proieioni parallele. Le matrice di shear, SH per, è quindi quella già trovata prima, ovvero SH par. Dopo aver applicato anche la trasformaione definita nel passo 4 la window, e quindi il volume di vista, è centrato rispetto all asse. I limiti della window sul piano di proieione sono: u ma u min u ma u min v ma v min v ma v min VRP, che prima del passo 3 era nell origine, diventa, dopo i passi 3 e 4: V RP = SH per T ( P RP ) [0 0 0 ] T. La componente di V RP (vrp ) e uguale a prp n, poichè SH per non modifica le coordinate. Il passo finale (cioè il quinto) è uno scalamento lungo i tre assi in modo da ottenere il volume di vista canonico, come mostrato in Fig. 4.9. Lo scalamento può essere realiato in due passi. Nel primo si scalano (diversamente) ed in modo da ottenere una inclinaione di 45 o per i quattro piani laterali della piramide di vista. Questo si realia scalando la window portandola a dimensioni vrp sia in che in. I fattori di scala sono quindi vrp /(u ma u min ) in e vrp /(v ma v min ) in. Nel secondo passo si scalano uniformemente le tre coordinate (così non varia l inclinaione dei piani laterali) in modo tale che il back clipping plane in = vrp + B diventi il piano =. Il fattore di scala del secondo passo è quindi /(vrp + B). Il fattore di scala ha il segno negativo cosicchè il fattore di scala diventa positivo, essendo vrp + B negativo.

Figura 4.9 Seione del volume di vista prima e dopo il passo finale di scalamento. In questo esempio F e B hanno segni opposti, e sono quindi da lati opposti rispetto a VRP. Unendo i due passi si ottiene la matrice di scalamento: ( = S S per vrp (u ma u min )(vrp + B), vrp (v ma v min )(vrp + B), vrp + B ). (4.3) Lo scalamento S per, applicato alle coordinate dei front e back clipping planes e del piano di proieione, produce i seguenti valori: proj = vrp vrp + B, min = vrp + F vrp + B, ma = vrp + B vrp + B =. (4.3) In totale la trasformaione totale che porta una arbitraria proieione prospettica nel volume canonico è: N per = S per SH per T ( P RP ) R T ( V RP ). (4.33) a