View
215
Download
0
Category
Preview:
Citation preview
Costruzione di InterfacceLezione 4
Sistemi di riferimento etrasformazioni
cignoni@iei.pi.cnr.ithttp://vcg.iei.pi.cnr.it/~cignoni
Introduzione
Punti e vettori sono due cose diverseBasi e sistemi di riferimento
(coordinate systems and frames)Coordinate omogeneeTrasformazioni Affini
Punti e vettori
PuntoEntità il cui unico attributo è la sua
posizione rispetto ad un sistema diriferimento
VettoreEntità i cui attributi sono lunghezza
direzione
Spesso si visualizza un punto come unvettore dall’origine a quel punto:pericoloso. Sono oggetti diversi.
Spazio Vettoriale
Spazio dove ci sono due entitàscalarivettori
Operazioni:Somma e moltiplicazione tra scalariSomma vettore-vettoreMoltiplicazione scalare-vettore
wvu ,,
!"# ,,
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 !=
Sistemi di coordinate
In uno spazio vettoriale 3d si puòrappresentare univocamente un vettorew in termini di tre vettori linearmenteindipendenti; I tre vettori usati sonouna base di quello spazio
332211vvvw !!! ++=
!!!
"
#
$$$
%
&
=
3
2
1
'
'
'
a
!!!
"
#
$$$
%
&
=
3
2
1
v
v
v
wTa
},,{ 321 vvv
Sistemi di riferimento
Una base (tre vettori, linearmenteindipendenti) non basta per definire laposizione 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 origineP0 e di una base. In esso si puòrappresentare univocamente un punto
Nota: bastano tre scalari per rappresentare unpunto, come per un vettore…
3322110vvvPP !!! +++=
Cambio sistemi di coordinate 1
In uno spaziovettoriale, date duebasi.
Esprimiamo una intermini dell’altra:
Questo definisce lamatrice 3x3 M dicambiamento dibase
{ } { }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
Cambio sistemi di coordinate 2
Dato un vettore w
Ne ottengo la suarappresentazionenell’altro sistemadi coordinateusando la matriceM
332211vvvw !!! ++=
!!!
"
#
$$$
%
&
=
3
2
1
'
'
'
a
!!!
"
#
$$$
%
&
=
3
2
1
v
v
v
wTa
332211uuuw !!! ++=
!!!
"
#
$$$
%
&
=
3
2
1
'
'
'
b bMaT
=
Cambio sistemi di coordinate 3
Nota che si sta parlando di vettori e nondi punti
Questi cambi di base lasciano l’origineimmutata (cambiano vettori)
In altre parole rappresentano solorotazioni e scalature.
Un cambio di sistema di riferimentocoinvolge anche un cambio del punto diorigine.
Coordinate Omogenee
Per definire un frame bastano trevettori ed un punto.
0332211PvvvP +++= !!!
},,,{ 0321 Pvvv
!!!!
"
#
$$$$
%
&
=
0
3
2
1
321 ]1[
P
v
v
v
P '''!"#
$=%
=%
P
PP
0
1
Coordinate Omogenee
Si dice che un punto P èrappresentato dalla matricecolonna p
E un vettore w è rappresentatodalla matrice colonna a
!!!!
"
#
$$$$
%
&
=
1
3
2
1
'
'
'
p
!!!!
"
#
$$$$
%
&
=
0
3
2
1
'
'
'
a
Cambio di Frame
Dati due sistemi diriferimento.
Esprimiamo uno intermini dell’altro:
Questo definisce lamatrice 4x4 dicambiamento diframe
{ } { }03210321
,,,,,, QuuuPvvv
03432421410
3332321313
3232221212
3132121111
PvvvQ
vvvu
vvvu
vvvu
+++=
++=
++=
++=
!!!
!!!
!!!
!!!
!!!!
"
#
$$$$
%
&
=
1
0
0
0
434241
333231
232221
131211
'''
'''
'''
'''
M
Cambio di Frame
La matrice dicambiamentodi frame
Date le due rappresentazioni a,b incoordinate 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
bMaabbTTTT
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
Trasformazioni Affini
Funzioni che prendono unpunto (o un vettore) e lomappano in un altropunto (o vettore)
Lavorando in coordomogenee
Ci interessanotrasformazioni che sianolineari
)(
)(
uv
pq
f
f
=
=
)()()( qfpfqpf !"!" +=+
Trasformazioni affini
Preservano la colinearita’Tutti i punti inizialmente su una linea
giacciono ancora su di una linea dopo latrasformazione
EI rapporti tra le distanze
Il punto di mezzo di un segmento rimane ilpunto di mezzo di un segmento anche dopola trasformazione.
Trasformazioni Affini
Dato un punto ed una sua rappresentazioneOgni trasformazione lineare trasforma il puntonel punto che ha la stessa rappresentazionema in un altro sistema di coordinate.
)()()()()( 0332211 PfvfvfvfPf +++= !!!
0332211PvvvP +++= !!!
Trasformazioni Affini
quindi può sempre essere scritta intermini del rapporto che lega i duesistemi di riferimento
v=AuSe A è non singolare una trasf affine
corrisponde ad un cambio di coordinate
Trasformazioni Affini
In coordinate omogenee la matrice Adeve anche lasciare immutata la quartacomponente della rappresentazione
!!!!
"
#
$$$$
%
&
=
1000
34333231
24232221
14131211
''''
''''
''''
A
Trasformazioni Affini
Notare che se u è un vettore solo 9 elementi diA sono usati nella trasformazione
La quarta colonna corrisponde alla quarta rigadella matrice di cambiamento di frame, checonteneva il nuovo punto di origine del frame(che chiaramente non serve se si parla divettori)
!!!!
"
#
$$$$
%
&
!!!!
"
#
$$$$
%
&
=
01000
3
2
1
34333231
24232221
14131211
'
'
'
((((
((((
((((
Au
Trasformazioni Affini
Preservano le linee Consideriamo una linea espressa nella forma
parametrica
Consideriamone la sua rapp. in coordinateomogenee
A è una trasformazione affine
dPP !! += 0)(
dpp !! += 0)(
dAApAp !! += 0)(
Esercizio
Considerando che una trasformazioneaffine puo’ essere pensata come uncambio di frame, come è fatta unamatrice T che trasforma un puntospostandolo di un certo vettore Q?
Coordinate Omogenee
Si dice che un punto P èrappresentato dalla matricecolonna p
E un vettore w è rappresentatodalla matrice colonna a
!!!!
"
#
$$$$
%
&
=
1
3
2
1
'
'
'
p
!!!!
"
#
$$$$
%
&
=
0
3
2
1
'
'
'
a
Trasformazioni Affini
Notare che se u è un vettore solo 9 elementi diA sono usati nella trasformazione
La quarta colonna corrisponde alla quarta rigadella matrice di cambiamento di frame, checonteneva il nuovo punto di origine del frame(che chiaramente non serve se si parla divettori)
!!!!
"
#
$$$$
%
&
!!!!
"
#
$$$$
%
&
=
01000
3
2
1
34333231
24232221
14131211
'
'
'
((((
((((
((((
Au
Traslazione
modifica i punti di un frame sommandoa tutti i punti un vettore di spostamentod
dPP +=!
dpp' +=
Traslazione
!!!!
"
#
$$$$
%
&
=
!!!!
"
#
$$$$
%
&
'
'
'
='
!!!!
"
#
$$$$
%
&
=
011
z
y
x
dz
y
x
z
y
x
(
(
(
ppdpp' +=
!!!!
"
#
$$$$
%
&
=='
1000
100
010
001
z
y
x
(
(
(
TTpp
Traslazione
!!!!
"
#
$$$$
%
&
=
1000
100
010
001
),,(z
y
x
zyx '
'
'
'''T
!!!!
"
#
$$$$
%
&
'
'
'
'''='
1000
100
010
001
),,(),,(1
z
y
x
zyxzyx (
(
(
(((((( TT
Rotazione
Caso semplice asse z, intornoall’origine, di un’angolo θ
)sin(
)cos(
sin
cos
!"#
!"#
"#
"#
+=$
+=$
=
=
y
x
y
x
θ
ρ
(x’,y’)
(x,y)
Rotazione
!!!"#!"#
!!!"#!"#
"#
"#
cossincossinsincos
sincossinsincoscos
sin
cos
yxy
yxx
y
x
+=+=$
%=%=$
=
=
!"
#$%
&!"
#$%
& '=!
"
#$%
&
(
(
y
x
y
x
))
))
cossin
sincos
Rotazioni
!!!!
"
#
$$$$
%
&
+=
!!!!
"
#
$$$$
%
&
=
!!!!
"
#
$$$$
%
&
'
'
'
1
cossin
sin-cos
1
)(
1
z
yx
yx
z
y
x
Rz
y
x
Z
((
((
(
!!!!
"
#
$$$$
%
&
=
1000
0100
00cossin
00sin-cos
)(''
''
'Z
R
Rotazioni
!!!!
"
#
$$$$
%
&
=
1000
0cossin0
0sin-cos0
0001
)(''
'''
XR
!!!!
"
#
$$$$
%
&
=
1000
0cos0sin-
0010
0sin0cos
)(''
''
'Y
R
Rotazioni
Le matrici di rotazione viste finora sonofacilmente invertibili
Quindi basta trasporre…
)()(
)cos()cos(
)sin()sin(
)()(
1
1
!!
!!
!!
!!
TRR
RR
=
="
"="
"=
"
"
Rotazioni Complesse
Rotazioni centrate non sull’origineRotazioni su assi diversi da quelli
principali
Si ottengono per composizione ditrasformazioni
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
'
'
'
'''
'
'
'
9 Ott 2002 Costruzione di Interfacce - PaoloCignoni
37
Cambi di Sistemi di riferimento
Il primo step della pipeline di renderingè quello di trasformare la scena nelsistema di riferimento della camera
Recommended