HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Curve di interpolazione 1  (Letto 2022 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

marcomasetti

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 183
Curve di interpolazione 1
« il: 04 Agosto 2013, 11:51 »
Curve di interpolazione

Una curva di Bézier di grado n è costruita mediante equazioni parametriche con parametro t, omogenee di in t e in (t-1), dove i coefficienti seguono, come si è detto, i valori del triangolo di Tartaglia.
                                  1
                                 1 1
Ordine 2                 1 2 1
Ordine 3                1 3 3 1
Ordine 4               1 4 6 4 1
Ordine 5             1 5 10 10 5 1
Ordine 6           1 6 15 20 15 6 1

Elenchiamo le curve di Bézier di grado da 3 a 5 in termini vettoriali, indicando con Pi il punto iesimo del poligono di Bézier e con OQ il punto appartenente alla curva:
OQ=(1-t)^3*P1  + 3*(1-t)^2*t*P2 + 3*(1-t)*t^2*P3 + t^3*P4
OQ=(1-t)^4*P1  +  4*(1-t)^3*t*P2  +  6*(1-t)^2*t^2*P3  +  3*(1-t)*t^3*P4  +  t^4*P5
OQ=(1-t)^5*P1+5*(1-t)^4*t*P2+10*(1-t)^3*t^2*P3+10*(1-t)^2*t^3*P4+5*(1-t)*t^4*P5+t^5*P6
E’ evidente che per t=0 risulta OQ=P1 e che per t=1 si ha OQ=Pn
Derivando rispetto t si potrebbe anche verificare l’orientamento delle tangenti al primo e ultimo nodo.

I punti più significativi di un poligono di Bézier sono il primo e l’ultimo, che forniscono inizio e termine della curva, oltre al secondo e penultimo che definiscono il vettore tangente uscente da i suddetti due punti. I nodi intermedi non forniscono direttamente i punti di passaggio della curva.
Se volessimo costruire una curva che passa per n punti potremmo utilizzare una equazione analoga a quella di grado n inventata da Bézier. Con n=5 avremmo:
OP = (1-t)^5*P1+(1-t)^4*t*Q1+(1-t)^3*t^2*Q2+(1-t)^2*t^3*Q3+(1-t)*t^4*Q4+t^5*P6
I valori di Tartaglia sono stati omessi perché qui non necessari.

I vettori Q1,Q2,Q3,Q4 sono incogniti e rappresentano 3*4=12 incognite nello spazio, mentre nel piano si riducono a 2*4=8 incognite. Di fatto occorre il seguente sistema di 4 equazioni vettoriali:
OP2= (1-t1)^5*P1+(1-t1)^4*t1*Q1+(1-t1)^3*t1^2*Q2+(1-t1)^2*t1^3*Q3+(1-t1)*t1^4*Q4+t1^5*P6
OP3= (1-t2)^5*P1+(1-t2)^4*t2*Q1+(1-t2)^3*t2^2*Q2+(1-t2)^2*t2^3*Q3+(1-t2)*t2^4*Q4+t2^5*P6
OP4= (1-t3)^5*P1+(1-t3)^4*t3*Q1+(1-t3)^3*t3^2*Q2+(1-t3)^2*t3^3*Q3+(1-t3)*t3^4*Q4+t3^5*P6
OP5= (1-t4)^5*P1+(1-t4)^4*t4*Q1+(1-t4)^3*t4^2*Q2+(1-t4)^2*t4^3*Q3+(1-t4)*t4^4*Q4+t4^5*P6
Le 4 equazioni vettoriali rappresentano 3 oppure 2 sistemi lineari di 4 equazioni, a seconda se ci troviamo sul piano o nello spazio. Notiamo però che sono apparsi i nuovi valori ti=t1,t2,t3,t4 che entro certi limiti sono arbitrari, dovendo soltanto essere compresi tra 0 e 1. Ciò significa che esistono infinite soluzioni, a seconda dei valori che possiamo attribuire a t1,t2,t3,t4.  Per chiarire il significato di queste variabili, consideriamo un punto mobile che parte da P1 nel tempo t=0, che successivamente attraversa P2 in t=t1, P3 in t2, P4 in t3, P5 in t4, per arrivare in P6 per il valore temporale t=1.   A seconda dei valori che attribuiamo a t1,t2, t3, t4 il punto rimarrà più o meno tempo lungo un certo intervallo che separa i punti successivi. Se il tempo sarà più lungo si allungherà il percorso e quindi la curva relativa entro tale intervallo si dilaterà, a scapito delle altre porzioni.   Tali valori t hanno pure un preciso significato geometrico all’interno della curva costruita mediante il calcolatore come sequenza di m  segmenti, ovvero tramite m nodi. Posto m1=t1*m, otteniamo infatti il valore parametrico i1=m1  del nodo dove la curva assume valore P1, posto che il parametro i del loop vari da 0 a m. Infatti per t=0, ovvero i=0,  si ha il punto iniziale, mentre  per t=m ovvero i=m,  si ha il punto finale.  Conoscere il valore parametrico del nodo può servire per spezzare la curva in parti o per raccordarla con altre curve che la attraversino proprio sul nodo. Questa osservazione è fondamentale quando si usino curve di tal tipo per costruire superfici.
In conclusione questo tipo di costruzione, basata sull’interpolazione, non definisce una sola curva, ma fasci di curve algebriche, in questo caso di grado 5, dipendenti dai valori ti, che attraversano 6 nodi:
P1=(x1,y1,z1)
P2=(x2,y2,z2)
P3=(x3,y3,z3)
P4=(x4,y4,z4)
P5=(x5,y5,z5)
P6=(x6,y6,z6)
Potremmo ad esempio scegliere i valori ti in modo che il tempo trascorso sui primi 4 archi sia proporzionale alla lunghezza delle corde, diversamente un tempo troppo lungo su un arco lo incurverebbe  troppo:
m12=sqr((x2-x1)^2+(y2-y1)^2+(z2-z1)^2)
m23=sqr((x3-x2)^2+(y3-y2)^2+(z3-z2)^2)
m34=sqr((x4-x3)^2+(y4-y3)^2+(z4-z3)^2)
m45=sqr((x5-x4)^2+(y5-y4)^2+(z5-z4)^2)
t1=m12/( m12+m23+m34+m45+ m56)
t2=m23/( m12+m23+m34+m45+ m56)
t3=m34/( m12+m23+m34+m45+ m56)
t4=m45/( m12+m23+m34+m45+ m56)

Dal punto di vista pratico non si può andare oltre a n=6, dato che già qui si avrebbe uno script molto lungo, dovendo risolvere sistemi di 5 equazioni.