200 Coordinate D Anche nella grafica D gli oggetti da visualiare vengono codificati a partire da primitive che collegano punti. I punti appartengono ad uno spaio tridimensionale. Vengono memoriati utiliando opportuni sistemi di coordinate. Coordinate D Coordinate cartesiane I sistemi di coordinate D che considereremo sono: Coordinate cartesiane Coordinate cilindriche Coordinate sferiche Coordinate omgenee In coordinate cartesiane, un punto viene descritto mediante numeri, e che rappresentano la distana del punto da piani ortogonali. Coordinate cartesiane Coordinate cartesiane Destrorsa Sinistrorsa Una coordinata cartesiana si basa su assi, chiamati asse, asse e asse. Esistono due tipi differenti di terne di assi: quella destrorsa e sinistrorsa. Si distinguono a seconda della direione dell'asse.
Coordinate cartesiane Coordinate cilindriche ρ θ ρ h θ I piani rispetto ai quali si calcolano le distane si chiamano piano, piano e piano. Le coordinate cilindriche aggiungono l'altea h alle coordinate polari. Coordinate sferiche Coordinate omogenee φ ρ θ }w Le coordinate sferiche definiscono invece i punti mediante due angoli q e f, ed una distana r (chiamata raggio) da un centro. In coordinate omogenee un punto viene descritto da 4 numeri,, e w. Le coordinate, e sono coordinate cartesiane, mentre w rappresenta una scala. Coordinate omogenee Coordinate omogenee (2,2,2,1) (2,2,2,1) (2:1, 2:1, 2:1) (1,1,1,0.5) (1,1,1,0.5) (1:0.5, 1:0.5, 1:0.5) (2,2,2) (5,5,5,2.5) (5,5,5,2.5) (5:2.5, 5:2.5, 5:2.5) In coordinate omogenee, ad un punto corrispondono piu' quaterne diverse (tutte quelle in cui i 4 numeri sono multipli di uno stesso fattore). Queste coordinate servono per implementare la prospettiva. Per ottenere la coordinata cartesiana equivalente e' sufficente dividere le prime componenti per l'ultima.
Le coordinate dei punti in grafica D sono identificate da o 4 numeri. Occorre quindi uno strumento per trattare agevolmente gruppi di numeri. sono uno strumento matematico con cui si possono trattare gruppi di numeri come se fossero un unico valore. (1,, 5) (-00, -450) (.2, 5.1, -0, 54) Un vettore e' un insieme di numeri. Ogni numero viene detto componente. (1,, 5) } 2 } (-00, -450) 4 } (.2, 5.1, -0, 54) Il numero di componenti di un vettore ne rappresenta la sua cardinalita' (o dimensione). u(1,, 5) v(.2, 5.1, -0, 54) j(-00, -450) vengono generalmente indicati scrivendo delle lettere minuscole in grassetto. (1,, 5) (1,, 5,1) Un vettore con dimensione puo' essere utiliato per memoriare una coordinata cartesiana, cilindrica o sferica. Un vettore con cardinalita' 4 puo' invce memoriare una coordinata omogenea.
n possono anche essere utiliati per memoriare direioni e non solo coordinate. In questo caso la direione e' quella che unisce il centro del sistema al punto identificato dal vettore. possono essere anche utiliati per identificare un piano. Vedremo piu' avanti come. Le matrici Le matrici non sono sufficienti per codificare le operaioni che si possono effettuare su oggetti D. Occorronno altri strumenti capaci di raggruppare insiemi bidimensionali di numeri. Le matrici sono lo strumento matematico destinato a tale scopo. 1 0 2.1-5 -4.1 Una matrice e' un insieme bidimensionale di numeri. Ogni numero viene detto elemento. Le matrici Le matrici
Le matrici Le matrici Operaioni tra vettori e matrici Operaioni tra vettori e matrici Tra numeri, vettori e matrici sono state definite numerose operaioni matematiche. Queste operaioni vengono adoperate nella grafica D per eseguire le varie operaioni necessarie a costruire le immagini. Operaioni tra vettori e matrici Operaioni tra vettori e matrici 2 2.5 + - 2 2.5 - - 5-4 1 2 10 9 5 4 (1,, 5) (4,12,20) 5 (,-2,-9) (15,0,-45) In modo analogo, sommare o sottrarre due matrici corrisponde a sommare o sottrarre i loro elementi. Moltiplicare un vettore per un numero equivale a moltiplicare tutte le sue componenti per quel valore.
Operaioni tra vettori e matrici 2 2.5-2 2.5 4 - -9 8 2 9 10 12 In maniera analoga si effettua la moltiplicaione tra matrici e numeri. Operaioni tra vettori e matrici Esistono tipi di "moltiplicaione" speciale tra vettori e matrici: Prodotto scalare Prodotto scalare Prodotto scalare (1,, 5). (,-2,-9) --45-48 (1,, 5). (,-2,-9) --45-48 (2,, 2). (-,-2,5) -+2+10 (2,, 2). (-,-2,5) -+2+10 Dati due vettori u e v, si chiama prodotto scalare la somma dei prodotti delle loro componenti. L'operaione "prodotto scalare" si indica con un punto, il risultato di tale operaione e' un numero puro Prodotto scalare Prodotto scalare Ha un significato fisico: corrisponde a moltiplicare la lunghea di un vettore per la proieione dell'altro su di lui. In grafica viene adoperato in molte situaioni, come ad esempio determinare l'illuminaione di un oggetto.
(a,b,c) (d,e,f) (bf-ec,cd-af,ae-bd) (2,,2) (-,-2,5) ((). 5-(-2). 2, 2. (-)-2. 5, 2. (-2)-(). (-)) (-5+4,-0,-4-) (,,-7) Il prodotto vettoriale di due vettori u e v, corrisponde ad un vettore le cui componenti sono calcolate attraverso questa formula. (a,b,c) (d,e,f) (bf-ec,cd-af,ae-bd) (2,,2) (-,-2,5) ((). 5-(-2). 2, 2. (-)-2. 5, 2. (-2)-(). (-)) (-5+4,-0,-4-) (,,-7) Il prodotto vettoriale di due vettori e' a sua volta un vettore e si indica con una croce. (a,b,c) (d,e,f) (bf-ec,cd-af,ae-bd) E' un vettore perpendicolare al piano su cui giacciono i due vettori componenti, ed e' grande quanto il prodotto di uno per il "braccio" dell'altro. A differena del prodotto scalare esiste solamente per vettori di cardinalita'. (2,,2) (-,-2,5) (,,-7) (-,-2,5) (2,,2) ((-2). 2-(). 5, 2. 5-2. (-), (). (-)-2. (-2)) (-4+5,10+,+4) (1,1,7) Il prodotto vettoriale non e' commutativo: uv e' diverso da vu. In grafica viene adoperato, ad esempio, per capire quali parti di un oggetto non sono visibili.
(, ) (, ). 2.5 - -20. 2.5 - -20 Quando si moltiplica una matrice M per un vettore v si ottiene un altro vettore u. Per trovare le componenti del risultato si considerano le righe della matrice come se fossero vettori... (, ). (2,-)-22.5.5 (, ). (2,-)-28-20 (2,-). (,)+ 9 (2,-). (,)158-. 2.5 - -20 (2,-). (9,-)... e le si moltiplica scalarmente una per una per il vettore. Ogni prodotto rappresenta una componente del vettore risultante. Se invece si moltiplica un vettore v per una matrice M, si considerano come vettori le colonne della matrice e si esegue lo stesso procedimento. 2 1. - 1.5-20 10.5 17 2 1. - 1.5-20 10.5 17 Se si moltiplicano invece due matrici M ed N, si ottiene una nuova matrice. Si considerano ad una ad una le colonne della seconda matrice come se fossero dei vettori...
. 2.5 - -20 2 1 - Nella grafica D è spesso necessario utiliare il concetto di angolo. In grafica i prodotti matriciali vengono utiliati per applicare le trasformaioni ai punti delle figure. Il computer lavora intrinsecamente in coordinate cartesiane e tale sistema non specifica i punti dello spaio mediante angoli. La trigonometria permette di trasformare gli angoli in coordinate cartesiane. sen α α α Dato un angolo ed un raggio (coordinate polari), le funioni seno e coseno permettono di determinare le coordinate cartesiane del un punto. Il seno di un angolo α corrisponde all'ordinata dell'interseione tra una retta passante per l'origine che forma un angolo α con l'asse, ed una circonferena di raggio 1 centrata nell'origine.
α cos α α (.45,.715) α 48 r 5 sin α 0.74 cos α 0.9 Il coseno corrisponde invece all'ascissa. Se si moltiplicano seno e coseno dell'angolo per la lunghea del raggio, si trovano le coordinate del punto. α tan α arcsen 0.5 0 arccos 0.5 0 arctan 0.5 2.5 La tangente corrisponde invece alla lunghea dell'interseione tra la retta passante per il centro e quella tangente alla circonferena unitaria. Le funioni inverese arcoseno, arcocoseno ed arcotangente ci dicono quale angolo abbia un determinato seno, coseno o tangente. Matrici e vettori nella grafica D sono importanti nella grafica D perche' sono utiliati per memoriare le coordinate dei punti che compongono i vari oggetti modellati. Vengono anche utiliati per determinare l'orientamento delle superfici e le velocita' di movimento degli oggetti. Matrici e vettori nella grafica D Le matrici memoriano invece tutte le operaioni di trasformaione e di proieione che occorrono per realiare rotaioni, traslaioni, cambi di scala, skew ed altro. Generalmente tutte le trasformaioni possono essere conglobate in un'unica matrice.
Matrici e vettori nella grafica D Le trasformaioni si applicano ai punti moltiplicando il vettore corrispondente al punto per la matrice che identifica la trasformaione. Moltiplicando tra loro le matrici che rappresentano le varie trasformaioni, si riduce l'intero processo di trasformaione ad una unica matrice. Matrici e vettori nella grafica D La trigonometria viene utiliata per determinare i numeri da inserire nelle matrici per effettuare operaioni di rotaione. Inoltre puo' essere utile per posiionare "correttamente" oggeti sulla scena in caso di movimenti circolari. Matrici e vettori nella grafica D Normalmente tutti i vettori, le matrici ed i calcoli trigonometrici sono nascosti all'utente ed effettuati automaticamente dai programmi. Per realiare grafica D non occorre quindi sapere calcolare manualmente prodotto tra vettori e matrici. Matrici e vettori nella grafica D I programmi impiegano al loro interno questi principi e questi metodi di calcolo. Conoscere quali calcoli vengono eseguti e' esseniale per capire la motivaione di alcuni comportamenti poco intuitivi che possono avere i programmi di grafica.