le trasformazioni daniele marini. 2 concetti spazio affine coordinate omogenee matrici traslazione,...
TRANSCRIPT
![Page 1: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/1.jpg)
Le trasformazioni
Daniele Marini
![Page 2: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/2.jpg)
2
Concetti
• Spazio affine• Coordinate omogenee• Matrici• Traslazione, Scala, Rotazione, Shear
• Prodotto matrice-vettore colonna
![Page 3: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/3.jpg)
3
Richiami di geometria affine
• Spazio vettoriale lineare: operazioni di somma tra vettori
• Campo scalare e operazioni prodotto vettore per scalare
• Spazio affine, due nuove operazioni: – addizione vettore - punto; – sottrazione punto-punto
![Page 4: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/4.jpg)
4
Richiami di geometria affine
product)(dot interno prodotto
neapplicazio di punto del ne traslazio:vettore-punto somma v=P
punti due di differenza come vettore
),,(
),,(
222
zzyyxx
zyx
zyx
uvuvuvuv
Q
QPv
vvvv
vvvv
zyxP
++=⋅
+
−=
++=
=
=
€
w = u × v =
uyvz − uzvy
uzvx − uxvz
uxvy − uyvx
⎡
⎣
⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ prodotto vettore (cross product)
![Page 5: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/5.jpg)
5
Richiami di geometria affine
u×v=0 sse ortogonali
α(u+v)=αu+αv linearità
α1u1 +α2u2 +....+αnun =w combinazione lineare
se α1u1 +α2u2 +....+αnun =0 vale per α1 =α2..=αn =0
allora (u1,...,un) sono lineamente indipendenti
n è la dimensione dello spazio, (u1,...,un) è la base dello spazio
cosϑ =u .v
u.v angolo tra due vettori
sinϑ =u ×v
u.v il modulo del cross product dà il seno dell'angolo tra i due vettori
![Page 6: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/6.jpg)
6
Trasformazioni affini
• Rappresentate tramite matrici• Più trasformazioni possono essere combinate moltiplicando le rispettive matrici tra loro, creando una sola trasformazione
• Una trasformazione si ottiene in generale combinando trasformazioni lineari (rotazioni, scala e shear) seguite da una traslazione
![Page 7: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/7.jpg)
7
Trasformazioni affini• La trasformazione affine conserva le rette, sia A una generica trasformazione, scriviamo in funzione del parametro t un segmento tra i punti p0 , p1
• Siccome descriviamo poliedri mediante i vertici, le facce e gli spigoli, questa proprietà ci garantisce che possiamo trasformare soltanto i vertici: la relazione lineare tra punti e la topologia della struttura non cambiano.
p(t) =tp0 +(1−t)p1
Ap(t) =tAp0 +(1−t)Ap1
![Page 8: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/8.jpg)
8
Definizione degli oggetti
• Gli oggetti possono essere definiti in un proprio sistema di riferimento locale:
• i vertici dell’oggetto sono definiti rispetto a un orientamento proprio e naturale
• un oggetto complesso può essere decomposto in elementi più semplici col proprio riferimento locale e in seguito assemblato aggregando oggetti elementari
• un oggetto può essere istanziato più volte
• Per assemblare una scena e istanziare più oggetti si applicano le trasformazioni affini, che cambiano il riferimento locale
![Page 9: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/9.jpg)
9
Tipi di oggetti base
• Punti– E’ definita l’operazioni di differenza tra punti: produce un vettore
• Vettori, corrispondono all’entità linea– Sono definite le operazioni sopra ricordate
• Sono definite le operazioni tra punti e vettori sopra ricordate
![Page 10: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/10.jpg)
10
Tipi di oggetti base - 2
• Piani: estensione della rappresentazione parametrica della retta; t,w sono parametri, P, Q ed R sono tre punti, con i quali possiamo identificare un piano; la retta tra P,Q si può scrivere:
S(t)=tP+(1-t)Q • la retta tra S e R si può ora scrivere:
V(w)=wS+(1-w)R• Combinando le due equazioni:
V(t,w)=w(tP+(1-t)Q)+(1-w)R
![Page 11: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/11.jpg)
11
Tipi di oggetti base - 3
• Questa può essere considerata come equazione del piano per i tre punti P,Q,R:
V(t,w)=P+w(1-t)(Q-P)+(1-w)(R-P)• Q-P ed R-P sono due vettori u v, da cui
V(t,w)=P+tu+wv• Il piano può anche essere definito da un punto e
due vettori non paralleli.• Se 0≤t≤1 e 0≤w≤1 tutti i punti di V(t,w) sono
interni al triangolo PQR• Il vettore ortogonale a u e v è n=uxv quindi
l’equazione del piano può anche essere scritta come:
n.(P-Q)=0
![Page 12: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/12.jpg)
12
Sistemi di coordinate e sistemi di riferimento
(frame)• Quanto detto fin’ora è indipendente da uno specifico sistema di coordinate
• La definizione di una base di vettori linearmente indipendenti e unitari permette di identificare un sistema di coordinate
• Se definiamo i tre versori con una medesima origine identifichiamo un sistema di riferimento (frame)
![Page 13: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/13.jpg)
13
Un frame standard• Lo spazio può essere orientato in due modi:
– mano sinistra: avvolgete la mano all’asse x e puntate il pollice verso x a sinistra, z (medio) viene verso di voi e y (indice) va verso l’alto
– mano destra: avvolgete la mano all’asse x e puntate il pollice verso x a destra, z (medio) viene verso di voi e y (indice) va verso l’alto
• In OGL sono definiti molti frames:– Object o model frame– World frame– Eye (camera) frame– Clip coordinates– Normalized device coordinates– Window (screen) coordinates
• Il passaggio da un frame all’altro avviene tramite trasformazioni
![Page 14: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/14.jpg)
14
Cambiamento di riferimento
• Un cambiamento del sistema di riferimento consiste nel cambiare la base di vettori ortonormali
• La nuova base può essere espressa come combinazione lineare della vecchia base:– Vecchia base: v1v2v3
– Nuova base: u1u2u3
u1=a11v1+a12v2+a13v3
u2=a21v1+a22v2+a23v3
u3=a31v1+a32v2+a33v3
• aij sono i coefficienti delle combinazioni lineari per esprimere la nuova base in funzione della vecchia
• Le equazioni non sono altro che il risultato del prodotto della matrice dei coefficienti per la vecchia base
![Page 15: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/15.jpg)
15
Cambiamenti di riferimento
• Questi cambiamenti di riferimento lasciano invariata l’origine: se vogliamo traslare l’origine, non possiamo rappresentare il cambiamento con una matrice di 3x3 elementi.
• I cambiamenti di base possibili in questo modo sono quindi solo: rotazioni o scala (o shear)!
![Page 16: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/16.jpg)
16
Classi di trasformazioni
![Page 17: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/17.jpg)
17
Trasformare gli oggetti• Le trasformazioni agiscono trasformando i vertici dell’oggetto nel sistema di riferimento originale, o come cambiamento di sistema di riferimento
• Denotiamo i vertici (punti) come vettori colonna v
• R, T e S rappresentano gli operatori di rotazione, traslazione e scala
• Il punto trasformato è quindi:v’ = v + T traslazionev’ = S v scalav’ = R v rotazione
![Page 18: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/18.jpg)
18
Coordinate omogenee
Spazio di classi di equivalenza: ogni punto in coordinatecartesiane 3D corrisponde a infiniti punti nello spazio omogeneo 4D che differiscono solo per un fattore moltiplicativo w:
€
V (x,y,z) corrisponde a :
V (X = wx,Y = wy,Z = wz,w)
Il passaggio dallo spazio omogeneo allo spazio 3D:
€
x = X /w
y = Y /w
z = Z /w
solitamente si sceglie w=1
![Page 19: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/19.jpg)
19
Coordinate omogenee• In alto: il generico
punto (x,y,z) in coordinate omogenee corrisponde a un unico punto sul piano z=1
• In basso: l’operazione di somma in coordinate omogenee dei vettori u,v genera il vettore con estremo in R, che corrisponde anche alla somma in coordinate omogenee dei punti P, Q.
![Page 20: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/20.jpg)
20
Coordinate omogenee
• Utilizzando le coordinate omogenee le trasformazioni necessarie alla modellazione possono essere espresse come matrici 4x4, e l’applicazione di una trasformazione a un punto si riduce a un prodotto vettore-matrice
• In particolare la traslazione viene espressa come1 0 0
0 1 0'
0 0 1
0 0 0 1 1
x
y
z
T x
T yv Tv
T z
⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟= = ⋅⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠
![Page 21: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/21.jpg)
21
Traslazione
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
==
1000
100
010
001
),,()(z
y
x
zyx t
t
t
tttTtT
)1,,,()(' zzyyxx tptptp +++=⋅= ptTp
)()(1 tTtT −=−
![Page 22: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/22.jpg)
22
Rotazione
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛−
=
1000
0cossin0
0sincos0
0001
)(φφ
φφφxR
€
Ry (φ) =
cosφ 0 −sinφ 0
0 1 0 0
sinφ 0 cosφ 0
0 0 0 1
⎛
⎝
⎜ ⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟ ⎟
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛ −
=
1000
0100
00cossin
00sincos
)(φφ
φφ
φzRTRR =−1
)()(1 φφ −=−ii RR
![Page 23: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/23.jpg)
23
Rotazione
rotazione attornoall’origine
rotazione attorno alcentro dell’oggetto:prima traslarepoi ruotarepoi contro-traslare
![Page 24: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/24.jpg)
24
Scala
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
==
1000
000
000
000
),,()(z
y
x
zyx s
s
s
sssSsS
)/1,/1,/1()(1zyx sssSsS =−
![Page 25: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/25.jpg)
25
Trasformazioni inverse
• Denotiamo le inverse come: T-1, S-1, R-1
• La traslazione inversa si ottiene negando i coefficienti di traslazione
• La scala inversa si ottiene prendendo il reciproco dei coefficienti
• La rotazione inversa si ottiene negando l’angolo di rotazione.
• Le trasformazioni sono invertibili salvo la scala 0!
• Nota se M è una matrice ortogonale M-1=MT
![Page 26: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/26.jpg)
26
Trasformazione generica rigida (niente scala!)
• Una trasformazione rigida generica può essere espressa come la concatenazione di una traslazione e una rotazione
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
==
1000
)(222120
121110
020100
z
y
x
trrr
trrr
trrr
RtTX
)()())(( 1111 tTRtTRRtTX −=== −−−− T
![Page 27: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/27.jpg)
27
Trasformazione delle normali
• La matrice M associata ad un oggetto può essere utilizzata per trasformare punti, linee e poligoni o generici vettori associati a punti di un piano.
• Però per la trasformazione delle normali deve essere utilizzata la matrice (M-1)T
• Per capire la ragione notiamo che se n è la normale a un piano e v è un vettore sul piano allora nTv=0, ma questa equazione si può scrivere considerando la matrice di trasformazione M: nTM-
1Mv=0;• Ovvero: nTM-1 è la trasposta del vettore normale
trasformato• Quindi la normale trasformata è la sua anti-
trasposta: (M-1)Tn
![Page 28: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/28.jpg)
28
Composizione di trasformazioni
• Si possono applicare trasformazioni in successione, moltiplicando in ordine opportuno le matrici (associatività)
v”=M2M1v = M2(M1v) =M2v’
– la trasf. M1 viene applicata per prima!
• ricordiamo che il prodotto di rotazioni non è commutativo: R2R1 ≠
R1R2
![Page 29: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/29.jpg)
29
Composizione di trasformazioni
• Possiamo applicare a ogni punto separatamente le matrici:(se ho 1000 punti devo applicare le matrici singolarmente per ognuno)
• Oppure calcolare prima la matrice M:
A B Cp q
M qp
C(B(A))
![Page 30: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/30.jpg)
30
Le trasformazioni per modellare
• Da oggetti prototipo a loro “istanze”
• Tre trasformazioni nell’ordine:– Scala– Rotazione– Traslazione
• Minst=T(R(S))
![Page 31: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/31.jpg)
31
Rotazioni:Metodo di Eulero
-z
y
x
Yaw - imbardata
Pitch - beccheggio
Roll - rollio
![Page 32: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/32.jpg)
32
Metodo di Eulero
• Il metodo di Eulero costruisce le trasformazioni come moltiplicazione di matrici di rotazione intorno ai tre assi
• L’inversa della trasformazione può essere calcolata come
• Purtoppo la rotazione non è commutativa: R1R2≠R2R1
( , , ) ( ) ( ) ( )z x yh p r r p h=E R R R
1 ( )T T T T Tz x y y x z
− = = =E E R R R R R R
![Page 33: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/33.jpg)
33
Rotazione di Eulero
• Sviluppiamo la concatenazione delle tre trasformazioni (scriviamo le matrici 3x3 per semplicità)
( , , ) ( ) ( ) ( )z x yh p r r p h=E R R R
€
cosrcosh − sin rsin psinh −sin rcos p cosrsin h + sin rsin pcosh
sin rcosh + corssin psin h cosrcos p sinrsin h − corsin pcosh
−cos psinh sin p cos pcosh
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟
![Page 34: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/34.jpg)
34
Rotazione attorno a un punto e parallela a un
asse• Traslare l’oggetto nell’origine, i coefficienti della traslazione T sono riferiti al punto p
• Ruotare attorno all’origine di un angolo
• Traslare inversamente nel punto pM=T-1RT
![Page 35: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/35.jpg)
35
Rotazione intorno ad un asse generico
• Un altro modo per risolvere il problema è di considerare la rototraslazione nell’origine come un cambiamento di sistema di riferimento, cioè di base ortonormale, eseguendo quindi la rotazione attrono al nuovo asse, ad esempio x.
x
z
y
r
t
s
x
z
y
r
t
s
x
z
y
r
t
s
![Page 36: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/36.jpg)
36
Cambiamento di base
• Sia r l’asse di rotazione desiderato, troviamo due nuovi versori ortogonali ad r che definiscono un nuovo riferimento.
• Per trovare il primo vettore ortogonale a r moltiplico r per uno dei versori del frame originale ex|y|z : ci sono due casi possibili: il nuovo vettore è parallelo a r oppure è ortogonale sia ad r sia ad ex|y|z ad es:
• r x ex = r x (1,0,0)T=(0,rz,-ry)=v
![Page 37: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/37.jpg)
37
Cambiamento di riferimento
• Moltiplicando scalarmente il nuovo vettore trovato v.v, se è nullo r e ex sono paralleli, si cerca un altro vettore ortogonale a r ey|z
• Il vettore trovato sia s• Il terzo vettore ortogonale a r ed s si determina con il prodotto vettore tra i due
![Page 38: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/38.jpg)
38
Rotazione intorno ad un asse generico
srt
sss
s
×=
=
⎪⎩
⎪⎨
⎧
<<−
<<−
<<−
=
/
e se)0,,(
e se),0,(
e se),,0(
yzxzxy
zyxyxz
zxyxyz
rrrrrr
rrrrrr
rrrrrr
MRMX
t
s
r
M
)(φxT
T
T
T
=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
=
• Il test per valutare il parallelismo tra r ed ex|y|z può essere semplificato come qui indicato
• Si noti che essendo M ortogonale, la sua inversa è MT
![Page 39: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/39.jpg)
39
Gimbal Lock(blocco del giroscopio)
• Gimbal lock avviene quando le rotazioni sono concatenate in modo tale che un grado di libertà viene perso, ad es quando due assi di rotazione del giroscopio vengono a coincidere.
• Esempio:– rotazione di 90° intorno all’asse z
– volendo ruotare ora intorno a x, a causa della rotazione precedente, otterremo una rotazione intorno a y
![Page 40: Le trasformazioni Daniele Marini. 2 Concetti Spazio affine Coordinate omogenee Matrici Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna](https://reader036.vdocuments.net/reader036/viewer/2022062303/5542eb67497959361e8d3272/html5/thumbnails/40.jpg)
40
Gimbal Lock
• Se eseguiamo una rotazione di 90° attorno a y otteniamo:
• Abbiamo perso un grado di libertà!
cos cos sin sin 0 cos sin sin cos
( , / 2, ) sin cos cos sin 0 sin sin cos cos
0 1 0
cos( ) 0 sin( )
sin( ) 0 cos( )
0 1 0
r h r h r h r h
E h r r h r h r h r h
r h r h
r h r h
π− +⎛ ⎞
⎜ ⎟= + −⎜ ⎟⎜ ⎟⎝ ⎠
+ +⎛ ⎞⎜ ⎟= + − +⎜ ⎟⎜ ⎟⎝ ⎠