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

Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni [email protected] cignoni

Embed Size (px)

Citation preview

Page 1: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Costruzione di InterfacceLezione 4

Sistemi di riferimento e trasformazioni

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

Page 2: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Introduzione

Punti e vettori sono due cose diverseBasi e sistemi di riferimento

(coordinate systems and frames)Coordinate omogeneeTrasformazioni Affini

Page 3: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Punti e vettori

PuntoEntità il cui unico attributo è la sua

posizione rispetto ad un sistema di riferimento

VettoreEntità i cui attributi sono lunghezza

direzione

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

Page 4: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Spazio Vettoriale

Spazio dove ci sono due entità scalarivettori

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

wvu ,,

,,

Page 5: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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

Page 6: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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

332211 vvvw

3

2

1

a

3

2

1

v

v

v

w Ta

},,{ 321 vvv

Page 7: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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.

Page 8: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Sistemi di riferimento

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

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

3322110 vvvPP

Page 9: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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

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

Page 10: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Cambio sistemi di coordinate 2

Dato un vettore w

Ne ottengo la sua rappresentazione nell’altro sistema di coordinate usando la matrice M

332211 vvvw

3

2

1

a

3

2

1

v

v

v

w Ta

332211 uuuw

3

2

1

b bMa T

Page 11: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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.

Page 12: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Coordinate Omogenee

Per definire un frame bastano tre vettori ed un punto.

0332211 PvvvP

},,,{ 0321 Pvvv

0

3

2

1

321 ]1[

P

v

v

v

P

P

PP

0

1

Page 13: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Coordinate Omogenee

Si dice che un punto P è rappresentato dalla matrice colonna p

E un vettore w è rappresentato dalla matrice colonna a

13

2

1

p

03

2

1

a

Page 14: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Cambio di Frame

Dati due sistemi di riferimento.

Esprimiamo uno in termini dell’altro:

Questo definisce la matrice 4x4 di cambiamento di frame

03210321 ,,,,,, QuuuPvvv

03432421410

3332321313

3232221212

3132121111

PvvvQ

vvvu

vvvu

vvvu

1

0

0

0

434241

333231

232221

131211

M

Page 15: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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

bMaabb TTTT

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

Page 16: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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

)(

)(

uv

pq

f

f

)()()( qfpfqpf

Page 17: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Trasformazioni affini

Preservano la colinearita’Tutti i punti inizialmente su una linea

giacciono ancora su di una linea dopo la trasformazione

EI rapporti tra le distanze

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

Page 18: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Trasformazioni Affini

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.

)()()()()( 0332211 PfvfvfvfPf

0332211 PvvvP

Page 19: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Trasformazioni Affini

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

v=AuSe A è non singolare una trasf affine

corrisponde ad un cambio di coordinate

Page 20: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Trasformazioni Affini

In coordinate omogenee la matrice A deve anche lasciare immutata la quarta componente della rappresentazione

100034333231

24232221

14131211

A

Page 21: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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)

010003

2

1

34333231

24232221

14131211

Au

Page 22: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Trasformazioni Affini

Preservano le linee Consideriamo una linea espressa nella forma

parametrica

Consideriamone la sua rapp. in coordinate omogenee

A è una trasformazione affine

dPP 0)(

dpp 0)(

dAApAp 0)(

Page 23: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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?

Page 24: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Coordinate Omogenee

Si dice che un punto P è rappresentato dalla matrice colonna p

E un vettore w è rappresentato dalla matrice colonna a

13

2

1

p

03

2

1

a

Page 25: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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)

010003

2

1

34333231

24232221

14131211

Au

Page 26: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Traslazione

modifica i punti di un frame sommando a tutti i punti un vettore di spostamento d

dPP

dpp'

Page 27: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Traslazione

011z

y

x

dz

y

x

z

y

x

ppdpp'

1000

100

010

001

z

y

x

TTpp

Page 28: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Traslazione

1000

100

010

001

),,(z

y

x

zyx

T

1000

100

010

001

),,(),,(1

z

y

x

zyxzyx

TT

Page 29: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Rotazione

Di una rotazione si deve specificare angolo, asse punto di

applicazione

Page 30: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Rotazione

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

)sin(

)cos(

sin

cos

y

x

y

x

(x’,y’)

(x,y)

Page 31: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Rotazione

cossincossinsincos

sincossinsincoscos

sin

cos

yxy

yxx

y

x

y

x

y

x

cossin

sincos

Page 32: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Rotazioni

1

cossin

sin-cos

1

)(

1

z

yx

yx

z

y

x

Rz

y

x

Z

1000

0100

00cossin

00sin-cos

)(

ZR

Page 33: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Rotazioni

1000

0cossin0

0sin-cos0

0001

)(

XR

1000

0cos0sin-

0010

0sin0cos

)(

YR

Page 34: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Rotazioni

Le matrici di rotazione viste finora sono facilmente invertibili

Quindi basta trasporre…

)()(

)cos()cos(

)sin()sin(

)()(

1

1

TRR

RR

Page 35: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Rotazioni Complesse

Rotazioni centrate non sull’origineRotazioni su assi diversi da quelli

principali

Si ottengono per composizione di trasformazioni

Page 36: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

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

Page 37: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

9 Ott 2002 Costruzione di Interfacce - Paolo Cignoni

37

Cambi di Sistemi di riferimento

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

Page 38: Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it cignoni

Object Frame

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