L'invenzione delle curve di Bézier si deve a P.Bézier il quale studiò un metodo per il disegno di curve rispettando queste due esigenze:
1- La curva deve poter essere descritta matematicamente in modo da poter calcolare le coordinate spaziali di ogni punto su di essa.
2- La curva deve poter essere modificata liberamente intervenendo su un numero limitato di punti detti "punti di controllo"
Per poter rappresentare matematicamente una curva di Bézier si ricorre ad una famiglia di funzioni polinomiali: i polinomi di Bernstein i quali, opportunamente miscelati, ci permettono di descrivere la curva desiderata. Le proporzioni con cui i polinomi vengono miscelati dipendono dai punti di controllo scelti.
Facciamo un esempio per curve di Bezier di grado 3.
Consideriamo i quattro vertici di un quadrilatero di controllo C0,C1,C2,C3
Consideriamo inoltre le 4 funzioni di Bernstein B0(t) = (1-t)3; B1(t) = 3t(1-t)2; B2(t) = 3t2(1-t); B3(t) = t3 con t compreso tra 0 e 1
Al variare del parametro t tra i due estremi 0 e 1 individuiamo il punto P(t) della curva attraverso la formula:
P(t) = B0(t)C0 + B1(t)C1 + B2(t)C2 + B3(t)C3
torna suLe patches bilineari di Coons sono superfici delimitate da quattro curve dette curve di bordo che uniscono a due a due i 4 vertici di un quadrilatero sghembo. Nel nostro caso tali curve saranno sempre curve di Bézier. Ogni curva è descritta da una funzione parametrica di u o v con u e v tra 0 ed 1.
La superficie si ottiene per interpolazione bilineare delle quattro curve:
si generano due superfici distinte interpolando linearmente le due coppie di curve opposte e poi "sottraendo" dalla loro somma la superficie che interpola linearmente i quattro vertici opposti del quadrilatero. Il risultato ci darà la superficie ottenuta col metodo di Coons.
Matematicamente:
Consideriamo le quattro curve P1(u), P2(u), Q1(v), Q2(v)
Interpoliamo linarmente le coppie di curve opposte:
PC(u,v) = (1-v)P1(u) + vP2(u)
PD(u,v) = (1-u)Q1(u) + uQ2(v)
La superficie che interpola linearmente i quattro vertici è data da:
dove Pi,j con i,j = 1,2 sono i punti d'intersezione delle curve Qi , e Pj
La superficie risultante è data da:
P(u,v) = PC(u,v) + PD(u,v) - PC,D(u,v)
In questo progetto le 4 curve di bordo sono sempre scelte su 4 piani, paralleli all'asse z e incidenti sul piano x,y un quadrato di vertici
(20,20) (600,20) (20,600) (600, 600).
Dopo aver ottenuto una patch di Coons, è possibile calcolarne il discostamento dalla superficie determinata dai 4 vertici e calcolata tramite interpolazione lineare dei quattro vertici come spiegato sopra. Si noti che tale superficie è un piano se e solo se i 4 punti sono complanari.
Un punto generico della superficie di Coons
P(u,v) = (1-v)P1(u) + vP2(u) + (1-u)Q1(u) + uQ2(v) - (1-v)(1-u)P1,1 - u(1-v)P2,1 - (1-u)vP1,2 - uvP2,2
si discosta dal punto corrispondente della superficie interpolante
quando P(u,v) ≠ PC,D
La differenza tra le due superfici è quindi
Pdiff(u,v) = P(u,v) - (1-v)(1-u)P1,1 - u(1-v)P2,1 - (1-u)vP1,2 - uvP2,2
Nell'applicazione viene mostrata graficamente la differenza con la colorazione del punto sulla superficie, che sarà rossa quando
Pdiff(u,v) > 0
gialla quando le due superfici saranno conicidenti, ovvero se
Pdiff(u,v) = 0
e grigia se invecePdiff(u,v) < 0
torna su