Corso di Programmazione Grafica e Laboratorio Daniele Marini 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 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 y2 yP = ? y1 dy y2-y1 x1 xP x2
Interpolazione Lineare
Interpolazione Bi-lineare Considero due dimensioni di interpolazione Utilizzato per esempio all’interno di griglie regolari (es. texture) Peso i punti con delle aree P1 P2 A4 A3 P A1 A2 P3 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 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=limDt0(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
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)]