• Non ci sono risultati.

Computer Graphics

N/A
N/A
Protected

Academic year: 2021

Condividi "Computer Graphics"

Copied!
4
0
0

Testo completo

(1)

1

Computer Graphics

Marco Tarini Università dell’Insubria

Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2011/12

Mirco Lezione:

Mirco Lezione: Mirco Lezione:

Mirco Lezione: rotazioni in R 3

Reminder

• Tutte e sole le isometrie (trasf. rigide)

= roto-traslazioni

= rotazioni (*) + traslazioni

• Rotazioni (*) : – quante possibili?

– come rappresentarle (internamente)?

(*) generiche = attorno ad assi passanti per l’origine

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Rotazioni in R3: quante possibili?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a R0R0

R0R0

R1 R1 R1 R1

R2R2 R2R2

R3R3 R3R3

R4 R4 R4 R4

R5 R5 R5 R5

R6R6 R6R6

R7 R7 R7 R7

R8 R8 R8 R8

R9 R9 R9 R9

RRR R10101010

R11 R11R11 R11

R12 R12R12 R12

R13R13R13 R13

etc etc

Rotazioni in R3: quante possibili?

R0 R0R0 R0

(e ovviamente includono l’identità)

Reppresentazioni possibili per rotazioni

• Buone (o meno) per:

– coincisione

• quanto sono prolisse?

– facilità di applicazione

• quanto è oneroso applicare la rot ad uno (o ventimila) punti / vettori?

– interpolabilità

• è possibile/facile trovare un’inerpolazione fra N rotazioni date?

• quanto è “buono” il risultato – combinabilità

• è facile trovare la risultante di N rotazioni date, eseguite in successione?

– invertibilità

• è facile trovare l’inversa?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Per paragone:

reppresentazione interna delle traslazioni

• Banale:

vettore di displacement (tre float)!

– perfetta secondo tutti i criteri (verificare!)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

(2)

2

Reppresentazioni possibili per rotazioni

• Molte possibili,

con vantaggi e svantaggi diversi

• Tutte molto diffuse ed usate

• Modi per passare da una rappr. all’altra?

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Perché è utile interpolare rotazioni:

esempio: animazioni

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

tempo 100

tempo 200 tempo 150

R 1

R 2

R i ?

Perché è utile cumulare rotazioni:

esempio: scenegraph R c

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

R 0

R 1 R 2

R 3 R 4 R 5 R 6

“ R

3

seguito da

R

0

Reppresentazioni principali delle rotazioni

• Matrici 3x3

• Angoli di Eulero

• Asse + angolo

• Quaternioni

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Modo 1: matrice 3x3 (9 floats)

• (sottomatrice 3x3 della matrice di rot 4x4)

• come sappiamo, R ortonormale con det = 1

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

R 0 0 0

1 0 0 0

Modo 1: matrice 3x3 (9 floats)

• Prolissa (9 numeri invece di 3)

• Abb. facile da appliare (molt matrice-vettore)

– come sappiamo, cumulabile con qualunque altra trasf. affine

• Abb. facile da cumulare (molt matrice-matrice)

• Facilissima da invertire (trasposiz matrice)

• Problematica da interpolare:

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

R 0 0

k + h

R 1 1 = M in genere NON

di rotazione (non ortonormale)

perché?

(3)

3

Modo 2: angoli di eulero (3 floats)

• Qualunque rotazione (*) può essere espressa come:

– rotazione lungo asse X (di α gradi), seguita da:

– rotazione lungo asse Y (di β gradi), seguita da:

– rotazione lungo asse Z (di γ gradi) :

• Angoli α β γ :

“angoli di Eulero” di quella rotazione

– (quindi: le “coordinate” di quella rotaz)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

oridine (X-Y-Z) arbitrariamente scelto, (ma 1 volta x tutte)

Modo 2: angoli di eulero (3 floats)

• In linguaggio nautico / areonautico:

angoli di “rollio, beccheggio, imbardata”

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

rollio

( roll ) beccheggio

( pitch ) imbardata ( yaw )

Modo 2: angoli di eulero (3 floats)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

• Implementaz.

fisica:

“mappamondo a tre assi”

Modo 2: angoli di eulero (3 floats)

• Coincisione: perfect!

• Da applicare: facilino

– (se a molti punti, meglio passare a matrice)

• Da interpolare: possibile…

– intrerpolaz dei tre angoli – (occhio ad interpolare angoli:

ricordarsi equivalenza angoli: α = α +360 (k) )

…ma risultati non sempre intuitivi)

• Da cumulare e invertire: problematico…

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

perché sommare e invertire gli angoli non funziona?

da: angoli di eulero a: matrice 3x3

• Facile!

• Il viceversa?

– (solo a suon di conti e funz trigon. inverse)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

( ) ( ) ( ) γ y β x α

z R R

R

M = ⋅ ⋅

Modo 3: asse e angolo

• Qualunque rotazione (*) data può essere espressa come:

– una (sola!) rotazione (di un angolo angolo angolo angolo ) attorno ad un asse asse asse asse

• Angolo: Angolo: Angolo: Angolo: uno scalare (1 float)

• Asse: Asse: Asse: Asse: un vettore normale (3 float) – (asse passante per l’origine)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

opportunamente

scelti

(4)

4

Modo 3: asse e angolo

• Coincisione: molto buono

• Interpolazione: ottimo!

– interpolare asse, intrerpolare angolo (nb: rinormalizzare asse!)

• Applicare: male 

– modo migliore: passare a matrice 3x3 (o a quaternione)

• Cumulare: male 

• Invertire: facilissimo

– (invertire angolo oppure asse)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Modo 3: asse e angolo: variante

• asse: v (vett normale, |v | = 1)

• angolo: α (scalare)

• rappresentarli internamente come 1 solo vett: v’ (3 float in tutto)

v’ = α v

• angolo α = |v’ |

• asse v = v’ / |v’ |

• (nota: se angolo = 0, asse si perde… infatti non conta)

• Più coinciso, ma per il resto equivalente

• (comune es. in fisica)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

da: asse e angolo a: matrice 3x3

• esercizio!

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Modo 4: “quaternioni” (4 float)

• Solo alcuni cenni:

– analogo (in 4D) dei numeri complessi (in 2D) – struttura simile ad asse + angolo:

q = ( asse x , asse y , asse z , cos( angolo / 2) )

| q | = 1

– teoria molto elegante e solida – un altro “vec4” molto utile!

– storia:

• roba di mezz’800!

• cross e dot products emergono dalla loro teoria!

• quasi nati per lo scopo (rappresentare rotazioni)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Modo 4: “quaternioni” (4 float)

• Coincisione: quasi perfetto

• Cumulare: facillimo ;)

• Invertire: facillimo ;)

• Interpolare: facillimo ;) e best results!

• Applicazione diretta: facillimo ;)

– (ma, per cumulare con altre trasformazioni, meglio passare a forma matriciale cmq)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h I c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Riferimenti

Documenti correlati

• Il foglio con il testo, compilato con nome e cognome ed eventualmente numero di matricola, va consegnato assieme alla bella copia.. Non si consegnano

• Il foglio con il testo, compilato con nome e cognome ed eventualmente numero di matricola, va consegnato assieme alla bella copia.. Non si consegnano

• Il foglio con il testo, compilato con nome e cognome ed eventualmente numero di matricola, va consegnato assieme alla bella copia.. Non si consegnano

• Il foglio con il testo, compilato con nome e cognome ed eventualmente numero di matricola, va consegnato assieme alla bella copia.. Non si consegnano

• Il foglio con il testo, compilato con nome e cognome ed eventualmente numero di matricola, va consegnato assieme alla bella copia.. Non si consegnano

(Suggerimento: si identifichi la proba- bilit`a che una macchina superi il limite di velocit`a con la proporzione corrispondente nella tabella precedente; quindi, trattare il

(6 punti) Da un’urna che contiene 20 palline bianche e 30 nere vengono estratte 4 palline con reimbussolamento.. Qual`e la probabilit`a che venga estratta per 3 (tre) volte una

In una data universit`a, la frazione di professori ordinari, professori associati, ricercatori ed istruttori `e rispettivamente del 30, 40, 20 e 10 percento1. Qual`e la probabilit`a