Costruzione di Interfacce Lezione 4
Nozioni di geometria per la grafica
cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni
Introduzione
Punti e vettori sono due cose diverse
Basi e sistemi di riferimento (coordinate systems and frames)
Coordinate omogenee
Trasformazioni Affini
Punti e vettori
Punto
Entità il cui unico attributo è la sua posizione rispetto ad un sistema di riferimento
Vettore
Entità i cui attributi sono lunghezza direzione
Spesso si visualizza un punto come un vettore dall’origine a quel punto:
pericoloso. Sono oggetti diversi.
Spazio Vettoriale
Spazio dove ci sono due entità
scalari
vettori
Operazioni:
Somma e moltiplicazione tra scalari
Somma vettore-vettore
Moltiplicazione scalare-vettore w
v u ,,
γ β α ,,
Spazio affine
Spazio dove ci sono tre entità
Scalari,
vettori,
punti
Operazioni:
Quelle di uno spazio vettoriale
Somma punto:vettore-> punto
Sottrazione punto:punto -> vettore w
v u ,,
γ β α ,,
R Q P ,,
Q v P= +
Q P v= −
Linea in uno spazio affine
Rappresentazione parametrica di una linea
d P P(α)= 0+α
Somma Affine
In uno spazio affine NON ci sono somma tra punti e moltiplicazione tra scalare e punto
Somma affine v Q P= +α
Q R v= −
Q R Q R Q
P= +α( − )=α −(1−α)
Convessità
Somma affine
Generalizzata
Inviluppo convesso, l’insieme dei punti che posso ottenere quando
2 1
1 2
1 + + =
=αQ αR α α P
2 1
1 2
2 1
1 + + + + + + =
= P P nPn n
P α α K α α α K α
n
i≥0 i=1,2,K, α
Prodotto scalare
Dot product o inner product, introduce il concetto di misura
Ortogonalità
Magnitudo
Distanza tra punti
Angolo tra vettori 0 0
) (
≠
⇔
>
⋅
⋅ +
⋅
=
⋅ +
⋅
=
⋅
v v v
w v w u w v u
u v v u
β α β α
( ) ( )
θ cos 0
v u v u
Q P Q P Q P
v v v
v u
=
⋅
−
⋅
−
=
−
⋅
=
=
⋅
Piano in uno spazio affine
Dati tre punti P,Q,R non allineati, si puo’ trovare i punti all’interno del triangolo PQR
) )(
1 ( ) )(
1 ( ) , (
) 1 ( ) ) 1 ( ( ) , (
1 0 ) 1 ( ) (
1 0 ) 1 ( ) (
P R P
Q P
T
R Q
P T
R S T
Q P S
−
− +
−
− +
=
− +
− +
=
≤
≤
− +
=
≤
≤
− +
=
β α
β β α
β α
α β β α
β β
β β
α α
α α
v u P T(α,β)= 0+α +β
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
3 3 2 2 1
1v v v
w=α +α +α
= 2
1
α α α a
=
3 2 1
v v v w aT } , , {v1v2v3
Prodotto vettore
Dati due vettori non paralleli u,v trovare un vettore w tale che:
Siano
Le componenti di u,v in un particolare sitema di coordinate, allora in quel sistema si definisce:
=0
⋅
=
⋅w v w u
−
−
−
=
×
= 3 1 1 3
2 3 3 2
β α β α
β α β α
β α β α v u w
3 2 1 3 2
1,α,α β,β,β α
Prodotto vettore
Nota il prodotto vettore è consistente con l’orientamento della base del sistema di coordinate:
Se siamo in un sistema right-handed allora, anche w segue la regola della mano destra:
Magnitudo:
z y x× =
v u u×v
= θ sin
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.
Sistemi di riferimento
Un frame (sistema di riferimento) necessita quindi di un punto di origine P0e di una base. In esso si può rappresentare univocamente un punto
Nota: bastano tre scalari per rappresentare un punto, come per un vettore…
3 3 2 2 1 1
0 v v v
P
P= +η +η +η
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
{v1,v2,v3} {u1,u2,u3}
3 33 2 32 1 31 3
3 23 2 22 1 21 2
3 13 2 12 1 11 1
v v v u
v v v u
v v v u
γ γ γ
γ γ γ
γ γ γ
+ +
=
+ +
=
+ +
=
=
33 32 31
23 22 21
13 12 11
γ γ γ
γ γ γ
γ γ γ 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 sua rappresentazione nell’altro sistema di coordinate usando la matrice M
3 3 2 2 1
1v v v
w=α +α +α
=
3 2 1
α α α a
=
3 2 1
v v v w aT
3 3 2 2 1
1u u u
w=β +β +β
=
3 2 1
β β β
b a=MTb
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.
Coordinate Omogenee
Per definire un frame bastano tre vettori ed un punto.
0 3 3 2 2 1
1v v v P
P=α +α +α + } , , , {v1v2v3 P0
=
0 3 2 1
3 2
1 1]
[
P v v v P αα α
∅
=
⋅
=
⋅ P
P P 0 1
Coordinate Omogenee
Si dice che un punto P è rappresentato dalla matrice colonna p
E un vettore w è rappresentato dalla matrice colonna a
= 1
3 2 1
α α α p
= 0
3 2 1
δ δ δ a
Cambio di Frame
Dati due sistemi di riferimento.
Esprimiamo uno in termini dell’altro:
Questo definisce la matrice 4x4 di cambiamento di frame
{v1,v2,v3,P0} {u1,u2,u3,Q0}
0 3 43 2 42 1 41 0
3 33 2 32 1 31 3
3 23 2 22 1 21 2
3 13 2 12 1 11 1
P v v v Q
v v v u
v v v u
v v v u
+ + +
=
+ +
=
+ +
=
+ +
=
γ γ γ
γ γ γ
γ γ γ
γ γ γ
=
1 0 0 0
43 42 41
33 32 31
23 22 21
13 12 11
γ γ γ
γ γ γ
γ γ γ
γ γ γ M
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
b M a a
b
bT T T T
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 un punto (o un vettore) e lo mappano in un altro punto (o vettore)
Lavorando in coord omogenee
Ci interessano
trasformazioni che siano lineari
) (
) (
u v
p q
f f
=
=
) ( ) ( )
( p q f p f q
f α +β =α +β
Trasformazioni Affini
Consideriamo lo spazio 4D delle coordinate omogenee
Ogni trasformazione lineare nello spazio 4d trasforma la rappresentazione di un dato punto (vettore) in un’altra rappresentazione di quel punto (vettore)
quindi può sempre essere scritta in termini delle due rappresentazioni
v=Au
Se A è non singolare una trasf affine corrisponde ad un cambio di coordinate
Trasformazioni Affini
In coordinate omogenee la matrice A deve anche lasciare immutata la quarta componente della rappresentazione
=
1 0 0 0
34 33 32 31
24 23 22 21
14 13 12 11
α α α α
α α α α
α α α α A
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)
=
0 1 0 0 0
3 2 1
34 33 32 31
24 23 22 21
14 13 12 11
γ γ γ
α α α α
α α α α
α α α α Au
Trasformazioni Affini
Preservano le linee
Consideriamo una linea espressa nella forma parametrica
Consideriamone la sua rapp. in coordinate omogenee
A è una trasformazione affine d
P P(α)= 0+α
d p p(α)= 0+α
d A Ap Ap(α)= 0+α
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?