Costruzione di Interfacce
Lezione 4
Sistemi di riferimento e
trasformazioni
[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
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 
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
Preservano la colinearita’
Tutti i punti inizialmente su una linea
giacciono ancora su di una linea dopo la
trasformazione
E
I rapporti tra le distanze
Il punto di mezzo di un segmento rimane il
punto di mezzo di un segmento anche dopo
la trasformazione.
Trasformazioni Affini
 Dato un punto ed una sua rappresentazione
Ogni trasformazione lineare trasforma il punto
nel punto che ha la stessa rappresentazione
ma in un altro sistema di coordinate.
P  1v1  2v2  3v3  P0
f ( P)  1 f (v1 )   2 f (v2 )   3 f (v3 )  f ( P0 )
Trasformazioni Affini
quindi può sempre essere scritta in
termini del rapporto che lega i due
sistemi di riferimento
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?
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
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)
Traslazione
modifica i punti di un frame sommando
a tutti i punti un vettore di spostamento
d
P  P  d
p'  p  d
Traslazione
p'  p  d
p  Tp
 x
 x 
 x 
 y
 y 
 
p    p    d   y 
z
 z 
 z 
 
 
 
1
1
0
1
0
T
0

0
0 0 x 
1 0 y 

0 1 z 

0 0 1
Traslazione
1
0
T( x ,  y ,  z )  
0

0
0 0 x 
1 0 y

0 1 z 

0 0 1
1
0
T 1 ( x ,  y ,  z )  T(  x , y , z ) 
0

0
0 0  x 
1 0 y

0 1  z 

0 0
1 
Rotazione
Di una rotazione si deve specificare
angolo,
asse
punto di
applicazione
Rotazione
Caso semplice asse z, intorno
all’origine, di un’angolo q
x   cos 
y   sin 
x   cos(  q )
y    sin(   q )
(x’,y’)
q

(x,y)
Rotazione
x   cos 
y   sin 
x   cos  cosq   sin  sin q  x cosq  y sin q
y    cos  sin q   sin  cosq  x sin q  y cosq
 x cosq
 y   sin q
  
 sin q   x 
cosq   y 
Rotazioni
 x 
 x   xcosq - ysin q 
 y 
 y   xsin q  y cosq 
   R(q ) Z    

 z 
z 

z
 
  

1
1
1  

cosq
 sin q
R(q ) Z  
 0

 0
- sin q
cosq
0
0
0 0
0 0
1 0

0 1
Rotazioni
 cosq
 0
R(q )Y  
- sin q

 0
0 sin q
1
0
0 cosq
0
0
0

0
0
1
0
1
 0 cosq
R(q ) X  
 0 sin q

0
0
0
- sin q
cosq
0
0
0
0

1
Rotazioni
Le matrici di rotazione viste finora sono
facilmente invertibili
R 1 (q )  R (q )
sin( q )   sin( q )
cos( q )  cos(q )
Quindi basta trasporre…
R 1 (q )  R T (q )
Rotazioni Complesse
Rotazioni centrate non sull’origine
Rotazioni su assi diversi da quelli
principali
Si ottengono per composizione di
trasformazioni
Scaling
 Non rigida
 Non uniforme lungo gli assi
 Solo centrata rispetto
all’origine
x'   x x
y'   y y
z'   z z
 x
0
S ( x ,  y ,  z ) X  
0

0
0
y
0
0
0
0
z
0
0
0
0

1
Cambi di Sistemi di riferimento
Il primo step della pipeline di rendering
è quello di trasformare la scena nel
sistema di riferimento della camera
9 Ott 2002
Costruzione di Interfacce - Paolo
Cignoni
37
Object Frame
Perché ogni oggetto ha il suo sistema di
riferimento?
Uso Multiplo di uno stesso oggetto
Posizione parametrica
Scarica

Cambio di Frame