Le trasformazioni Daniele Marini.

Slides:



Advertisements
Presentazioni simili
Le frazioni Vogliamo ampliare l’insieme numerico N con un insieme numerico nel quale sia sempre possibile eseguire la divisione . Per fare ciò dobbiamo.
Advertisements

Calcolo vettoriale E.F. Orsega – Università Ca’ Foscari di Venezia
Equazione e grafico Per gli alunni delle terze classi
L’ IPERBOLE.
Meccanica 6 21 marzo 2011 Cambiamento di sistema di riferimento
Sistema di riferimento sulla retta
Capitolo 4 Trasformazioni Geometriche
Capitolo 8 Sistemi lineari.
Geometria analitica dello spazio
COORDINATE POLARI Sia P ha coordinate cartesiane
LE MATRICI.
Cinematica diretta Un manipolatore è costituito da un insieme di corpi rigidi (bracci) connessi in cascata tramite coppie cinematiche (giunti). Si assume.
Cinematica del braccio di un robot
Elettrostatica 3 23 maggio 2011
Magnetostatica 3 6 giugno 2011
Meccanica 8 31 marzo 2011 Teorema del momento angolare. 2° eq. Cardinale Conservazione del momento angolare Sistema del centro di massa. Teoremi di Koenig.
Meccanica 2 1 marzo 2011 Cinematica in una dimensione
I sistemi di riferimento
Lez. 3 - Gli Indici di VARIABILITA’
Scalari e vettori In fisica si lavora con due tipi di grandezze: le grandezze scalari e le grandezze vettoriali. Le grandezze scalari sono quelle grandezze.
2ab2 2b4 4x − 2y a 3b2y3 3b2y3b Definizione e caratteristiche
Definizione e caratteristiche
Definizione e caratteristiche
a’ = f(a) Definizione e proprietà
angoli orientati negativamente se la rotazione avviene in verso orario
ELETTROMAGNETISMO APPLICATO ALL'INGEGNERIA ELETTRICA ED ENERGETICA
Elementi di Matematica
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Un manipolatore è costituito da un insieme di corpi rigidi (bracci) connessi in cascata tramite coppie cinematiche (giunti) a formare una catena cinematica.
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni
Costruzione di Interfacce Lezione 4 Nozioni di geometria per la grafica
Costruzione di Interfacce Lezione 4 Geometria per la grafica
Sistema di riferimento su una retta
Trasformazioni 2D e 3D Daniele Marini.
Lavorare con le matrici in OGL
Spazi vettoriali astratti Somma e prodotto di n-ple Struttura di R n.
Le operazioni con i numeri
Definizione di determinante
Il Piano Cartesiano .
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
TRASFORMAZIONI GEOMETRICHE
LA PARABOLA.
Le proiezioni e la prospettiva
LA CIRCONFERENZA.
Le proiezioni e la prospettiva
Le proiezioni e la prospettiva
Testi e dispense consigliati
Modelli di Illuminazione
Controllare le proiezioni
Corso Di Programmazione Grafica aa 2007/2008
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Trasformazioni Daniele Marini.
Corso Di Programmazione Grafica
Rotazioni e quaternioni
Corso Di Programmazione Grafica aa2006/2007
Controllare la prospettiva
Controllare la prospettiva
Le trasformazioni Daniele Marini Corso Di Programmazione Grafica aa 2005/2006.
Vettori dello spazio bidimensionale (R 2)
TRASFORMATA DI FOURIER
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Daniele Marini Con contributi di Maurizio Rossi
Prof. Giovanni Ianne I vettori.
1 Lezione XI Avviare la presentazione col tasto “Invio”
Le funzioni matematiche e il piano cartesiano
a’ = f(a) Definizione e proprietà
angoli orientati negativamente se la rotazione avviene in verso orario
Prof. Cerulli – Dott. Carrabs
Transcript della presentazione:

Le trasformazioni Daniele Marini

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

Richiami di geometria affine Spazio vettoriale lineare: operazioni di somma tra vettori Campo scalare e operazioni prodotto vettore per scalare Spazio affine, due nuove operazioni: addizione vettore - punto; sottrazione punto-punto

Richiami di geometria affine

Richiami di geometria affine

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

Trasformazioni affini La trasformazione affine conserva le rette, sia A una generica trasformazione, scriviamo in funzione del parametro t un segmento tra i punti p0 , p1 Siccome descriviamo poliedri mediante i vertici, le facce e gli spigoli, questa proprietà ci garantisce che possiamo trasformare soltanto i vertici: la relazione lineare tra punti e la topologia della struttura non cambiano.

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 una scena e istanziare più oggetti si applicano le trasformazioni affini, che cambiano il riferimento locale

Tipi di oggetti base Punti Vettori, corrispondono all’entità linea E’ definita l’operazioni di differenza tra punti: produce un vettore Vettori, corrispondono all’entità linea Sono definite le operazioni sopra ricordate Sono definite le operazioni tra punti e vettori sopra ricordate

V(t,w)=w(tP+(1-t)Q)+(1-w)R Tipi di oggetti base - 2 Piani: estensione della rappresentazione parametrica della retta; t,w sono parametri, P, Q ed R sono tre punti, con i quali possiamo identificare un piano; la retta tra P,Q si può scrivere: S(t)=tP+(1-t)Q la retta tra S e R si può ora scrivere: V(w)=wS+(1-w)R Combinando le due equazioni: V(t,w)=w(tP+(1-t)Q)+(1-w)R

V(t,w)=P+w(1-t)(Q-P)+(1-w)(R-P) Tipi di oggetti base - 3 Questa può essere considerata come equazione del piano per i tre punti P,Q,R: V(t,w)=P+w(1-t)(Q-P)+(1-w)(R-P) Q-P ed R-P sono due vettori u v, da cui V(t,w)=P+tu+wv Il piano può anche essere definito da un punto e due vettori non paralleli. Se 0≤t≤1 e 0≤w≤1 tutti i punti di V(t,w) sono interni al triangolo PQR Il vettore ortogonale a u e v è n=uxv quindi l’equazione del piano può anche essere scritta come: n.(P-Q)=0

Sistemi di coordinate e sistemi di riferimento (frame) Quanto detto fin’ora è indipendente da uno specifico sistema di coordinate La definizione di una base di vettori linearmente indipendenti e unitari permette di identificare un sistema di coordinate Se definiamo i tre versori con una medesima origine identifichiamo un sistema di riferimento (frame)

Un frame standard 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 In OGL sono definiti molti frames: Object o model frame World frame Eye (camera) frame Clip coordinates Normalized device coordinates Window (screen) coordinates Il passaggio da un frame all’altro avviene tramite trasformazioni

Cambiamento di riferimento Un cambiamento del sistema di riferimento consiste nel cambiare la base di vettori ortonormali La nuova base può essere espressa come combinazione lineare della vecchia base: Vecchia base: v1v2v3 Nuova base: u1u2u3 u1=a11v1+a12v2+a13v3 u2=a21v1+a22v2+a23v3 u3=a31v1+a32v2+a33v3 aij sono i coefficienti delle combinazioni lineari per esprimere la nuova base in funzione della vecchia Le equazioni non sono altro che il risultato del prodotto della matrice dei coefficienti per la vecchia base

Cambiamenti di riferimento Questi cambiamenti di riferimento lasciano invariata l’origine: se vogliamo traslare l’origine, non possiamo rappresentare il cambiamento con una matrice di 3x3 elementi. I cambiamenti di base possibili in questo modo sono quindi solo: rotazioni o scala (o shear)!

Classi di trasformazioni

Trasformare gli oggetti Le trasformazioni agiscono trasformando i vertici dell’oggetto nel sistema di riferimento originale, o come cambiamento di sistema di riferimento 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

Coordinate omogenee Spazio di 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

Coordinate omogenee In alto: il generico punto (x,y,z) in coordinate omogenee corrisponde a un unico punto sul piano z=1 In basso: l’operazione di somma in coordinate omogenee dei vettori u,v genera il vettore con estremo in R, che corrisponde anche alla somma in coordinate omogenee dei punti P, Q.

Coordinate omogenee Utilizzando le coordinate omogenee le trasformazioni necessarie alla modellazione possono essere espresse come matrici 4x4, e l’applicazione di una trasformazione a un punto si riduce a un prodotto vettore-matrice In particolare la traslazione viene espressa come

Traslazione

Rotazione

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

Scala

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. Le trasformazioni sono invertibili salvo la scala 0! Nota se M è una matrice ortogonale M-1=MT

Trasformazione generica rigida (niente scala!) Una trasformazione rigida generica può essere espressa come la concatenazione di una traslazione e una rotazione

Trasformazione delle normali La matrice M associata ad un oggetto può essere utilizzata per trasformare punti, linee e poligoni o generici vettori associati a punti di un piano. Però per la trasformazione delle normali deve essere utilizzata la matrice (M-1)T Per capire la ragione notiamo che se n è la normale a un piano e v è un vettore sul piano allora nTv=0, ma questa equazione si può scrivere considerando la matrice di trasformazione M: nTM-1Mv=0; Ovvero: nTM-1 è la trasposta del vettore normale trasformato Quindi la normale trasformata è la sua anti-trasposta: (M-1)Tn

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

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))

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

Rotazioni: Metodo di Eulero y Yaw - imbardata x -z Pitch - beccheggio Roll - rollio

Metodo di Eulero Purtoppo la rotazione non è commutativa: R1R2≠R2R1 Il metodo di Eulero costruisce le trasformazioni come moltiplicazione di matrici di rotazione intorno ai tre assi L’inversa della trasformazione può essere calcolata come Purtoppo la rotazione non è commutativa: R1R2≠R2R1

Rotazione di Eulero Sviluppiamo la concatenazione delle tre trasformazioni (scriviamo le matrici 3x3 per semplicità)

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

Rotazione intorno ad un asse generico Un altro modo per risolvere il problema è di considerare la rototraslazione nell’origine come un cambiamento di sistema di riferimento, cioè di base ortonormale, eseguendo quindi la rotazione attrono al nuovo asse, ad esempio x. x z y r t s y x z y r t s s r x t z

Cambiamento di base Sia r l’asse di rotazione desiderato, troviamo due nuovi versori ortogonali ad r che definiscono un nuovo riferimento. Per trovare il primo vettore ortogonale a r moltiplico r per uno dei versori del frame originale ex|y|z : ci sono due casi possibili: il nuovo vettore è parallelo a r oppure è ortogonale sia ad r sia ad ex|y|z ad es: r x ex = r x (1,0,0)T=(0,rz,-ry)=v

Cambiamento di riferimento Moltiplicando scalarmente il nuovo vettore trovato v.v, se è nullo r e ex sono paralleli, si cerca un altro vettore ortogonale a r ey|z Il vettore trovato sia s Il terzo vettore ortogonale a r ed s si determina con il prodotto vettore tra i due

Rotazione intorno ad un asse generico Il test per valutare il parallelismo tra r ed ex|y|z può essere semplificato come qui indicato Si noti che essendo M ortogonale, la sua inversa è MT

Gimbal Lock (blocco del giroscopio) Gimbal lock avviene quando le rotazioni sono concatenate in modo tale che un grado di libertà viene perso, ad es quando due assi di rotazione del giroscopio vengono a coincidere. Esempio: rotazione di 90° intorno all’asse z volendo ruotare ora intorno a x, a causa della rotazione precedente, otterremo una rotazione intorno a y

Gimbal Lock Se eseguiamo una rotazione di 90° attorno a y otteniamo: Abbiamo perso un grado di libertà!