Costruzione di Interfacce Lezione 4 Nozioni di geometria per la grafica [email protected] http://vcg.iei.pi.cnr.it/~cignoni Introduzione Punti e vettori sono due cose diverse Basi e sistemi di riferimento (coordinate systems and frames) Coordinate omogenee Trasformazioni Affini Punti e vettori Punto Entità il cui unico attributo è la sua posizione rispetto ad un sistema di riferimento Vettore Entità i cui attributi sono lunghezza direzione Spesso si visualizza un punto come un vettore dall’origine a quel punto: pericoloso. Sono oggetti diversi. Spazio Vettoriale Spazio dove ci sono due entità scalari vettori , , u, v , w Operazioni: Somma e moltiplicazione tra scalari Somma vettore-vettore Moltiplicazione scalare-vettore Spazio affine Spazio dove ci sono tre entità Scalari, , , vettori, u, v, w P, Q , R punti Operazioni: Quelle di uno spazio vettoriale Somma punto:vettore-> punto Sottrazione punto:punto -> vettore P v Q v P Q Linea in uno spazio affine Rappresentazione parametrica di una linea P( ) P0 d Somma Affine In uno spazio affine NON ci sono somma tra punti e moltiplicazione tra scalare e punto Somma affine v R Q P Q v P Q ( R Q ) R (1 ) Q Convessità Somma affine P 1Q 2 R 1 2 1 Generalizzata P 1P1 2 P2 n Pn Inviluppo convesso, l’insieme dei punti che posso ottenere quando i 0 i 1,2,, n 1 2 n 1 Prodotto scalare Dot product o inner product, introduce il concetto di misura uv v u ( u v ) w u w v w vv 0 v 0 Ortogonalità Magnitudo Distanza tra punti Angolo tra vettori uv 0 v vv P Q P Q P Q u v u v cos Piano in uno spazio affine Dati tre punti P,Q,R non allineati, si puo’ trovare i punti all’interno del triangolo PQR S ( ) P (1 )Q 0 1 T ( ) S (1 ) R 0 1 T ( , ) (P (1 )Q ) (1 ) R T ( , ) P (1 )(Q P ) (1 )( R P ) T ( , ) P0 u v Sistemi di coordinate In uno spazio vettoriale 3d si può rappresentare univocamente un vettore w in termini di tre vettori linearmente indipendenti; I tre vettori usati sono una base di quello spazio {v1, v2 , v3} 1 a 2 3 w 1v1 2v2 3v3 v1 w aT v2 v3 Prodotto vettore Dati due vettori non paralleli u,v trovare un vettore w tale che: uw vw 0 Siano 1,2 ,3 1, 2 , 3 Le componenti di u,v in un particolare sitema di coordinate, allora in quel sistema si definisce: 2 3 3 2 w u v 3 1 1 3 1 2 2 1 Prodotto vettore Nota il prodotto vettore è consistente con l’orientamento della base del sistema di coordinate: Se siamo in un sistema right-handed allora, anche w segue la regola della mano destra: x y z Magnitudo: uv sin uv Sistemi di riferimento Una base (tre vettori, linearmente indipendenti) non basta per definire la posizione di un punto. Occorre anche un punto di riferimento, l’origine. Sistemi di riferimento Un frame (sistema di riferimento) necessita quindi di un punto di origine P0 e di una base. In esso si può rappresentare univocamente un punto P P0 1v1 2v2 3v3 Nota: bastano tre scalari per rappresentare un punto, come per un vettore… Cambio sistemi di coordinate 1 In uno spazio vettoriale, date due basi. Esprimiamo una in termini dell’altra: v1, v2 , v3 u1, u2 , u3 u1 11v1 12v2 13v3 u2 21v1 22v2 23v3 u3 31v1 32v2 33v3 Questo definisce la matrice 3x3 M di 11 12 13 cambiamento di M 21 22 23 base 31 32 33 u1 v1 u M v 2 2 u3 v3 Cambio sistemi di coordinate 2 Dato un vettore w Ne ottengo la sua rappresentazione nell’altro sistema di coordinate usando la matrice M w 1v1 2v2 3v3 v1 1 a 2 w aT v2 v3 3 w 1u1 2u2 3u3 1 b 2 3 a MT b Cambio sistemi di coordinate 3 Nota che si sta parlando di vettori e non di punti Questi cambi di base lasciano l’origine immutata (cambiano vettori) In altre parole rappresentano solo rotazioni e scalature. Un cambio di sistema di riferimento coinvolge anche un cambio del punto di origine. Coordinate Omogenee Per definire un frame bastano tre vettori ed un punto. {v1, v2 , v3 , P0} P 1v1 2v2 3v3 P0 v1 v P [1 2 3 1] 2 v3 P0 1 P P 0 P Coordinate Omogenee Si dice che un punto P è rappresentato dalla matrice colonna p E un vettore w è rappresentato dalla matrice colonna a 1 p 2 3 1 1 a 2 3 0 Cambio di Frame Dati due sistemi di riferimento. Esprimiamo uno in termini dell’altro: Questo definisce la matrice 4x4 di cambiamento di frame v1, v2 , v3 , P0 u1, u2 , u3 , Q0 u1 11v1 12v2 13v3 u2 21v1 22v2 23v3 u3 31v1 32v2 33v3 Q0 41v1 42v2 43v3 P0 11 M 21 31 41 12 22 32 42 13 23 33 43 0 0 0 1 Cambio di Frame La matrice di cambiamento di frame u1 v1 u v 2 M 2 u3 v3 Q 0 P0 Date le due rappresentazioni a,b in coordinate omogenee in differenti frame (sia di un vettore che di un punto), vale: u1 v1 v1 u v v bT 2 bT M 2 aT 2 a MT b u3 v3 v3 Q P 0 0 P0 Trasformazioni Affini Funzioni che prendono un punto (o un vettore) e lo mappano in un altro punto (o vettore) Lavorando in coord omogenee Ci interessano trasformazioni che siano lineari q f (p) v f (u) f ( p q) f ( p ) f ( q) Trasformazioni Affini Consideriamo lo spazio 4D delle coordinate omogenee Ogni trasformazione lineare nello spazio 4d trasforma la rappresentazione di un dato punto (vettore) in un’altra rappresentazione di quel punto (vettore) quindi può sempre essere scritta in termini delle due rappresentazioni v=Au Se A è non singolare una trasf affine corrisponde ad un cambio di coordinate Trasformazioni Affini In coordinate omogenee la matrice A deve anche lasciare immutata la quarta componente della rappresentazione 11 12 13 14 22 23 24 A 21 31 32 33 34 0 0 1 0 Trasformazioni Affini Notare che se u è un vettore solo 9 elementi di A sono usati nella trasformazione 11 12 13 14 1 22 23 24 2 Au 21 31 32 33 34 3 0 0 1 0 0 La quarta colonna corrisponde alla quarta riga della matrice di cambiamento di frame, che conteneva il nuovo punto di origine del frame (che chiaramente non serve se si parla di vettori) Trasformazioni Affini Preservano le linee Consideriamo una linea espressa nella forma parametrica P( ) P0 d Consideriamone la sua rapp. in coordinate omogenee p( ) p0 d A è una trasformazione affine Ap( ) Ap 0 A d Esercizio Considerando che una trasformazione affine puo’ essere pensata come un cambio di frame, come è fatta una matrice T che trasforma un punto spostandolo di un certo vettore Q?