Superfici costruite col metodo di Coons e calcolo della curvatura gaussiana

Progetto realizzato per il corso di Geometria Computazionale, a.a. 2008/09

Paolo Rossi #702767 - Francesco Noya #702915

Richiami Alla Teoria

Curve di Bézier

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 su

Patch di Coons

Le 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:

formula piano interpolato di coons

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).

torna su

Discostamento della patch di Coons

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

formula piano interpolato di coons

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 invece

Pdiff(u,v) < 0

torna su