Interpolazione
Corso di
Programmazione Grafica e Laboratorio
Daniele Marini
Interpolazione
• Essenziale nei problemi di animazione:
– date due posizioni “chiave” relative al
fotogramma al tempo t0 e al tempo t1
determinare le posizioni intermedie relative a
ogni singolo fotogramma
– Occorre garantire regolarità nel movimento
– Le posizioni possono riguardare oggetti,
fotocamera o altro
Interpolazione Lineare
• Definisce un percorso rettilineo tra due
punti in uno spazio n-dimensionale
• Una dimensione di interpolazione
Interpolazione Lineare
t=1
• Data due punti P1 e
P2 definisco una
funzione nel
parametro t[0,1]
P(t) = P1 + t (P2 – P1)
= (1-t)P1 + t P2
P2
P(t)
t=0
P1
Interpolazione Lineare
• Nel piano, dati due punti (x1,y1) e (x2, y2) si
vuole calcolare (xP, yP) conoscendo il
valore di xP
y1
x1
y2
yP = ?
dy
xP
y2-y1
x2
Interpolazione Lineare
yP  y1  dy
valgono i rapporti:
y2  y1
( y2  y1 )( xP  x1 )
dy

 dy 
xP  x1 x2  x1
x2  x1
quindi
( y2  y1 )( xP  x1 )
yP  y1 
x2  x1
Interpolazione Bi-lineare
• Considero due dimensioni di interpolazione
• Utilizzato per esempio all’interno di griglie
regolari (es. texture)
• Peso i punti con
P
delle aree
1
A4
P2
A3
P
A1 P1  A2 P2  A3 P3  A4 P4
P
A1  A2  A3  A4
A2
P3
A1
P4
Interpolazione quadratica e cubica
• L’interpolazione lineare calcola i valori
intermedi utilizzando l’equazione della
retta (grado 1) passante per i due punti
• Possiamo considerare anche equazioni di
grado più alto (secondo o terzo) per
ottenere interpolazioni più precise, ma
abbiamo bisogno di più punti
Curve parametriche
• Quando interpolo tra due punti
l’interpolazione lineare è sufficiente
• Quando ho più punti posso usare
interpolazione lineare tra ogni coppia di
punti successivi ma ottengo un percorso
che presenta discontinuità di curvatura nei
punti
Curve parametriche
• Per risolvere il problema posso utilizzare
una curva di grado stabilito che interpoli o
approssimi i punti.
• La curva avrà equazione
C (t )  f ( P1 , P2 ,..., PN ; t )
t [0, tmax ]
• Esistono differenti schemi di costruzione
della curva (Bezier, B-Spline, NURBS,etc)
Richiami di cinematica
• Consideriamo un corpo puntiforme
• Velocità media: quantità vettoriale
(direzione e modulo)
v=Ds/Dt
• Velocità instantanea
v=limDt0(Ds/Dt)=ds/dt
Richiami di cinematica
• Dato il vettore velocità per un punto
v(x,y,z) e definito l’intervallo di tempo dt
• Calcoliamo la nuova posizione s(x,y,z) del
punto dovuta allo spostamento nel tempo
dt
 sx
 sx  dt vx
 (t  dt )
(t )
 s y  dt v y
sy
 (t  dt )
(t )
 sz  dt vz
 sz
( t  dt )
(t )
Animazione su un percorso
• Consideriamo un punto P che si muove su di un
percorso definito tramite la curva parametrica
C(t)
• Consideriamo t come parametro temporale per il
moto
• Il tipo di parametrizzazione della curva influenza
il tipo di moto
• Per ottenere un moto uniforme dobbiamo
considerare una parametrizzazione sulla
lunghezza della curva: t [0,len(curva)]
Scarica

15_Interpolazione