costruzione di interfacce lezione 4 sistemi di riferimento...

38
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni [email protected] http://vcg.iei.pi.cnr.it/~cignoni

Upload: buinhan

Post on 16-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Costruzione di InterfacceLezione 4

Sistemi di riferimento etrasformazioni

[email protected]://vcg.iei.pi.cnr.it/~cignoni

Introduzione

Punti e vettori sono due cose diverseBasi e sistemi di riferimento

(coordinate systems and frames)Coordinate omogeneeTrasformazioni Affini

Punti e vettori

PuntoEntità il cui unico attributo è la sua

posizione rispetto ad un sistema diriferimento

VettoreEntità i cui attributi sono lunghezza

direzione

Spesso si visualizza un punto come unvettore dall’origine a quel punto:pericoloso. Sono oggetti diversi.

Spazio Vettoriale

Spazio dove ci sono due entitàscalarivettori

Operazioni:Somma e moltiplicazione tra scalariSomma vettore-vettoreMoltiplicazione scalare-vettore

wvu ,,

!"# ,,

Spazio affine

Spazio dove ci sono tre entitàScalari,vettori,punti

Operazioni:Quelle di uno spazio vettorialeSomma punto:vettore-> puntoSottrazione punto:punto -> vettore

wvu ,,

!"# ,,

RQP ,,

QvP +=

QPv !=

Sistemi di coordinate

In uno spazio vettoriale 3d si puòrappresentare univocamente un vettorew in termini di tre vettori linearmenteindipendenti; I tre vettori usati sonouna base di quello spazio

332211vvvw !!! ++=

!!!

"

#

$$$

%

&

=

3

2

1

'

'

'

a

!!!

"

#

$$$

%

&

=

3

2

1

v

v

v

wTa

},,{ 321 vvv

Sistemi di riferimento

Una base (tre vettori, linearmenteindipendenti) non basta per definire laposizione 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 origineP0 e di una base. In esso si puòrappresentare univocamente un punto

Nota: bastano tre scalari per rappresentare unpunto, come per un vettore…

3322110vvvPP !!! +++=

Cambio sistemi di coordinate 1

In uno spaziovettoriale, date duebasi.

Esprimiamo una intermini dell’altra:

Questo definisce lamatrice 3x3 M dicambiamento dibase

{ } { }321321

,,,, uuuvvv

3332321313

3232221212

3132121111

vvvu

vvvu

vvvu

!!!

!!!

!!!

++=

++=

++=

!!!

"

#

$$$

%

&

=

333231

232221

131211

'''

'''

'''

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 suarappresentazionenell’altro sistemadi coordinateusando la matriceM

332211vvvw !!! ++=

!!!

"

#

$$$

%

&

=

3

2

1

'

'

'

a

!!!

"

#

$$$

%

&

=

3

2

1

v

v

v

wTa

332211uuuw !!! ++=

!!!

"

#

$$$

%

&

=

3

2

1

'

'

'

b bMaT

=

Cambio sistemi di coordinate 3

Nota che si sta parlando di vettori e nondi punti

Questi cambi di base lasciano l’origineimmutata (cambiano vettori)

In altre parole rappresentano solorotazioni e scalature.

Un cambio di sistema di riferimentocoinvolge anche un cambio del punto diorigine.

Coordinate Omogenee

Per definire un frame bastano trevettori ed un punto.

0332211PvvvP +++= !!!

},,,{ 0321 Pvvv

!!!!

"

#

$$$$

%

&

=

0

3

2

1

321 ]1[

P

v

v

v

P '''!"#

$=%

=%

P

PP

0

1

Coordinate Omogenee

Si dice che un punto P èrappresentato dalla matricecolonna p

E un vettore w è rappresentatodalla matrice colonna a

!!!!

"

#

$$$$

%

&

=

1

3

2

1

'

'

'

p

!!!!

"

#

$$$$

%

&

=

0

3

2

1

'

'

'

a

Cambio di Frame

Dati due sistemi diriferimento.

Esprimiamo uno intermini dell’altro:

Questo definisce lamatrice 4x4 dicambiamento diframe

{ } { }03210321

,,,,,, QuuuPvvv

03432421410

3332321313

3232221212

3132121111

PvvvQ

vvvu

vvvu

vvvu

+++=

++=

++=

++=

!!!

!!!

!!!

!!!

!!!!

"

#

$$$$

%

&

=

1

0

0

0

434241

333231

232221

131211

'''

'''

'''

'''

M

Cambio di Frame

La matrice dicambiamentodi frame

Date le due rappresentazioni a,b incoordinate 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

bMaabbTTTT

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 unpunto (o un vettore) e lomappano in un altropunto (o vettore)

Lavorando in coordomogenee

Ci interessanotrasformazioni che sianolineari

)(

)(

uv

pq

f

f

=

=

)()()( qfpfqpf !"!" +=+

Trasformazioni affini

Preservano la colinearita’Tutti i punti inizialmente su una linea

giacciono ancora su di una linea dopo latrasformazione

EI rapporti tra le distanze

Il punto di mezzo di un segmento rimane ilpunto di mezzo di un segmento anche dopola trasformazione.

Trasformazioni Affini

Dato un punto ed una sua rappresentazioneOgni trasformazione lineare trasforma il puntonel punto che ha la stessa rappresentazionema in un altro sistema di coordinate.

)()()()()( 0332211 PfvfvfvfPf +++= !!!

0332211PvvvP +++= !!!

Trasformazioni Affini

quindi può sempre essere scritta intermini del rapporto che lega i duesistemi di riferimento

v=AuSe A è non singolare una trasf affine

corrisponde ad un cambio di coordinate

Trasformazioni Affini

In coordinate omogenee la matrice Adeve anche lasciare immutata la quartacomponente della rappresentazione

!!!!

"

#

$$$$

%

&

=

1000

34333231

24232221

14131211

''''

''''

''''

A

Trasformazioni Affini

Notare che se u è un vettore solo 9 elementi diA sono usati nella trasformazione

La quarta colonna corrisponde alla quarta rigadella matrice di cambiamento di frame, checonteneva il nuovo punto di origine del frame(che chiaramente non serve se si parla divettori)

!!!!

"

#

$$$$

%

&

!!!!

"

#

$$$$

%

&

=

01000

3

2

1

34333231

24232221

14131211

'

'

'

((((

((((

((((

Au

Trasformazioni Affini

Preservano le linee Consideriamo una linea espressa nella forma

parametrica

Consideriamone la sua rapp. in coordinateomogenee

A è una trasformazione affine

dPP !! += 0)(

dpp !! += 0)(

dAApAp !! += 0)(

Esercizio

Considerando che una trasformazioneaffine puo’ essere pensata come uncambio di frame, come è fatta unamatrice T che trasforma un puntospostandolo di un certo vettore Q?

Coordinate Omogenee

Si dice che un punto P èrappresentato dalla matricecolonna p

E un vettore w è rappresentatodalla matrice colonna a

!!!!

"

#

$$$$

%

&

=

1

3

2

1

'

'

'

p

!!!!

"

#

$$$$

%

&

=

0

3

2

1

'

'

'

a

Trasformazioni Affini

Notare che se u è un vettore solo 9 elementi diA sono usati nella trasformazione

La quarta colonna corrisponde alla quarta rigadella matrice di cambiamento di frame, checonteneva il nuovo punto di origine del frame(che chiaramente non serve se si parla divettori)

!!!!

"

#

$$$$

%

&

!!!!

"

#

$$$$

%

&

=

01000

3

2

1

34333231

24232221

14131211

'

'

'

((((

((((

((((

Au

Traslazione

modifica i punti di un frame sommandoa tutti i punti un vettore di spostamentod

dPP +=!

dpp' +=

Traslazione

!!!!

"

#

$$$$

%

&

=

!!!!

"

#

$$$$

%

&

'

'

'

='

!!!!

"

#

$$$$

%

&

=

011

z

y

x

dz

y

x

z

y

x

(

(

(

ppdpp' +=

!!!!

"

#

$$$$

%

&

=='

1000

100

010

001

z

y

x

(

(

(

TTpp

Traslazione

!!!!

"

#

$$$$

%

&

=

1000

100

010

001

),,(z

y

x

zyx '

'

'

'''T

!!!!

"

#

$$$$

%

&

'

'

'

'''='

1000

100

010

001

),,(),,(1

z

y

x

zyxzyx (

(

(

(((((( TT

Rotazione

Di una rotazione si deve specificareangolo,assepunto di

applicazione

Rotazione

Caso semplice asse z, intornoall’origine, di un’angolo θ

)sin(

)cos(

sin

cos

!"#

!"#

"#

"#

+=$

+=$

=

=

y

x

y

x

θ

ρ

(x’,y’)

(x,y)

Rotazione

!!!"#!"#

!!!"#!"#

"#

"#

cossincossinsincos

sincossinsincoscos

sin

cos

yxy

yxx

y

x

+=+=$

%=%=$

=

=

!"

#$%

&!"

#$%

& '=!

"

#$%

&

(

(

y

x

y

x

))

))

cossin

sincos

Rotazioni

!!!!

"

#

$$$$

%

&

+=

!!!!

"

#

$$$$

%

&

=

!!!!

"

#

$$$$

%

&

'

'

'

1

cossin

sin-cos

1

)(

1

z

yx

yx

z

y

x

Rz

y

x

Z

((

((

(

!!!!

"

#

$$$$

%

&

=

1000

0100

00cossin

00sin-cos

)(''

''

'Z

R

Rotazioni

!!!!

"

#

$$$$

%

&

=

1000

0cossin0

0sin-cos0

0001

)(''

'''

XR

!!!!

"

#

$$$$

%

&

=

1000

0cos0sin-

0010

0sin0cos

)(''

''

'Y

R

Rotazioni

Le matrici di rotazione viste finora sonofacilmente invertibili

Quindi basta trasporre…

)()(

)cos()cos(

)sin()sin(

)()(

1

1

!!

!!

!!

!!

TRR

RR

=

="

"="

"=

"

"

Rotazioni Complesse

Rotazioni centrate non sull’origineRotazioni su assi diversi da quelli

principali

Si ottengono per composizione ditrasformazioni

Scaling

Non rigida Non uniforme lungo gli assi Solo centrata rispetto

all’origine

!!!!

"

#

$$$$

%

&

=

=

=

=

1000

000

000

000

),,(

'

'

'

z

y

x

Xzyx

z

y

x

S

zz

yy

xx

'

'

'

'''

'

'

'

9 Ott 2002 Costruzione di Interfacce - PaoloCignoni

37

Cambi di Sistemi di riferimento

Il primo step della pipeline di renderingè quello di trasformare la scena nelsistema di riferimento della camera

Object Frame

Perché ogni oggetto ha il suo sistema diriferimento?Uso Multiplo di uno stesso oggettoPosizione parametrica