Trasformazione di Coordinate

Alessandro Martinelli
2 ottobre 2006
Alessandro Martinelli Trasformazione di Coordinate
Trasformazioni di Coordinate nel piano
Trasformazione Generica
La generica trasformazione nel piano può essere espressa
dall’equazione
_
X
Y
_
=
_
a b
c d
__
x
y
_
+
_
e
f
_
(1)

(x, y): coordinate originarie del punto

(X, Y): coordinate trasformate del punto

L’effetto della trasformazione dipende dai valori dei parametri

Possono essere Traslazioni, Rotazioni, Scaling, Riflessioni,
Shearing.
Alessandro Martinelli Trasformazione di Coordinate
Trasformazioni di Coordinate nel piano
Trasformazione Generica
La generica trasformazione nel piano può essere espressa
dall’equazione
_
X
Y
_
=
_
a b
c d
__
x
y
_
+
_
e
f
_
(1)

(x, y): coordinate originarie del punto

(X, Y): coordinate trasformate del punto

L’effetto della trasformazione dipende dai valori dei parametri

Possono essere Traslazioni, Rotazioni, Scaling, Riflessioni,
Shearing.
Alessandro Martinelli Trasformazione di Coordinate
Trasformazioni di Coordinate nel piano
Trasformazione Generica
La generica trasformazione nel piano può essere espressa
dall’equazione
_
X
Y
_
=
_
a b
c d
__
x
y
_
+
_
e
f
_
(1)

(x, y): coordinate originarie del punto

(X, Y): coordinate trasformate del punto

L’effetto della trasformazione dipende dai valori dei parametri

Possono essere Traslazioni, Rotazioni, Scaling, Riflessioni,
Shearing.
Alessandro Martinelli Trasformazione di Coordinate
Trasformazioni di Coordinate nel piano
Trasformazione Generica
La generica trasformazione nel piano può essere espressa
dall’equazione
_
X
Y
_
=
_
a b
c d
__
x
y
_
+
_
e
f
_
(1)

(x, y): coordinate originarie del punto

(X, Y): coordinate trasformate del punto

L’effetto della trasformazione dipende dai valori dei parametri

Possono essere Traslazioni, Rotazioni, Scaling, Riflessioni,
Shearing.
Alessandro Martinelli Trasformazione di Coordinate
Traslazione nel piano
_
X
Y
_
=
_
1 0
0 1
__
x
y
_
+
_
e
f
_
(2)
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno all’origine
Consideriamo la circonferenza di raggio unitario intorno all’origine
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno all’origine
Consideriamo la circonferenza di raggio unitario intorno all’origine
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno all’origine
_
X
Y
_
=
_
cosa − sena
sena cosa
__
x
y
_
+
_
0
0
_
(3)
Alessandro Martinelli Trasformazione di Coordinate
Scaling rispetto all’origine
_
X
Y
_
=
_
a 0
0 d
__
x
y
_
+
_
0
0
_
(4)
Alessandro Martinelli Trasformazione di Coordinate
Scaling rispetto all’origine
_
X
Y
_
=
_
a 0
0 d
__
x
y
_
+
_
0
0
_
(4)
Alessandro Martinelli Trasformazione di Coordinate
Scaling rispetto all’origine
_
X
Y
_
=
_
a 0
0 d
__
x
y
_
+
_
0
0
_
(4)
Alessandro Martinelli Trasformazione di Coordinate
Riflessione
Riflessione intorno all’asse x e y
_
X
Y
_
=
_
1 0
0 −1
__
x
y
_
+
_
0
0
_
(5)
_
X
Y
_
=
_
−1 0
0 1
__
x
y
_
+
_
0
0
_
(6)
Sono due casi dell’operaione di scaling.
Alessandro Martinelli Trasformazione di Coordinate
Riflessione
Riflessione intorno all’asse x e y
_
X
Y
_
=
_
1 0
0 −1
__
x
y
_
+
_
0
0
_
(5)
_
X
Y
_
=
_
−1 0
0 1
__
x
y
_
+
_
0
0
_
(6)
Sono due casi dell’operaione di scaling.
Alessandro Martinelli Trasformazione di Coordinate
Riflessione
Riflessione intorno all’asse x e y
_
X
Y
_
=
_
1 0
0 −1
__
x
y
_
+
_
0
0
_
(5)
_
X
Y
_
=
_
−1 0
0 1
__
x
y
_
+
_
0
0
_
(6)
Sono due casi dell’operaione di scaling.
Alessandro Martinelli Trasformazione di Coordinate
Shearing
_
X
Y
_
=
_
1 a
0 1
__
x
y
_
+
_
0
0
_
(7)
_
X
Y
_
=
_
1 0
a 1
__
x
y
_
+
_
0
0
_
(8)
Provoca una influenza lineare di una coordinata rispetto ad un’altra
Alessandro Martinelli Trasformazione di Coordinate
Shearing
_
X
Y
_
=
_
1 a
0 1
__
x
y
_
+
_
0
0
_
(7)
_
X
Y
_
=
_
1 0
a 1
__
x
y
_
+
_
0
0
_
(8)
Provoca una influenza lineare di una coordinata rispetto ad un’altra
Alessandro Martinelli Trasformazione di Coordinate
Combinazione
E’ possibile ottenere trasformazioni più complesse come
combinazione delle principali trasformazioni. La trasformazione
risultante può essere calcolata con il comune calcolo
vettoriale/matriciale. Ad esempio l’applicazione di due
trasformazione T e T’ porta:
_
X
Y
_
=
_
a

b

c

d

_
(
_
a b
c d
__
x
y
_
+
_
e
f
_
) +
_
e

f

_
(9)
_
X
Y
_
=
_
a

b

c

d

__
a b
c d
__
x
y
_
+
_
a

b

c

d

__
e
f
_
+
_
e

f

_
(10)
Attenzione! La combinazione di trasformazioni non è
commutativa.
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno ad un punto P di un angolo α
Si eseguono in ordine

Traslazione di −P

Rotazione di un angolo α

Traslazione di P
_
X
Y
_
=
_
cosα − senα
senα cosα
_
(
_
x
y
_

_
x
P
y
P
_
) +
_
x
P
y
P
_
(11)
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno ad un punto P di un angolo α
Si eseguono in ordine

Traslazione di −P

Rotazione di un angolo α

Traslazione di P
_
X
Y
_
=
_
cosα − senα
senα cosα
_
(
_
x
y
_

_
x
P
y
P
_
) +
_
x
P
y
P
_
(11)
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno ad un punto P di un angolo α
Si eseguono in ordine

Traslazione di −P

Rotazione di un angolo α

Traslazione di P
_
X
Y
_
=
_
cosα − senα
senα cosα
_
(
_
x
y
_

_
x
P
y
P
_
) +
_
x
P
y
P
_
(11)
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno ad un punto P di un angolo α
Si eseguono in ordine

Traslazione di −P

Rotazione di un angolo α

Traslazione di P
_
X
Y
_
=
_
cosα − senα
senα cosα
_
(
_
x
y
_

_
x
P
y
P
_
) +
_
x
P
y
P
_
(11)
Alessandro Martinelli Trasformazione di Coordinate
Riflessione intorno ad un asse generico(1/2)
Dato l’asse r : Ax + By + C = 0
1. Scelto P ∈ r , Traslo di -P.
( P diventa l’origine)
2. Rotazione con α in modo
tale che r vada ad
adagiarsi su Y=0.
3. Riflessione intorno a Y=0.
4. Rotazione di −α.
5. Traslazione di -P.
Alessandro Martinelli Trasformazione di Coordinate
Riflessione intorno ad un asse generico(1/2)
Dato l’asse r : Ax + By + C = 0
1. Scelto P ∈ r , Traslo di -P.
( P diventa l’origine)
2. Rotazione con α in modo
tale che r vada ad
adagiarsi su Y=0.
3. Riflessione intorno a Y=0.
4. Rotazione di −α.
5. Traslazione di -P.
Alessandro Martinelli Trasformazione di Coordinate
Riflessione intorno ad un asse generico(1/2)
Dato l’asse r : Ax + By + C = 0
1. Scelto P ∈ r , Traslo di -P.
( P diventa l’origine)
2. Rotazione con α in modo
tale che r vada ad
adagiarsi su Y=0.
3. Riflessione intorno a Y=0.
4. Rotazione di −α.
5. Traslazione di -P.
Alessandro Martinelli Trasformazione di Coordinate
Riflessione intorno ad un asse generico(1/2)
Dato l’asse r : Ax + By + C = 0
1. Scelto P ∈ r , Traslo di -P.
( P diventa l’origine)
2. Rotazione con α in modo
tale che r vada ad
adagiarsi su Y=0.
3. Riflessione intorno a Y=0.
4. Rotazione di −α.
5. Traslazione di -P.
Alessandro Martinelli Trasformazione di Coordinate
Riflessione intorno ad un asse generico(1/2)
Dato l’asse r : Ax + By + C = 0
1. Scelto P ∈ r , Traslo di -P.
( P diventa l’origine)
2. Rotazione con α in modo
tale che r vada ad
adagiarsi su Y=0.
3. Riflessione intorno a Y=0.
4. Rotazione di −α.
5. Traslazione di -P.
Alessandro Martinelli Trasformazione di Coordinate
Trasformazioni di Coordinate nello spazio
Trasformazione Generica
La generica trasformazione nello spazio può essere espressa
dall’equazione
_
_
X
Y
Z
_
_
=
_
_
a b c
d e f
g h i
_
_
_
_
x
y
z
_
_
+
_
_
l
m
n
_
_
(12)

(x, y, z): coordinate originarie del punto

(X, Y, Z): coordinate trasformate del punto

L’effetto della trasformazione dipende dai valori dei parametri

Le trasformazioni standard sono analoghe a quello del caso del
piano, ma più complesse
Alessandro Martinelli Trasformazione di Coordinate
Trasformazioni di Coordinate nello spazio
Trasformazione Generica
La generica trasformazione nello spazio può essere espressa
dall’equazione
_
_
X
Y
Z
_
_
=
_
_
a b c
d e f
g h i
_
_
_
_
x
y
z
_
_
+
_
_
l
m
n
_
_
(12)

(x, y, z): coordinate originarie del punto

(X, Y, Z): coordinate trasformate del punto

L’effetto della trasformazione dipende dai valori dei parametri

Le trasformazioni standard sono analoghe a quello del caso del
piano, ma più complesse
Alessandro Martinelli Trasformazione di Coordinate
Trasformazioni di Coordinate nello spazio
Trasformazione Generica
La generica trasformazione nello spazio può essere espressa
dall’equazione
_
_
X
Y
Z
_
_
=
_
_
a b c
d e f
g h i
_
_
_
_
x
y
z
_
_
+
_
_
l
m
n
_
_
(12)

(x, y, z): coordinate originarie del punto

(X, Y, Z): coordinate trasformate del punto

L’effetto della trasformazione dipende dai valori dei parametri

Le trasformazioni standard sono analoghe a quello del caso del
piano, ma più complesse
Alessandro Martinelli Trasformazione di Coordinate
Trasformazioni di Coordinate nello spazio
Trasformazione Generica
La generica trasformazione nello spazio può essere espressa
dall’equazione
_
_
X
Y
Z
_
_
=
_
_
a b c
d e f
g h i
_
_
_
_
x
y
z
_
_
+
_
_
l
m
n
_
_
(12)

(x, y, z): coordinate originarie del punto

(X, Y, Z): coordinate trasformate del punto

L’effetto della trasformazione dipende dai valori dei parametri

Le trasformazioni standard sono analoghe a quello del caso del
piano, ma più complesse
Alessandro Martinelli Trasformazione di Coordinate
Traslazione e Scaling nello Spazio
Traslazione
_
_
X
Y
Z
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
y
z
_
_
+
_
_
l
m
n
_
_
(13)
Scaling
_
_
X
Y
Z
_
_
=
_
_
a 0 0
0 e 0
0 0 i
_
_
_
_
x
y
z
_
_
+
_
_
0
0
0
_
_
(14)
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno agli assi principali(1/2)
Attorno all’asse Z
_
_
X
Y
Z
_
_
=
_
_
cosα −senα 0
senα cosα 0
0 0 1
_
_
_
_
x
y
z
_
_
+
_
_
0
0
n0
_
_
(15)
Attorno all’asse X
_
_
X
Y
Z
_
_
=
_
_
1 0 0
0 cosα −senα
0 senα cosα
_
_
_
_
x
y
z
_
_
+
_
_
0
0
n0
_
_
(16)
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno agli assi principali(2/2)
Attorno all’asse Y
_
_
X
Y
Z
_
_
=
_
_
cosα 0 −senα
0 1 0
senα 0 cosα
_
_
_
_
x
y
z
_
_
+
_
_
0
0
n0
_
_
(17)
Alessandro Martinelli Trasformazione di Coordinate
Shearing
Molto casi.Alcuni esempi:
shearing di x su y
_
_
X
Y
Z
_
_
=
_
_
1 γ 0
0 1 0
0 0 1
_
_
_
_
x
y
z
_
_
+
_
_
0
0
0
_
_
(18)
shearing di y su z
_
_
X
Y
Z
_
_
=
_
_
1 0 0
0 1 0
0 β 1
_
_
_
_
x
y
z
_
_
+
_
_
0
0
0
_
_
(19)
Alessandro Martinelli Trasformazione di Coordinate
Trasformazione di Eulero (1/2)
Combinazione di 3 Rotazioni intorno ai 3 assi principali
_
_
X
Y
Z
_
_
=
_
_
cosα
z
−senα
z
0
senα
z
cosα
z
0
0 0 1
_
_
_
_
cosα
y
0 −senα
y
0 1 0
senα
y
0 cosα
y
_
_
_
_
1 0 0
0 cosα
x
−senα
x
0 senα
x
cosα
x
_
_
_
_
x
y
z
_
_
(20)
1. Consentono di ottenere qualsiasi inclinazione
2. Solitamente alle variabili (α
x
, α
y
, α
z
) si associano i nomi più
intuitivi (Roll,Pitch,Yaw) ( cioè rotazione, inclinazione,
deviazione);
Alessandro Martinelli Trasformazione di Coordinate
Trasformazione di Eulero (1/2)
Combinazione di 3 Rotazioni intorno ai 3 assi principali
_
_
X
Y
Z
_
_
=
_
_
cosα
z
−senα
z
0
senα
z
cosα
z
0
0 0 1
_
_
_
_
cosα
y
0 −senα
y
0 1 0
senα
y
0 cosα
y
_
_
_
_
1 0 0
0 cosα
x
−senα
x
0 senα
x
cosα
x
_
_
_
_
x
y
z
_
_
(20)
1. Consentono di ottenere qualsiasi inclinazione
2. Solitamente alle variabili (α
x
, α
y
, α
z
) si associano i nomi più
intuitivi (Roll,Pitch,Yaw) ( cioè rotazione, inclinazione,
deviazione);
Alessandro Martinelli Trasformazione di Coordinate
Trasformazione di Eulero (2/2)
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno ad un asse generico
La rotazione avviene in modo
analogo alla rotazione intorno
ad un punto nel caso 2D.
E’ necessario definire un
sistema di riferimento a partire
dall’asse di rotazione.
Alessandro Martinelli Trasformazione di Coordinate
Rotazione intorno ad un asse generico
La rotazione avviene in modo
analogo alla rotazione intorno
ad un punto nel caso 2D.
E’ necessario definire un
sistema di riferimento a partire
dall’asse di rotazione.
Alessandro Martinelli Trasformazione di Coordinate
Coordinate Omogenee (1/2)
La trasformazione nello spazio 3D generica:
_
_
X
Y
Z
_
_
=
_
_
a b c
d e f
g h i
_
_
_
_
x
y
z
_
_
+
_
_
l
m
n
_
_
(21)
Può essere riscritta nella seguente forma matriciale
_
¸
¸
_
X
Y
Z
1
_
¸
¸
_
=
_
¸
¸
_
a b c l
d e f m
g h i l
0 0 0 1
_
¸
¸
_
_
¸
¸
_
x
y
z
1
_
¸
¸
_
(22)
Alessandro Martinelli Trasformazione di Coordinate
Coordinate Omogenee (1/2)
La trasformazione nello spazio 3D generica:
_
_
X
Y
Z
_
_
=
_
_
a b c
d e f
g h i
_
_
_
_
x
y
z
_
_
+
_
_
l
m
n
_
_
(21)
Può essere riscritta nella seguente forma matriciale
_
¸
¸
_
X
Y
Z
1
_
¸
¸
_
=
_
¸
¸
_
a b c l
d e f m
g h i l
0 0 0 1
_
¸
¸
_
_
¸
¸
_
x
y
z
1
_
¸
¸
_
(22)
Alessandro Martinelli Trasformazione di Coordinate
Coordinate Omogenee (2/2)
In generale definiremo un insieme più vasto di trasformazioni
_
¸
¸
_
X
Y
Z
W
_
¸
¸
_
=
_
¸
¸
_
a b c l
d e f m
g h i l
w
x
w
y
w
z
w
w
_
¸
¸
_
_
¸
¸
_
x
y
z
w
_
¸
¸
_
(23)
dove w è detta coordinata Omogenea.
1. Le coordinate omogenee consentono di gestire trasformazioni
più compesse
2. Un punto (x, y, z, w) nello spazio omogeneo è corrispondente
al punto (
x
w
,
y
w
,
z
w
)
3. Infiniti punti di [X Y Z W] mappano sullo stesso punto di [X Y
Z]
4. I punti [X Y Z 0] rappresentano punti all’infinito in [X Y Z]
Alessandro Martinelli Trasformazione di Coordinate
Coordinate Omogenee (2/2)
In generale definiremo un insieme più vasto di trasformazioni
_
¸
¸
_
X
Y
Z
W
_
¸
¸
_
=
_
¸
¸
_
a b c l
d e f m
g h i l
w
x
w
y
w
z
w
w
_
¸
¸
_
_
¸
¸
_
x
y
z
w
_
¸
¸
_
(23)
dove w è detta coordinata Omogenea.
1. Le coordinate omogenee consentono di gestire trasformazioni
più compesse
2. Un punto (x, y, z, w) nello spazio omogeneo è corrispondente
al punto (
x
w
,
y
w
,
z
w
)
3. Infiniti punti di [X Y Z W] mappano sullo stesso punto di [X Y
Z]
4. I punti [X Y Z 0] rappresentano punti all’infinito in [X Y Z]
Alessandro Martinelli Trasformazione di Coordinate
Coordinate Omogenee (2/2)
In generale definiremo un insieme più vasto di trasformazioni
_
¸
¸
_
X
Y
Z
W
_
¸
¸
_
=
_
¸
¸
_
a b c l
d e f m
g h i l
w
x
w
y
w
z
w
w
_
¸
¸
_
_
¸
¸
_
x
y
z
w
_
¸
¸
_
(23)
dove w è detta coordinata Omogenea.
1. Le coordinate omogenee consentono di gestire trasformazioni
più compesse
2. Un punto (x, y, z, w) nello spazio omogeneo è corrispondente
al punto (
x
w
,
y
w
,
z
w
)
3. Infiniti punti di [X Y Z W] mappano sullo stesso punto di [X Y
Z]
4. I punti [X Y Z 0] rappresentano punti all’infinito in [X Y Z]
Alessandro Martinelli Trasformazione di Coordinate
Coordinate Omogenee (2/2)
In generale definiremo un insieme più vasto di trasformazioni
_
¸
¸
_
X
Y
Z
W
_
¸
¸
_
=
_
¸
¸
_
a b c l
d e f m
g h i l
w
x
w
y
w
z
w
w
_
¸
¸
_
_
¸
¸
_
x
y
z
w
_
¸
¸
_
(23)
dove w è detta coordinata Omogenea.
1. Le coordinate omogenee consentono di gestire trasformazioni
più compesse
2. Un punto (x, y, z, w) nello spazio omogeneo è corrispondente
al punto (
x
w
,
y
w
,
z
w
)
3. Infiniti punti di [X Y Z W] mappano sullo stesso punto di [X Y
Z]
4. I punti [X Y Z 0] rappresentano punti all’infinito in [X Y Z]
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni
Una proiezione è una trasformazione che proietta punti da uno
spazio 3D su di un piano.
Le proiezioni parallele sono
costruite dato un piano π e
dato un vettore direzione V: la
trasformazione converte ogni
punto P nell’intersezione P’ di
π con la retta passante per P e
avente direzione V
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni
Una proiezione è una trasformazione che proietta punti da uno
spazio 3D su di un piano.
Le proiezioni parallele sono
costruite dato un piano π e
dato un vettore direzione V: la
trasformazione converte ogni
punto P nell’intersezione P’ di
π con la retta passante per P e
avente direzione V
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (1/5)
La generica proiezione
prospettica: dato un punto F
(il fuoco) e un piano π la
trasformazione prospettica
trova l’intersezione tra π e il
segmento che congiunge F e
un qualsiasi punto P.
Il Fuoco F non deve stare sul
piano.
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (2/5)
Un esempio semplice: Θ = {F, π} = {(0, 0, 0), z = d}
La retta che congiunge il fuoco al punto P(x
p
, y
p
, z
p
) è:
x
x
p
=
y
y
p
=
z
z
p
_
x
x
p
=
z
z
p
y
y
p
=
z
z
p
(24)
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (2/5)
Un esempio semplice: Θ = {F, π} = {(0, 0, 0), z = d}
La retta che congiunge il fuoco al punto P(x
p
, y
p
, z
p
) è:
x
x
p
=
y
y
p
=
z
z
p
_
x
x
p
=
z
z
p
y
y
p
=
z
z
p
(24)
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (3/5)
L’intersezione della retta col piano è
_
¸
_
¸
_
x
x
p
=
z
z
p
y
y
p
=
z
z
p
z = d
(25)
_
¸
_
¸
_
x =
dx
p
z
p
y =
dy
p
z
p
z = d
(26)
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (3/5)
L’intersezione della retta col piano è
_
¸
_
¸
_
x
x
p
=
z
z
p
y
y
p
=
z
z
p
z = d
(25)
_
¸
_
¸
_
x =
dx
p
z
p
y =
dy
p
z
p
z = d
(26)
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (3/5)
L’intersezione della retta col piano è
_
¸
_
¸
_
x
x
p
=
z
z
p
y
y
p
=
z
z
p
z = d
(25)
_
¸
_
¸
_
x =
dx
p
z
p
y =
dy
p
z
p
z = d
(26)
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (4/5)
La trasformazione prospettica può essere definita con una
trasformazione omogenea.
_
¸
¸
_
X
Y
Z
W
_
¸
¸
_
=
_
¸
¸
_
1 0 0 0
0 1 0 0
0 0 d 0
0 0 1 0
_
¸
¸
_
_
¸
¸
_
x
y
z
w
_
¸
¸
_
(27)
Il punto in coordinate omogenee è ( dx , dy , dz , z ) associato al
punto 3D (dx/z,dy/z,d);
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (5/5)
Molto spesso il punto F non è l’origine e il piano non è z=d.
E’ possibile risolvere questo problema aggiungendo una opportuna
trasformazione di coordinate
_
¸
¸
_
X
Y
Z
W
_
¸
¸
_
=
_
¸
¸
_
1 0 0 0
0 1 0 0
0 0 d 0
0 0 1 0
_
¸
¸
_
_
¸
¸
_
r
1
r
2
r
3
p
x
r
4
r
5
r
6
p
y
r
7
r
8
r
9
p
z
0 0 0 1
_
¸
¸
_
_
¸
¸
_
x
y
z
w
_
¸
¸
_
(28)
Alessandro Martinelli Trasformazione di Coordinate
Proiezioni prospettiche (5/5)
Molto spesso il punto F non è l’origine e il piano non è z=d.
E’ possibile risolvere questo problema aggiungendo una opportuna
trasformazione di coordinate
_
¸
¸
_
X
Y
Z
W
_
¸
¸
_
=
_
¸
¸
_
1 0 0 0
0 1 0 0
0 0 d 0
0 0 1 0
_
¸
¸
_
_
¸
¸
_
r
1
r
2
r
3
p
x
r
4
r
5
r
6
p
y
r
7
r
8
r
9
p
z
0 0 0 1
_
¸
¸
_
_
¸
¸
_
x
y
z
w
_
¸
¸
_
(28)
Alessandro Martinelli Trasformazione di Coordinate
Viewing Frustum (1/3)
Tronco di piramide, data una proiezione prospettica e due valori
z
near
e z
far
La trasformazione prospettica deve mappare il viewing frustum sul
cubo di estremi (1,1,1) e (-1,-1,-1).
Alessandro Martinelli Trasformazione di Coordinate
Viewing Frustum (2/3)
Alessandro Martinelli Trasformazione di Coordinate
Viewing Frustum (3/3)
La trasformazione prospettica tenendo conto dei valori near e far
per la z risulta:
_
¸
¸
_
X
Y
Z
W
_
¸
¸
_
=
_
¸
¸
_
1 0 0 0
0 1 0 0
0 0
−(far +near )
far −near
−2 far near
far −near
0 0 1 0
_
¸
¸
_
_
¸
¸
_
r
1
r
2
r
3
p
x
r
4
r
5
r
6
p
y
r
7
r
8
r
9
p
z
0 0 0 1
_
¸
¸
_
_
¸
¸
_
x
y
z
w
_
¸
¸
_
(29)
Alessandro Martinelli Trasformazione di Coordinate

Trasformazioni di Coordinate nel piano
Trasformazione Generica

La generica trasformazione nel piano può essere espressa dall’equazione X Y = ab c d x y + e f (1)

(x, y ): coordinate originarie del punto

Alessandro Martinelli

Trasformazione di Coordinate

Trasformazioni di Coordinate nel piano
Trasformazione Generica

La generica trasformazione nel piano può essere espressa dall’equazione X Y = ab c d x y + e f (1)

(x, y ): coordinate originarie del punto (X , Y ): coordinate trasformate del punto

Alessandro Martinelli

Trasformazione di Coordinate

Trasformazioni di Coordinate nel piano Trasformazione Generica La generica trasformazione nel piano può essere espressa dall’equazione X Y = ab c d x y + e f (1) (x. Y ): coordinate trasformate del punto L’effetto della trasformazione dipende dai valori dei parametri Alessandro Martinelli Trasformazione di Coordinate . y ): coordinate originarie del punto (X .

Shearing. Riflessioni. Alessandro Martinelli Trasformazione di Coordinate . y ): coordinate originarie del punto (X .Trasformazioni di Coordinate nel piano Trasformazione Generica La generica trasformazione nel piano può essere espressa dall’equazione X Y = ab c d x y + e f (1) (x. Rotazioni. Y ): coordinate trasformate del punto L’effetto della trasformazione dipende dai valori dei parametri Possono essere Traslazioni. Scaling.

Traslazione nel piano X Y 10 01 x y e f = + (2) Alessandro Martinelli Trasformazione di Coordinate .

Rotazione intorno all’origine Consideriamo la circonferenza di raggio unitario intorno all’origine Alessandro Martinelli Trasformazione di Coordinate .

Rotazione intorno all’origine Consideriamo la circonferenza di raggio unitario intorno all’origine Alessandro Martinelli Trasformazione di Coordinate .

Rotazione intorno all’origine X Y cosa − sena sena cosa x y 0 0 = + (3) Alessandro Martinelli Trasformazione di Coordinate .

Scaling rispetto all’origine X Y = a0 0d x y + 0 0 (4) Alessandro Martinelli Trasformazione di Coordinate .

Scaling rispetto all’origine X Y = a0 0d x y + 0 0 (4) Alessandro Martinelli Trasformazione di Coordinate .

Scaling rispetto all’origine X Y = a0 0d x y + 0 0 (4) Alessandro Martinelli Trasformazione di Coordinate .

Alessandro Martinelli Trasformazione di Coordinate .Riflessione Riflessione intorno all’asse x e y X Y X Y = 1 0 0 −1 −1 0 0 1 x y x y + 0 0 0 0 (5) (6) = + Sono due casi dell’operaione di scaling.

Riflessione Riflessione intorno all’asse x e y X Y X Y = 1 0 0 −1 −1 0 0 1 x y x y + 0 0 0 0 (5) (6) = + Sono due casi dell’operaione di scaling. Alessandro Martinelli Trasformazione di Coordinate .

Riflessione Riflessione intorno all’asse x e y X Y X Y = 1 0 0 −1 −1 0 0 1 x y x y + 0 0 0 0 (5) (6) = + Sono due casi dell’operaione di scaling. Alessandro Martinelli Trasformazione di Coordinate .

Shearing X Y X Y = = 1a 01 10 a1 x y x y + + 0 0 0 0 (7) (8) Provoca una influenza lineare di una coordinata rispetto ad un’altra Alessandro Martinelli Trasformazione di Coordinate .

Shearing

X Y X Y

= =

1a 01 10 a1

x y x y

+ +

0 0 0 0

(7) (8)

Provoca una influenza lineare di una coordinata rispetto ad un’altra

Alessandro Martinelli

Trasformazione di Coordinate

Combinazione
E’ possibile ottenere trasformazioni più complesse come combinazione delle principali trasformazioni. La trasformazione risultante può essere calcolata con il comune calcolo vettoriale/matriciale. Ad esempio l’applicazione di due trasformazione T e T’ porta: X Y X Y = = a b c d a b c d ab c d ( ab c d x y + x y + a b c d e e )+ f f e f + e f (9) (10)

Attenzione! La combinazione di trasformazioni non è commutativa.

Alessandro Martinelli

Trasformazione di Coordinate

Rotazione intorno ad un punto P di un angolo α

Si eseguono in ordine Traslazione di −P

Alessandro Martinelli

Trasformazione di Coordinate

Rotazione intorno ad un punto P di un angolo α Si eseguono in ordine Traslazione di −P Rotazione di un angolo α Alessandro Martinelli Trasformazione di Coordinate .

Rotazione intorno ad un punto P di un angolo α Si eseguono in ordine Traslazione di −P Rotazione di un angolo α Traslazione di P Alessandro Martinelli Trasformazione di Coordinate .

Rotazione intorno ad un punto P di un angolo α Si eseguono in ordine Traslazione di −P Rotazione di un angolo α Traslazione di P X Y = cosα − senα x ( senα cosα y − xP xP )+ yP yP (11) Alessandro Martinelli Trasformazione di Coordinate .

Scelto P ∈ r .Riflessione intorno ad un asse generico(1/2) Dato l’asse r : Ax + By + C = 0 1. ( P diventa l’origine) Alessandro Martinelli Trasformazione di Coordinate . Traslo di -P.

Rotazione con α in modo tale che r vada ad adagiarsi su Y=0. ( P diventa l’origine) 2. Traslo di -P. Scelto P ∈ r .Riflessione intorno ad un asse generico(1/2) Dato l’asse r : Ax + By + C = 0 1. Alessandro Martinelli Trasformazione di Coordinate .

Rotazione con α in modo tale che r vada ad adagiarsi su Y=0. Alessandro Martinelli Trasformazione di Coordinate . Traslo di -P. 3. Scelto P ∈ r . ( P diventa l’origine) 2. Riflessione intorno a Y=0.Riflessione intorno ad un asse generico(1/2) Dato l’asse r : Ax + By + C = 0 1.

Riflessione intorno ad un asse generico(1/2) Dato l’asse r : Ax + By + C = 0 1. Rotazione di −α. ( P diventa l’origine) 2. Alessandro Martinelli Trasformazione di Coordinate . 4. Rotazione con α in modo tale che r vada ad adagiarsi su Y=0. Scelto P ∈ r . Riflessione intorno a Y=0. Traslo di -P. 3.

Traslazione di -P. Traslo di -P. Alessandro Martinelli Trasformazione di Coordinate . 4. 5. ( P diventa l’origine) 2. Rotazione di −α.Riflessione intorno ad un asse generico(1/2) Dato l’asse r : Ax + By + C = 0 1. Riflessione intorno a Y=0. Rotazione con α in modo tale che r vada ad adagiarsi su Y=0. Scelto P ∈ r . 3.

y . z): coordinate originarie del punto Alessandro Martinelli Trasformazione di Coordinate .Trasformazioni di Coordinate nello spazio Trasformazione Generica La generica trasformazione nello dall’equazione    X a b  Y = d e Z g h spazio può essere espressa     c x l f  y  +  m  i z n (12) (x.

y . Z ): coordinate trasformate del punto Alessandro Martinelli Trasformazione di Coordinate .Trasformazioni di Coordinate nello spazio Trasformazione Generica La generica trasformazione nello dall’equazione    X a b  Y = d e Z g h spazio può essere espressa     c x l f  y  +  m  i z n (12) (x. Y . z): coordinate originarie del punto (X .

Y . Z ): coordinate trasformate del punto L’effetto della trasformazione dipende dai valori dei parametri Alessandro Martinelli Trasformazione di Coordinate . z): coordinate originarie del punto (X . y .Trasformazioni di Coordinate nello spazio Trasformazione Generica La generica trasformazione nello dall’equazione    X a b  Y = d e Z g h spazio può essere espressa     c x l f  y  +  m  i z n (12) (x.

ma più complesse Alessandro Martinelli Trasformazione di Coordinate . y .Trasformazioni di Coordinate nello spazio Trasformazione Generica La generica trasformazione nello dall’equazione    X a b  Y = d e Z g h spazio può essere espressa     c x l f  y  +  m  i z n (12) (x. Y . Z ): coordinate trasformate del punto L’effetto della trasformazione dipende dai valori dei parametri Le trasformazioni standard sono analoghe a quello del caso del piano. z): coordinate originarie del punto (X .

Traslazione e Scaling nello Spazio Traslazione        X 1 0 0 x l  Y  =  0 1 0  y  +  m  Z 0 0 1 z n Scaling        X a 0 0 x 0  Y  =  0 e 0  y  +  0  Z 0 0 i z 0 (13) (14) Alessandro Martinelli Trasformazione di Coordinate .

Rotazione intorno agli assi principali(1/2) Attorno all’asse Z        X cosα −senα 0 x 0  Y  =  senα cosα 0   y  +  0  Z 0 0 1 z n0 Attorno all’asse X        X 1 0 0 x 0  Y  =  0 cosα −senα   y  +  0  Z 0 senα cosα z n0 (15) (16) Alessandro Martinelli Trasformazione di Coordinate .

Rotazione intorno agli assi principali(2/2) Attorno all’asse Y        X cosα 0 −senα x 0  Y = 0  y  +  0  1 0 Z senα 0 cosα z n0 (17) Alessandro Martinelli Trasformazione di Coordinate .

Alcuni esempi: shearing di x su y        X 1 γ 0 x 0  Y  =  0 1 0  y  +  0  Z 0 0 1 z 0 shearing di y su z        X 1 0 0 x 0  Y  =  0 1 0  y  +  0  Z 0 β 1 z 0 (18) (19) Alessandro Martinelli Trasformazione di Coordinate .Shearing Molto casi.

Trasformazione di Eulero (1/2) Combinazione di 3 Rotazioni intorno ai 3 assi principali    X cosαz  Y  =  senαz Z 0  1 0  0 cosαx 0 senαx −senαz cosαz 0  0 cosαy  0 0 1 senαy  0 −senαy  1 0 0 cosαy   0 x −senαx   y  (20) cosαx z 1. Consentono di ottenere qualsiasi inclinazione Alessandro Martinelli Trasformazione di Coordinate .

Solitamente alle variabili (αx . Consentono di ottenere qualsiasi inclinazione 2. αy . Alessandro Martinelli Trasformazione di Coordinate .Pitch. inclinazione.Trasformazione di Eulero (1/2) Combinazione di 3 Rotazioni intorno ai 3 assi principali    X cosαz  Y  =  senαz Z 0  1 0  0 cosαx 0 senαx −senαz cosαz 0  0 cosαy  0 0 1 senαy  0 −senαy  1 0 0 cosαy   0 x −senαx   y  (20) cosαx z 1. αz ) si associano i nomi più intuitivi (Roll. deviazione).Yaw) ( cioè rotazione.

Trasformazione di Eulero (2/2) Alessandro Martinelli Trasformazione di Coordinate .

Rotazione intorno ad un asse generico La rotazione avviene in modo analogo alla rotazione intorno ad un punto nel caso 2D. Alessandro Martinelli Trasformazione di Coordinate .

E’ necessario definire un sistema di riferimento a partire dall’asse di rotazione.Rotazione intorno ad un asse generico La rotazione avviene in modo analogo alla rotazione intorno ad un punto nel caso 2D. Alessandro Martinelli Trasformazione di Coordinate .

Coordinate Omogenee (1/2) La trasformazione nello spazio 3D generica:        X a b c x l  Y  =  d e f  y  +  m  Z g h i z n (21) Alessandro Martinelli Trasformazione di Coordinate .

Coordinate Omogenee (1/2) La trasformazione nello spazio 3D generica:        X a b c x l  Y  =  d e f  y  +  m  Z g h i z n Può essere riscritta nella seguente forma matriciale      X a b c l x  Y   d e f m  y        Z  =  g h i l  z  1 0 0 0 1 1 (21) (22) Alessandro Martinelli Trasformazione di Coordinate .

1. Le coordinate omogenee consentono di gestire trasformazioni più compesse (23) Alessandro Martinelli Trasformazione di Coordinate .Coordinate Omogenee (2/2) In generale definiremo un insieme più vasto di trasformazioni      x X a b c l  Y   d e f m  y        Z = g h i l  z  w W w x w y w z ww dove w è detta coordinata Omogenea.

Coordinate Omogenee (2/2) In generale definiremo un insieme più vasto di trasformazioni      x X a b c l  Y   d e f m  y        Z = g h i l  z  w W w x w y w z ww dove w è detta coordinata Omogenea. y . w ) nello spazio omogeneo è corrispondente x y z al punto ( w . z. w . 1. w ) (23) Alessandro Martinelli Trasformazione di Coordinate . Le coordinate omogenee consentono di gestire trasformazioni più compesse 2. Un punto (x.

Un punto (x. Infiniti punti di [X Y Z W] mappano sullo stesso punto di [X Y Z] (23) Alessandro Martinelli Trasformazione di Coordinate . w ) nello spazio omogeneo è corrispondente x y z al punto ( w . w ) 3. y . Le coordinate omogenee consentono di gestire trasformazioni più compesse 2. z. 1.Coordinate Omogenee (2/2) In generale definiremo un insieme più vasto di trasformazioni      x X a b c l  Y   d e f m  y        Z = g h i l  z  w W w x w y w z ww dove w è detta coordinata Omogenea. w .

w . Un punto (x. w ) 3. w ) nello spazio omogeneo è corrispondente x y z al punto ( w . I punti [X Y Z 0] rappresentano punti all’infinito in [X Y Z] Alessandro Martinelli Trasformazione di Coordinate (23) . y . z. Infiniti punti di [X Y Z W] mappano sullo stesso punto di [X Y Z] 4.Coordinate Omogenee (2/2) In generale definiremo un insieme più vasto di trasformazioni      x X a b c l  Y   d e f m  y        Z = g h i l  z  w W w x w y w z ww dove w è detta coordinata Omogenea. 1. Le coordinate omogenee consentono di gestire trasformazioni più compesse 2.

Alessandro Martinelli Trasformazione di Coordinate .Proiezioni Una proiezione è una trasformazione che proietta punti da uno spazio 3D su di un piano.

Le proiezioni parallele sono costruite dato un piano π e dato un vettore direzione V: la trasformazione converte ogni punto P nell’intersezione P’ di π con la retta passante per P e avente direzione V Alessandro Martinelli Trasformazione di Coordinate .Proiezioni Una proiezione è una trasformazione che proietta punti da uno spazio 3D su di un piano.

Alessandro Martinelli Trasformazione di Coordinate . Il Fuoco F non deve stare sul piano.Proiezioni prospettiche (1/5) La generica proiezione prospettica: dato un punto F (il fuoco) e un piano π la trasformazione prospettica trova l’intersezione tra π e il segmento che congiunge F e un qualsiasi punto P.

z = d } Alessandro Martinelli Trasformazione di Coordinate . 0. 0).Proiezioni prospettiche (2/5) Un esempio semplice: Θ = {F . π} = {(0.

0). yp . zp ) è: y x z xp = yp = zp x xp y yp = = z zp z zp (24) Alessandro Martinelli Trasformazione di Coordinate . z = d } La retta che congiunge il fuoco al punto P(xp .Proiezioni prospettiche (2/5) Un esempio semplice: Θ = {F . π} = {(0. 0.

Proiezioni prospettiche (3/5) L’intersezione della retta col piano è Alessandro Martinelli Trasformazione di Coordinate .

Proiezioni prospettiche (3/5) L’intersezione della retta col piano è   xxp = zzp  y = zzp (25)  yp  z =d Alessandro Martinelli Trasformazione di Coordinate .

Proiezioni prospettiche (3/5) L’intersezione della retta col piano è   xxp = zzp  y = zzp (25)  yp  z =d   x = dxp  zp dy y = zpp (26)   z =d Alessandro Martinelli Trasformazione di Coordinate .

    x X 1 0 0 0  Y   0 1 0 0  y      Z  =  0 0 d 0  z w W 0 0 1 0 con una     (27) Il punto in coordinate omogenee è ( dx .dy/z. z ) associato al punto 3D (dx/z.d).Proiezioni prospettiche (4/5) La trasformazione prospettica può essere definita trasformazione omogenea. Alessandro Martinelli Trasformazione di Coordinate . dz . dy .

Proiezioni prospettiche (5/5) Molto spesso il punto F non è l’origine e il piano non è z=d. Alessandro Martinelli Trasformazione di Coordinate .

Proiezioni prospettiche (5/5) Molto spesso il punto F non è l’origine e il piano non è z=d. E’ possibile risolvere questo problema aggiungendo una opportuna trasformazione di coordinate   X 1 0  Y   0 1     Z = 0 0 0 0 W  0 0 d 1   x r1 r2 r3 px 0   r4 r5 r6 py   y 0   0   r7 r8 r9 pz   z 0 0 0 1 w 0     (28) Alessandro Martinelli Trasformazione di Coordinate .

Viewing Frustum (1/3) Tronco di piramide.1.-1). Alessandro Martinelli Trasformazione di Coordinate . data una proiezione prospettica e due valori znear e zfar La trasformazione prospettica deve mappare il viewing frustum sul cubo di estremi (1.-1.1) e (-1.

Viewing Frustum (2/3) Alessandro Martinelli Trasformazione di Coordinate .

Viewing Frustum (3/3) La trasformazione prospettica tenendo conto dei valori near e far per la z risulta:   1 0 0 X  Y   0 1 0     Z  =  0 0 −(far +near ) far −near W 0 0 1   r2 r3 px x  y  r5 r6 py    (29) r8 r9 pz   z  0 0 1 w  0 0 −2 far near far −near     0  r1  r4   r7 0 Alessandro Martinelli Trasformazione di Coordinate .