La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Programmazione Grafica e Laboratorio Daniele Marini

Presentazioni simili


Presentazione sul tema: "Corso di Programmazione Grafica e Laboratorio Daniele Marini"— Transcript della presentazione:

1 Corso di Programmazione Grafica e Laboratorio Daniele Marini
Trasformazioni Corso di Programmazione Grafica e Laboratorio Daniele Marini

2 Concetti Spazio affine Coordinate omogenee Matrici
Traslazione, Scala, Rotazione, Shear Prodotto matrice-vettore colonna

3 Richiami di geometria affine
Spazio vettoriale lineare: operazioni di somma tra vettori Campo scalare e operazioni prodotto vettore per scalare Spazio affine: addizione vettore - punto; l’operazione di sottrazione punto-punto produce un vettore

4 Richiami di geometria affine

5 Richiami di geometria affine

6 Lo spazio affine Lo spazio può essere orientato in due modi:
mano sinistra: avvolgete la mano all’asse x e puntate il pollice verso x a sinistra, z (medio) viene verso di voi e y (indice) va verso l’alto mano destra: avvolgete la mano all’asse x e puntate il pollice verso x a destra, z (medio) viene verso di voi e y (indice) va verso l’alto Questo definisce il world coordinate system in cui sono definiti gli oggetti

7 Trasformazioni affini
Rappresentate tramite matrici Più trasformazioni possono essere combinate moltiplicando le rispettive matrici tra loro, creando una sola trasformazione Una trasformazione si ottiene in generale combinando trasformazioni lineari (rotazioni, scala e shear) seguite da una traslazione

8 Trasformazioni affini
La trasformazione affine conserva le rette Possiamo descrivere un poliedro con i suoi vertici, facce e spigoli, questa proprietà ci garantisce che possiamo trasformare soltanto i vertici

9 Definizione degli oggetti
Gli oggetti possono essere definiti in un proprio sistema di riferimento locale: i vertici dell’oggetto sono definiti rispetto a un orientamento proprio e naturale un oggetto complesso può essere decomposto in elementi più semplici col proprio riferimento locale e in seguito assemblato aggregando oggetti elementari un oggetto può essere istanziato più volte Per assemblare e istanziare un oggetto si applicano le trasformazioni affini, che cambiano il riferimento locale

10 Trasformare gli oggetti
Le trasformazioni agiscono sui vertici dell’oggetto Denotiamo i vertici (punti) come vettori colonna v R, T e S rappresentano gli operatori di rotazione, traslazione e scala Il punto trasformato è quindi: v’ = v + T traslazione v’ = S v scala v’ = R v rotazione

11 Coordinate omogenee Spazio delle classi di equivalenza: ogni punto in coordinate cartesiane 3D corrisponde a infiniti punti nello spazio omogeneo 4D che differiscono solo per un fattore moltiplicativo w: Il passaggio dallo spazio omogeneo e lo spazio 3D: solitamente si sceglie w=1

12 Coordinate omogenee Utilizzando le coordinate omogenee le trasformazioni necessarie alla modellazione possono essere espresse come matrici 4x4 In particolare la traslazione viene espressa come

13 Traslazione

14 Rotazione

15 Rotazione rotazione attorno all’origine rotazione attorno al
centro dell’oggetto: prima traslare poi ruotare poi contro-traslare

16 Scala

17 Trasformazioni inverse
Denotiamo le inverse come: T-1, S-1, R-1 La traslazione inversa si ottiene negando i coefficienti di traslazione La scala inversa si ottiene prendendo il reciproco dei coefficienti La rotazione inversa si ottiene negando l’angolo di rotazione. Nota se M è una matrice ortogonale M-1=MT

18 Trasformazione del corpo rigido
Per i corpi rigidi la matrice di trasformazione può essere espressa come la concatenazione di una traslazione e una rotazione

19 Trasformazione delle normali
La matrice M associata ad un oggetto può essere utilizzata per trasformare punti, linee e poligoni così come vettori direzione Per la trasformazione delle normali invece deve essere utilizzata la matrice N=(M-1)T Se la matrice M è ortogonale N=(MT)T=M Se M è composta da rotazioni, traslazioni e scale uniformi non ho problemi con le normali

20 Composizione di trasformazioni
Si possono applicare trasformazioni in successione, moltiplicando in ordine opportuno le matrici (associatività) v”=M2M1v = M2(M1v) =M2v’ la trasf. M1 viene applicata per prima! ricordiamo che il prodotto di rotazioni non è commutativo: R2R1 ≠ R1R2

21 Composizione di trasformazioni
Possiamo applicare a ogni punto separatamente le matrici: (se ho 1000 punti devo applicare le matrici singolarmente per ognuno) Oppure calcolare prima la matrice M: A B C p q M q p C(B(A))

22 Le trasformazioni per modellare
Da oggetti prototipo a loro “istanze” Tre trasformazioni nell’ordine: Scala Rotazione Traslazione Minst=T(R(S))

23 Trasformazioni di Eulero
y x head pitch roll

24 Trasformazioni di Eulero
Le trasformazioni di Eulero sono costruite come moltiplicazione di matrici di rotazione intorno ai tre assi L’inversa della trasformazione può essere calcolata come

25 Gimbal Lock Avviene quando le rotazioni sono concatenate in modo tale che un grado di libertà venga perso. Esempio: rotazione di 90° intorno all’asse x volendo ruotare intorno a z, a causa della rotazione precedente, otterremo una rotazione intorno a y

26 Gimbal Lock Esempio

27 Rotazione attorno a un punto e parallela a un asse
Traslare l’oggetto nell’origine, i coefficienti della traslazione T sono riferiti al punto p Ruotare attorno all’origine di un angolo q Traslare inversamente nel punto p M=T-1RT

28 Rotazione intorno ad un asse generico
Per ruotare un punto intorno ad un asse generico effettuo un cambiamento di sistema di riferimento e utilizzo le matrici di rotazione note x z y r t s y x z y r t s s r x t z

29 Rotazione intorno ad un asse generico


Scaricare ppt "Corso di Programmazione Grafica e Laboratorio Daniele Marini"

Presentazioni simili


Annunci Google