Grafica Comuazionale GUI: racball Fabio Ganovelli fabio.ganovelli@isi.cnr.i a.a. 005-006
Inerfacce di roazione Come uò un uene secificare una roazione ramie un inerfaccia? Due modalià: Direa: secifica valori numerici esai Ineraiva: ramie movimeni del mouse Come rareseno una roazione? Euler Angle Axis/angle Quaernions
Euler Angle Una roazione viene esressa come una serie di re roazioni sui re assi. Deriva dal modo con cui si descrive l orienameno di un aereo Yaw Pich Roll Inuiivo er iccoli valori di ich e roll
Euler Angle Problema ordine roazione Il risulao diende dall ordine in cui faccio le re roazioni Problema Gimbal Loc In alcune siuazioni le roazioni fae su un asse ossono corire uelle su un alro asse Se il ich è a 90 gradi yaw e roll si ossono annullare a vicenda.
Gimbal loc nelle inerfacce Caia ad esemio uando cerco di far secificare gli euler angle ineraivamene all uene: U/down: ro asse x Lef/righ: ro asse y Pgu/gdn: ro asse z Si incara.
Axis/angle Asse di roazione + angolo (come il comando OenGL/SofOgl) Si secifica un asse di roazione e un angolo di roazione Molo generico Poco inuiivo Qual e l asse di roazione er girare la esa in modo da guardare in basso a desra?
Tracball Si immagina una sfera solidale con la scena Ruoando la sfera si ruoa la scena La roazione della sfera è effeuaa rendendo un uno sulla suerficie e sosandolo Esaamene come il disosiivo di inu.
Tracball Cenro di roazione Come si fa? Poin of view Poin of view
Quaernioni Cos è un uaernione? Un esensione dei numeri comlessi Sesso raresenao come una coia scalare-veore: i i i i i segue dove z y x w + + + : 1 i i i i [ ] ) ( z y x dove w v v
Quaernioni Magniudo w + x + y + z Normalizzazione a uaernione uniario
Somma e rodoo Dai due uaernioni 1 w1 + x1i + y1 + z1 e w + xi + y + z w v e w v dove v ( x y z ) e v [ ] [ ] ( x y ) 1 1 1 1 1 1 1 z Vale: 1 + [ w1 + w v 1 + v] [ w w v v v w + w v + v ] 1 1 1 1 1 1 v Idenià somma rodoo I + I [ 0 (000)] [ 1 (000)]
Qualche rorieà Quaernione coniugao: [ w v] [ w v] Inverso di un uaernione (ranne che l idenià addiiva): 1 Se la are reale è 0 il uaernione è deo uro. Se il uaernione è uro vale: [ v v v ] 1 1 1 v
Quaernioni e roazioni Dao un uaernione uniario [ w ( v v )] 0 1 v e un veore in 3 dimensioni: ( 0 [0 0 1 1 ) chesi esende a uaernione ] uro come Il veore: [0 ] ' 0 1 È uguale al veore ruoao inorno all asse di cos 1 ( w ) v
Dimosrazione ) ( cos 1 w θ θ θ ' '' ] [ ] [cos θ ' ) ' ( ' ' 1 ' * Poiché e sono uniari ] [ ] [ 1 Poiché è uniario
Conversioni Da uaernione a marice 1 x xy xz + z wz wy xy 1 x yz wz + z wx Si ricava esandendo il rodoo: xz xy 1 x + wy wx y Da uaernione ad axis/angle [ w v] axis v / e angle arccos( w) v
Conversioni Da axis angle a uaernioni Da euler angle a uaernion ) cos( ) ( ) sin( ] [ ) ( θ θ θ w a a a w angle e a a a axis z y x z y x v v z y x c c z b b y a a x ))] (00sin( ) [cos( )0)] (0sin( ) [cos( )00)] (sin( ) [cos(
Eviare il gimbal loc Euler angle è molo inuiivo er iccole roazioni: se ruoo di angoli iccoli uello che oengo è esaamene uello che mi aseo Soluzione: Tenere la roazione come un uaernione Ad ogni ressione di aso generare un uaernione corrisondene al iccolo euler angle Ad es. se remolef genero un uaernione y δ δ [cos( ) (0sin( )0)] Comorre il risulao con molilicazione ra uaernioni e enere il risulao come base;
Tracball Come si maa il movimeno del mouse in una roazione? Si immagina una sfera circoscria all oggeo con cui si vuole ineragire Ogni drag del mouse definisce due uni 1 e (inizio e fine del drag) sulla sfera Si considera la roazione che descrive l arco di cerchio sulla suerficie sferica delimiao da 1 e
Tracball La roazione così calcolaa viene rasformaa in un uaernione e comosa con la rasf correne Se una vola rilasciao il mouse si coninua comorre con l ulimo uaernione calcolao si oiene l effeo di sinning.