1 / 48

Trasformazioni 2D e 3D

Trasformazioni 2D e 3D. Daniele Marini Con contributi di Maurizio Rossi. L’ambiente per le trasformazioni. Spazio affine Coordinate omogenee Matrici. Richiami di geometria affine. - Spazio vettoriale lineare: operazioni di somma tra vettori

virgo
Download Presentation

Trasformazioni 2D e 3D

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Trasformazioni 2D e 3D Daniele Marini Con contributi di Maurizio Rossi

  2. L’ambiente per le trasformazioni • Spazio affine • Coordinate omogenee • Matrici

  3. Richiami di geometria affine - Spazio vettoriale lineare: operazioni di somma tra vettori Campo scalare; operazione prodotto vettore x scalare - Spazio affine: è costituito da un insieme di punti, uno spazio vettoriale associato e due operazioni: addizione vettore + punto; sottrazione punto-punto

  4. Richiami di geometria affine

  5. Orientamento nello 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 la scena

  6. 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 allo spazio 3D: solitamente si sceglie w=1

  7. Coordinate omogenee • Lo spazio 3D può anche essere considerato come lo spazio omogeneo del piano 2D:ogni punto nel piano 2D corrisponde a infiniti punti nello spazio omogeneo 3D che differiscono solo per un fattore moltiplicativo w:

  8. Matrici

  9. Trasformazione affine • una trasformazione affine preserva una combinazione baricentrica • la combinazione baricentrica è una somma pesata di punti dello spazio affine

  10. Trasformazioni affini • rappresentate con matrici • più trasformazioni possono essere combinate moltiplicando le matrici tra loro, creando una sola trasformazione • una trasformazione si ottiene in generale combinando trasformazioni lineari (rotazioni, scala e shear) seguite da una traslazione

  11. 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

  12. La trasformazione affine conserva le rette Possiamo descrivere un poliedro con i suoi vertici, facce e spigoli, questa proprietà ci garantisce che è necessario trasformare soltanto i vertici per trasformare tutto il poliedro

  13. Trasformare gli oggetti • le trasformazioni agiscono sui vertici dell’oggetto • denotiamo i vertici (punti) come vettore colonna v • R, T e S sono operatori di rotazione, traslazione e scala • il punto trasformato è quindi: v’ = v + Ttraslazione, v’ = S vscala, v’ = R v rotazione

  14. traslazione scala

  15. Due parametri per la rotazione:angolo, centro di rotazione rotazione attorno all’origine rotazione attorno al centro dell’oggetto: prima traslare poi ruotare poi contro-traslare

  16. La rotazione nel piano (x’,y’) x=r cosa (x,y) b y= r sin a a x’=r cos(a+b) = r cos acos b - r sin asin b = x cos b - y sin b y’=r sin(a+b) = r cos asin b + r sin acos b = x sin b + y cos b

  17. Traslazione, Rotazione e Scala sul piano sono espresse come trasformazioni nello spazio di coordinate omogenee 3D. Il vettore trasformato si ottiene pre-moltiplicando il vettore originale per la matrice di trasformazione: v’=T v

  18. Traslazione

  19. Scala

  20. Rotazione la matrice di rotazione ha determinante pari a 1

  21. Trasformazioni conformi • Preservano relazioni angolari • Considerare punti P come numeri complessi z=x+iy • Anamorfosi conica: z’=r/z* (in cui z*=x-iy è il complesso coniugato di z) • I punti P interni al cerchio sono proiettati all’esterno in P’ a distanza r/d e riflessi rispetto all’asse x e viceversa.

  22. Trasformazioni di Mœbius (Omografiche) z’ = (az+b)/(cz+d) con: ad-bc ≠ 0 al variare dei coefficienti complessi a,b,c,d si hanno: scala, rotazione, traslazione, inversione, ...

  23. 3D • Ambiente: spazio affine, coordinate omogenee 4D • Matrici, prodotto vettore per matrice

  24. Traslazione, Rotazione e Scala espresse come trasformazioni nello spazio di coordinate omogenee 4D come prodotto tra matrici coord. cartesiane coord. omogenee

  25. Scala coord. cartesiane coord. omogenee

  26. Scala

  27. Matrici di rotazione occorre specificare un asse di rotazione: attorno a x, y o z:

  28. ritroviamo la rotazione sul piano z=0 ! coord. cartesiane coord. omogenee

  29. 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.

  30. 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

  31. Possiamo applicare a ogni punto separatamente le matrici: • Oppure calcolare prima la matrice M: q A B C p M=C(B(A)) M q p

  32. Esempio: rotazione Ө attorno a un punto p 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  • Traslare inversamente nel punto p M=T-1RT

  33. Combiniamo le tre trasformazioni in un’unica matrice:

  34. Rotazione attorno a un punto e un asse generico

  35. Struttura di una generica matrice di trasformazione In generale una trasformazione composta è organizzata: rotazione traslazione

  36. Cambiamento di riferimento • Le trasformazioni si possono considerare applicate agli oggetti (punti in un s.d.r.) o come cambiamento di riferimento • In questo caso si esprimono i punti p in un nuovo s.d.r. p’; es. traslazione:

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

  38. Accumulare trasformazioni • Per modellare una scena complessa si possono accumulare trasformazioni • La scena è organizzata in una scene graph • Durante la modellazione si creano matrici di istanza, applicate a ogni singolo oggetto • Oggetti organizzati in gerarchia vengono raccolti e trasformati con nuove matrici che si accumulano sullo stack

  39. Stack di matrici • Attraversando la struttura della scena si cambiano le matrici di trasformazione gestendo lo stack • Nei moderni sistemi real-time le operazioni sulle matrici di trasformazione sono gestite dall’hardware apposito nella pipeline di rendering

  40. Classi di trasformazioni

More Related