Qui di seguito ci sono tre semplici programmi in C (si possono compilare sia in C che in C++).
Questi e altri programmi si trovano sul sito del libro G. Farin, Curves and surfaces for CAGD, Elzevier 2002
. Vanno solo completati con i dati iniziali e i comandi per l'output.
-
decas.c
Cosi' come e' scritto, usa l'algoritmo di De Casteljau per calcolare le coordinate del punto
sulla cubica di Bezier con poligono di controllo b0=(0,0,0), b1=(0.5,1,3), b2=(1,1,4), b3=(3,5,8), corrispondente al
valore del parametro t=0.5. Per calcolare altri punti sulla stessa cubica, basta assegnare altri valori a t,
all'interno del programma main(). Per calcolare punti su un'altra curva di Bezier, basta assegnare un altro valore al grado, e
agli array che contengono rispettivamente le coordinate x,y,z dei punti del poligono di controllo.
decas.c txt
-
aitken.c
Cosi' come e' scritto, usa l'algoritmo di Aitken per calcolare le coordinate del punto corrispondente al valore del parametro
t=0.5, sulla cubica di Lagrange passante per i punti p0=(0,0,0), p1=(0.5,1,3), p2=(1,1,4), p3=(3,5,8), ai tempi
t0=0, t1=1/3, t2=2/3, t3=1 equidistanti nell'intervallo [0,1]. Per calcolare altri punti sulla stessa cubica, basta
assegnare altri valori a t, all'interno del programma main(). Per calcolare punti su un'altra curva di Lagrange, basta
assegnare un altro valore al grado, e agli array che contengono rispettivamente le coordinate x,y,z dei punti per i quali
deve passare la curva (i tempi sono sempre presi equidistanti nell'intervallo [0,1]).
aitken.c txt
-
deboor.c
Cosi' come e' scritto, usa l'algoritmo di De Boor per calcolare le coordinate del punto corrispondente al valore del parametro
u=0.5, sulla curva B-spline di grado 3, con poligono di controllo d0=(-1,0,0), d1=(0,1,0), d2=(1,1,0),
d3=(1,2,0), d4=(0,2,0) e nodi 0, 0, 0.1, 0.2, 0.3, 0.4, 0.6, 1,1.
Poiche' u=0.5 si trova fra il sesto e il settimo nodo, si pone i=5.
Per calcolare altri punti sulla stessa cubica, basta
assegnare altri valori a u ed all'intero i, all'interno del programma main().
Per calcolare punti su un'altra curva B-spline, basta
assegnare altri valori al grado, agli array che contengono rispettivamente le coordinate x,y,z dei punti del poligono
di controllo, ed all'array che contiene i nodi.
deboor.c txt