1
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ripasso: prodotto scalare e vettoriale
• Prodotto Vettoriale ("cross-product", "external product") : vettore x vettore → vettore
0 ) ( ) (
) (
=
⋅
×
=
⋅
×
×
−
=
×
u v u v v u
u v v u Proprietà
il risultato è ortogonale ad entrambi gli operandi:
non commuta:
−
−
−
=
×
x y y x
z x x z
y z z y z y x z y x
β α β α
β α β α
β α β α β β β α α
α , , ) ( , , ) (
u v u x v
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ripasso: prodotto scalare e vettoriale
• Prodotto Vettoriale ("cross-product", "external product") : vettore x vettore → vettore
Proprietà
−
−
−
=
×
x y y x
z x x z
y z z y z y x z y x
β α β α
β α β α
β α β α β β β α α
α , , ) ( , , ) (
θ θ
sen 0
sen
=
×
⇔
=
×
=
×
v u
v u v u
v u v u
e allineati e, se u e v
sono normalizzati:
quindi se u e v non sono nulli:
molto utilmente:
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Spazio affine
• Tre entità – scalari – vettori – punti
attributi:
lunghezza, direzione unico attributo:
la posizione, rispetto ad un sistema di riferimento
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Spazio affine
• Tre entità – scalari – vettori – punti
• Operazioni:
– Eredita dallo (è uno) spazio vettoriale:
• Somma e prodotto tra scalari
• Moltiplicazione scalare xxxx vettore → vettore
• Somma vettore xxxx vettore → vettore – Somma punto xxxx vettore → punto – Sottrazione punto xxxx punto → vettore
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Sistema di riferimento ( frame )
• Definito da
– un punto base (origine) p
0– e una base vettoriale { v
0, v
1, v
2}
• Posso esprimere (univocamente) ogni punto punto punto punto p come:
p = v 0 η 0 + v 1 η 1 + v 2 η 2 + p 0
coordinate omogenee di p lin indip
• cioè: p = v 0 v 1 v 2 p 0 η 0 η 1 η 2 1
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Sistema di riferimento ( frame )
• Definito da
– un punto base (origine) p
0– e una base vettoriale { v
0, v
1, v
2}
• Posso esprimere (univocamente) ogni vettore vettore vettore vettore v come:
v = v 0 η 0 + v 1 η 1 + v 2 η 2 + p 0
coordinate omogenee di p
• cioè: p = v 0 v 1 v 2 p 0
η 0
η 1
η 2
0
2
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Sistema di riferimento ( frame )
• Un frame può essere:
– ortogonale
(se i vettori della base lo sono fra loro) – ortonormale
(se i vettori della base sono ortogonali e normali)
• Frame canonico:
– matrice identità
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Frame sinistrorso e detrorso
• Un sistema di riferimento ortogonale può essere immaginato sinistrorso o destrorso
sinistrorso destrorso
z y x × =
• Ricordiamoci di usare la STESSA MANO per il prodotto cross
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Rappresentazione di punti e vettori in coordinate omogenee
= 1
3 2 1
α α α p
= 0
3 2 1
δ δ δ a
Punti Vettori
1 0
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Coordinate omogenee
• Il punto P di coordinate cartesiane (x,y,z) è rappresentato in coordinate omogenee come (xw,yw,zw , w), con w qualunque (ma non 0)
• Due punti di coordinate (x, y, z, w) e (x′, y′, z′, w′) possono rappresentano lo stesso punto dello spazio;
– [quando?]
• Quando w = 1 coordinate cartesiane ed omogenee coincidono (forma canonica ) .
• Con (x, y, z, w ≠ 0) si rappresentano punti , con (x, y, z, 0) si rappresentano vettori.
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
q = (p) v = (u) Trasformazioni
• Funzioni che prendono un punto (o un vettore)
e lo mappano in un altro punto (o vettore)
– lavorano in coord omogenee – ci interessano
trasformazioni che siano lineari:
p
f f f
f
q
f
) ( ) ( )
( v
0v
1f v
0f v
1f α + β = α + β (coi vettori)
) ( ) ( )
( p v f p f v
f + α = + α (coi punti)
Object Space
(analogo in 2D)• spazio oggetto
1
spazio oggetto (“spazio macchina”) origineoooodello
spazio oggetto
x y
-1 2 3 -2
-3
assixxxxe yyyydello spazio oggetto
1 2 3
-1
-2
-3
3
Object Coordinates
(analogo in 2D)• coordinate oggetto
1.5
2.3 p = (1.5 1.5 1.5 1.5, 2.3 2.3 2.3) 2.3
spazio oggetto (“spazio macchina”)
coordinate dipppp in spazio oggetto
x y
glBegin(GL_TRIANGLES);
glVertex2d( 1.5 , 2.3 );
. . .
Object Coordinates
(analogo in 2D)• coordinate mondo
1.5 2.3
p = (1.5, 2.3)
spazio oggetto (“spazio macchina”)
coordinate dipppp in spazio oggetto
x y
x y
spazio mondo
= (12.5, 8.1) 8.1
12.5
coordinate dipppp in spazio mondo
1 1
Object Coordinates
(analogo in 2D)• coordinate mondo
p = (1.5, 2.3)
spazio oggetto:
(“spazio macchina AAAA”)
coordinate in spazio oggetto
x y
= (9.7, 4.2)
7.4
22.5
spazio oggetto:
(“spazio macchina BBBB”) coordinate in spazio mondo p = (1.5, 2.3)
= (22.5, 7.4)
9.7 1
1 4.2
spazio mondo
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Trasformazioni Affini
• Sono lineari e dunque preservano:
– la colinearità
• tutti i punti
inizialmente su una linea giacciono ancora su di una linea dopo la trasformazione
e anche – i rapporti tra le distanze
• il punto di mezzo di un segmento rimane il punto di mezzo di un segmento anche dopo la trasformazione.
in generale non in generale non in generale non in generale non
preservano:
preservano:
preservano:
preservano:
distanze, angoli, aree se lo fanno, le
chiamiamo
“trasf. Rigide”
“isometrie” o
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Trasformazioni Affini
• Si possono esprimere come moltiplicazione con matrice
sempre
=
1 1 0 0 0 1
3 2 1
34 33 32 31
24 23 22 21
14 13 12 11
3 2 1
γ γ γ α α α α
α α α α
α α α α γ γ γ f
coordinate omogenee punto di partenza
= 1
3 2 1
δ δ δ
coordinate omogenee punto di arrivo
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
conta solo questo
Trasformazioni Affini
• Caso vettori
sempre
=
1 1 0 0 0 1
3 2 1
34 33 32 31
24 23 22 21
14 13 12 11
3 2 1
γ γ γ α α α α
α α α α
α α α α γ γ γ f
coordinate omogenee vettore di partenza
= 1
3 2 1