costruzione di interfacce lezione 4 sistemi di riferimento e trasformazioni [email protected]...
TRANSCRIPT
![Page 1: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/1.jpg)
Costruzione di InterfacceLezione 4
Sistemi di riferimento e trasformazioni
[email protected]://vcg.iei.pi.cnr.it/~cignoni
![Page 2: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/2.jpg)
Introduzione
Punti e vettori sono due cose diverseBasi e sistemi di riferimento
(coordinate systems and frames)Coordinate omogeneeTrasformazioni Affini
![Page 3: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/3.jpg)
Punti e vettori
PuntoEntità il cui unico attributo è la sua
posizione rispetto ad un sistema di riferimento
VettoreEntità i cui attributi sono lunghezza
direzione
Spesso si visualizza un punto come un vettore dall’origine a quel punto: pericoloso. Sono oggetti diversi.
![Page 4: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/4.jpg)
Spazio Vettoriale
Spazio dove ci sono due entità scalarivettori
Operazioni:Somma e moltiplicazione tra scalariSomma vettore-vettoreMoltiplicazione scalare-vettore
wvu ,,
,,
![Page 5: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/5.jpg)
Spazio affine
Spazio dove ci sono tre entità Scalari,vettori, punti
Operazioni:Quelle di uno spazio vettorialeSomma punto:vettore-> puntoSottrazione punto:punto -> vettore
wvu ,,
,,
RQP ,,
QvP QPv
![Page 6: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/6.jpg)
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
332211 vvvw
3
2
1
a
3
2
1
v
v
v
w Ta
},,{ 321 vvv
![Page 7: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/7.jpg)
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.
![Page 8: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/8.jpg)
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
Nota: bastano tre scalari per rappresentare un punto, come per un vettore…
3322110 vvvPP
![Page 9: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/9.jpg)
Cambio sistemi di coordinate 1
In uno spazio vettoriale, date due basi.
Esprimiamo una in termini dell’altra:
Questo definisce la matrice 3x3 M di cambiamento di base
321321 ,,,, uuuvvv
3332321313
3232221212
3132121111
vvvu
vvvu
vvvu
333231
232221
131211
M
3
2
1
3
2
1
v
v
v
u
u
u
M
![Page 10: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/10.jpg)
Cambio sistemi di coordinate 2
Dato un vettore w
Ne ottengo la sua rappresentazione nell’altro sistema di coordinate usando la matrice M
332211 vvvw
3
2
1
a
3
2
1
v
v
v
w Ta
332211 uuuw
3
2
1
b bMa T
![Page 11: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/11.jpg)
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.
![Page 12: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/12.jpg)
Coordinate Omogenee
Per definire un frame bastano tre vettori ed un punto.
0332211 PvvvP
},,,{ 0321 Pvvv
0
3
2
1
321 ]1[
P
v
v
v
P
P
PP
0
1
![Page 13: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/13.jpg)
Coordinate Omogenee
Si dice che un punto P è rappresentato dalla matrice colonna p
E un vettore w è rappresentato dalla matrice colonna a
13
2
1
p
03
2
1
a
![Page 14: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/14.jpg)
Cambio di Frame
Dati due sistemi di riferimento.
Esprimiamo uno in termini dell’altro:
Questo definisce la matrice 4x4 di cambiamento di frame
03210321 ,,,,,, QuuuPvvv
03432421410
3332321313
3232221212
3132121111
PvvvQ
vvvu
vvvu
vvvu
1
0
0
0
434241
333231
232221
131211
M
![Page 15: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/15.jpg)
Cambio di Frame
La matrice di cambiamento di frame
Date le due rappresentazioni a,b in coordinate omogenee in differenti frame (sia di un vettore che di un punto), vale:
0
3
2
1
0
3
2
1
P
v
v
v
Q
u
u
u
M
bMaabb TTTT
P
v
v
v
P
v
v
v
M
Q
u
u
u
0
3
2
1
0
3
2
1
0
3
2
1
![Page 16: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/16.jpg)
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
)(
)(
uv
pq
f
f
)()()( qfpfqpf
![Page 17: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/17.jpg)
Trasformazioni affini
Preservano la colinearita’Tutti i punti inizialmente su una linea
giacciono ancora su di una linea dopo la trasformazione
EI rapporti tra le distanze
Il punto di mezzo di un segmento rimane il punto di mezzo di un segmento anche dopo la trasformazione.
![Page 18: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/18.jpg)
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.
)()()()()( 0332211 PfvfvfvfPf
0332211 PvvvP
![Page 19: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/19.jpg)
Trasformazioni Affini
quindi può sempre essere scritta in termini del rapporto che lega i due sistemi di riferimento
v=AuSe A è non singolare una trasf affine
corrisponde ad un cambio di coordinate
![Page 20: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/20.jpg)
Trasformazioni Affini
In coordinate omogenee la matrice A deve anche lasciare immutata la quarta componente della rappresentazione
100034333231
24232221
14131211
A
![Page 21: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/21.jpg)
Trasformazioni Affini
Notare che se u è un vettore solo 9 elementi di A sono usati nella trasformazione
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)
010003
2
1
34333231
24232221
14131211
Au
![Page 22: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/22.jpg)
Trasformazioni Affini
Preservano le linee Consideriamo una linea espressa nella forma
parametrica
Consideriamone la sua rapp. in coordinate omogenee
A è una trasformazione affine
dPP 0)(
dpp 0)(
dAApAp 0)(
![Page 23: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/23.jpg)
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?
![Page 24: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/24.jpg)
Coordinate Omogenee
Si dice che un punto P è rappresentato dalla matrice colonna p
E un vettore w è rappresentato dalla matrice colonna a
13
2
1
p
03
2
1
a
![Page 25: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/25.jpg)
Trasformazioni Affini
Notare che se u è un vettore solo 9 elementi di A sono usati nella trasformazione
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)
010003
2
1
34333231
24232221
14131211
Au
![Page 26: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/26.jpg)
Traslazione
modifica i punti di un frame sommando a tutti i punti un vettore di spostamento d
dPP
dpp'
![Page 27: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/27.jpg)
Traslazione
011z
y
x
dz
y
x
z
y
x
ppdpp'
1000
100
010
001
z
y
x
TTpp
![Page 28: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/28.jpg)
Traslazione
1000
100
010
001
),,(z
y
x
zyx
T
1000
100
010
001
),,(),,(1
z
y
x
zyxzyx
TT
![Page 29: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/29.jpg)
Rotazione
Di una rotazione si deve specificare angolo, asse punto di
applicazione
![Page 30: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/30.jpg)
Rotazione
Caso semplice asse z, intorno all’origine, di un’angolo
)sin(
)cos(
sin
cos
y
x
y
x
(x’,y’)
(x,y)
![Page 31: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/31.jpg)
Rotazione
cossincossinsincos
sincossinsincoscos
sin
cos
yxy
yxx
y
x
y
x
y
x
cossin
sincos
![Page 32: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/32.jpg)
Rotazioni
1
cossin
sin-cos
1
)(
1
z
yx
yx
z
y
x
Rz
y
x
Z
1000
0100
00cossin
00sin-cos
)(
ZR
![Page 33: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/33.jpg)
Rotazioni
1000
0cossin0
0sin-cos0
0001
)(
XR
1000
0cos0sin-
0010
0sin0cos
)(
YR
![Page 34: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/34.jpg)
Rotazioni
Le matrici di rotazione viste finora sono facilmente invertibili
Quindi basta trasporre…
)()(
)cos()cos(
)sin()sin(
)()(
1
1
TRR
RR
![Page 35: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/35.jpg)
Rotazioni Complesse
Rotazioni centrate non sull’origineRotazioni su assi diversi da quelli
principali
Si ottengono per composizione di trasformazioni
![Page 36: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/36.jpg)
Scaling
Non rigida Non uniforme lungo gli assi Solo centrata rispetto
all’origine
1000
000
000
000
),,(
'
'
'
z
y
x
Xzyx
z
y
x
S
zz
yy
xx
![Page 37: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/37.jpg)
9 Ott 2002 Costruzione di Interfacce - Paolo Cignoni
37
Cambi di Sistemi di riferimento
Il primo step della pipeline di rendering è quello di trasformare la scena nel sistema di riferimento della camera
![Page 38: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni](https://reader035.vdocuments.site/reader035/viewer/2022062312/5542eb50497959361e8c0090/html5/thumbnails/38.jpg)
Object Frame
Perché ogni oggetto ha il suo sistema di riferimento?Uso Multiplo di uno stesso oggettoPosizione parametrica