• Non ci sono risultati.

Sistemi di riferimento e trasformazioni

N/A
N/A
Protected

Academic year: 2021

Condividi "Sistemi di riferimento e trasformazioni"

Copied!
38
0
0

Testo completo

(1)

Fondamenti di Grafica 3D

Sistemi di riferimento e trasformazioni

paolo.cignoni@isti.cnr.it http://vcg.isti.cnr.it/~cignoni

(2)

Introduzione

v Punti e vettori sono due cose diverse v Basi e sistemi di riferimento

(coordinate systems and frames) v Coordinate omogenee

v Trasformazioni Affini

(3)

Punti e vettori

v Punto

v Entità il cui unico attributo è la sua posizione rispetto ad un sistema di riferimento

v Vettore

v Entità i cui attributi sono lunghezza direzione

v Spesso si visualizza un punto come un vettore dall’origine a quel punto:

pericoloso. Sono oggetti diversi.

(4)

Spazio Vettoriale

v Spazio dove ci sono due entità

v scalari v vettori

v Operazioni:

v Somma e moltiplicazione tra scalari v Somma vettore-vettore

v Moltiplicazione scalare-vettore w

v u ,,

γ β α, ,

(5)

Spazio Vettioriale

v Altre operazioni utili che assumo vi ricordiate:

v Prodotto scalare

vettorexvettore -> scalare

v (aka dot product)

v Prodotto vettore

vettorexvettore -> vettore

v (aka cross product)

(6)

Spazio affine

v Spazio dove ci sono tre entità

v Scalari, v vettori, v punti

v Operazioni:

v Quelle di uno spazio vettoriale v Somma punto:vettore-> punto

v Sottrazione punto:punto -> vettore w

v u ,,

γ β α, ,

R Q P ,,

Q v

P = + Q P

v =

(7)

Sistemi di coordinate

v 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 =α +α +α

⎥⎥

⎥

⎦

⎤

⎢⎢

⎢

⎣

⎡

=

3 2 1

α α α a

⎥⎥

⎥

⎦

⎤

⎢⎢

⎢

⎣

⎡

=

3 2 1

v v v w aT }

, ,

{v1 v2 v3

(8)

Sistemi di riferimento

v Una base (tre vettori, linearmente

indipendenti) non basta per definire la posizione di un punto.

v Occorre anche un punto di riferimento, l’origine.

(9)

Sistemi di riferimento

v Un frame (sistema di riferimento)

necessita quindi di un punto di origine P0 e di una base. In esso si può

rappresentare univocamente un punto

v Nota: bastano tre scalari per rappresentare un punto, come per un vettore…

3 3 2

2 1

1

0 v v v

P

P = +η +η +η

(10)

Cambio sistemi di coordinate 1

v In uno spazio

vettoriale, date due basi.

v Esprimiamo una in termini dell’altra:

v 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

(11)

Cambio sistemi di coordinate 2

v Dato un vettore w

v 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

(12)

Cambio sistemi di coordinate 3

v Nota che si sta parlando di vettori e non di punti

v Questi cambi di base lasciano l’origine immutata (cambiano vettori)

v In altre parole rappresentano solo rotazioni e scalature.

v Un cambio di sistema di riferimento

coinvolge anche un cambio del punto di origine.

(13)

Coordinate Omogenee

v Per definire un frame bastano tre vettori ed un punto.

0 3

3 2

2 1

1v v v P

P =α +α +α + } ,

, ,

{v1 v2 v3 P0

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

0 3 2 1

3 2

1 1]

[

P v v v P α α α

⎩⎨

⎧

=

=

P

P P

0 1

(14)

Coordinate Omogenee

v Si dice che un punto P è

rappresentato dalla matrice colonna p

v E un vettore w è rappresentato dalla matrice colonna a

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

1

3 2 1

α α α p

⎥⎥

⎥

⎥

⎦

⎤

⎢⎢

⎢

⎢

⎣

⎡

= 0

3 2 1

δ δ δ a

(15)

Cambio di Frame

v Dati due sistemi di riferimento.

v Esprimiamo uno in termini dell’altro:

v 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

(16)

Cambio di Frame

v La matrice di cambiamento di frame

v 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

(17)

Trasformazioni Affini

v Funzioni che prendono un punto (o un vettore) e lo mappano in un altro

punto (o vettore) v Lavorando in coord

omogenee

v Ci interessano

trasformazioni che siano lineari

) (

) (

u v

p q

f f

=

=

) ( )

( )

( p q f p f q

f α + β =α + β

(18)

Trasformazioni affini

v Preservano la colinearita’

v Tutti i punti inizialmente su una linea

giacciono ancora su di una linea dopo la trasformazione

E

v I rapporti tra le distanze

v Il punto di mezzo di un segmento rimane il punto di mezzo di un segmento anche dopo la trasformazione.

(19)

Trasformazioni Affini

v Dato un punto ed una sua rappresentazione Ogni trasformazione lineare trasforma il punto nel punto che ha la stessa rappresentazione ma in un altro sistema di coordinate.

) ( )

( )

( )

( )

(P 1 f v1 2 f v2 3 f v3 f P0

f =α +α +α +

0 3

3 2

2 1

1v v v P

P =α +α +α +

(20)

Trasformazioni Affini

v quindi può sempre essere scritta in termini del rapporto che lega i due sistemi di riferimento

v v=Au

v Se A è non singolare una trasf affine

corrisponde ad un cambio di coordinate

(21)

Trasformazioni Affini

v 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

(22)

Trasformazioni Affini

v Notare che se u è un vettore solo 9 elementi di A sono usati nella trasformazione

v 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

(23)

Trasformazioni Affini

v Preservano le linee

v Consideriamo una linea espressa nella forma parametrica

v Consideriamone la sua rapp. in coordinate omogenee

v A è una trasformazione affine d

P

P(α) = 0 +α

d p

p(α) = 0 +α

d A Ap

Ap(α) = 0 +α

(24)

Esercizio

v 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?

(25)

Coordinate Omogenee

v Si dice che un punto P è

rappresentato dalla matrice colonna p

v E un vettore w è rappresentato dalla matrice colonna a

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

1

3 2 1

α α α p

⎥⎥

⎥

⎥

⎦

⎤

⎢⎢

⎢

⎢

⎣

⎡

= 0

3 2 1

δ δ δ a

(26)

Trasformazioni Affini

v Notare che se u è un vettore solo 9 elementi di A sono usati nella trasformazione

v 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

(27)

Traslazione

v modifica i punti di un frame sommando a tutti i punti un vettore di spostamento d Pʹ′ = P + d

d p

p'= +

(28)

Traslazione

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

ʹ′

ʹ′

ʹ′

ʹ′ =

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

0 1

1

z y x

z d y x

z y x

α α α p

d p p

p'= +

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

= ʹ′ =

1 0

0 0

1 0

0

0 1

0

0 0

1

z y x

α α α T

Tp p

(29)

Traslazione

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

1 0

0 0

1 0

0

0 1

0

0 0

1 )

, , (

z y x

z y

x α

α α α

α T α

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

1 0

0 0

1 0

0

0 1

0

0 0

1 ) ,

, (

) ,

,

1(

z y x

z y

x z

y

x α

α α α

α α

α α

α T

T

(30)

Rotazione

v Di una rotazione si deve specificare

v angolo, v asse

v punto di

applicazione

(31)

Rotazione

v Caso semplice asse z, intorno all’origine, di un’angolo θ

) sin(

) cos(

sin cos

θ φ

ρ

θ φ

ρ

φ ρ

φ ρ

+ ʹ′ =

+ ʹ′ =

=

=

y x y x

θ ρ

(x’,y’) (x,y)

(32)

Rotazione

θ θ

θ φ

ρ θ

φ ρ

θ θ

θ φ

ρ θ

φ ρ

φ ρ

φ ρ

cos sin

cos sin

sin cos

sin cos

sin sin

cos cos

sin cos

y x

y

y x

x y x

+

= +

ʹ′ =

=

ʹ′ =

=

=

⎥⎦

⎢ ⎤

⎣

⎥⎡

⎦

⎢ ⎤

⎣

⎡

⎥ =

⎦

⎢ ⎤

⎣

⎡

ʹ′

ʹ′

y x y

x

θ θ

θ θ

cos sin

sin cos

(33)

Rotazioni

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

= +

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

ʹ′

ʹ′

ʹ′

1

cos sin

sin -

cos

1 )

( 1

z y x

y x

z y x z R

y x

Z

θ θ

θ θ

θ

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

1 0

0 0

0 1

0 0

0 0

cos sin

0 0

sin - cos

)

( θ θ

θ θ

θ Z R

(34)

Rotazioni

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

1 0

0 0

0 cos

sin 0

0 sin

- cos

0

0 0

0 1

)

( θ θ

θ θ X θ

R

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

1 0

0 0

0 cos

0 sin

-

0 0

1 0

0 sin

0 cos

)

( θ θ

θ θ

θ Y R

(35)

Rotazioni

v Le matrici di rotazione viste finora sono facilmente invertibili

v Quindi basta trasporre…

) ( )

(

) cos(

) cos(

) sin(

) sin(

) (

) (

1 1

θ θ

θ θ

θ θ

θ θ

RT

R

R R

=

=

=

=

(36)

Rotazioni Complesse

v Rotazioni centrate non sull’origine v Rotazioni su assi diversi da quelli

principali

v Si ottengono per composizione di trasformazioni

(37)

Scaling

v Non rigida

v Non uniforme lungo gli assi v Solo centrata rispetto

all’origine

⎥⎥

⎥⎥

⎦

⎤

⎢⎢

⎢⎢

⎣

⎡

=

=

=

=

1 0

0 0

0 0

0

0 0

0

0 0

0 )

, ,

( '

' '

z y

x

X z y

x z

y x

S

z z

y y

x x

β β

β β

β β

β β β

(38)

Object Frame

v Perché ogni oggetto ha il suo sistema di riferimento?

v Uso Multiplo di uno stesso oggetto v Posizione parametrica

Riferimenti

Documenti correlati

Scrivere una seconda matrice di simmetria M2, che rifletta rispetto ad un piano passante per l’origine e ortogonale a v (esprimere M2 come prodotto di matrici date o note). 2) Sia

Si scelga un sistema di riferimento, si determini un’equazione cartesiana di L k in tale sistema, si di- mentichi il sistema di riferimento e si descriva il risultato ottenuto nei

Un’analisi sofisticata mostra che, genericamente, una matrice quadrata di ordine n ad elementi reali o piu’ in generale complessi, possiede nel campo complesso n autovalori

Infatti, se e vero che ogni vettore di V si puo’ scrivere in almeno un modo come combinazione lineare dei vettori a, b, c, non e’ pero’ vero che tale scrittura e’

aquilone alligatore pneumatico anatroccolo stivale aviatore edicola oceano

[r]

[r]

Il primo step della pipeline di rendering è quello di trasformare la scena nel sistema di riferimento della camera.