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
uv  v u
( u   v )  w   u  w   v  w
vv  0  v  0
Ortogonalità
Magnitudo
Distanza tra punti
Angolo tra vettori
uv  0
v  vv
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:
uw  vw  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:
uv
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?
Scarica

Costruzione di Interfacce Nozioni di Geometria