b-spl3d.mws

B-Spline 3D

Implementacia

Bazove funkcie

>    C0 := proc (t) (-t^3+3*t^2-3*t+1)/6 end proc; C1 := proc (t) (3*t^3-6*t^2+4)/6 end proc; C2 := proc (t) (-3*t^3+3*t^2+3*t+1)/6 end proc; C3 := proc (t) t^3/6 end proc
C0 := proc (t) (-t^3+3*t^2-3*t+1)/6 end proc; C1 := proc (t) (3*t^3-6*t^2+4)/6 end proc; C2 := proc (t) (-3*t^3+3*t^2+3*t+1)/6 end proc; C3 := proc (t) t^3/6 end proc
C0 := proc (t) (-t^3+3*t^2-3*t+1)/6 end proc; C1 := proc (t) (3*t^3-6*t^2+4)/6 end proc; C2 := proc (t) (-3*t^3+3*t^2+3*t+1)/6 end proc; C3 := proc (t) t^3/6 end proc
C0 := proc (t) (-t^3+3*t^2-3*t+1)/6 end proc; C1 := proc (t) (3*t^3-6*t^2+4)/6 end proc; C2 := proc (t) (-3*t^3+3*t^2+3*t+1)/6 end proc; C3 := proc (t) t^3/6 end proc

Suradnice riadiacich bodov

>    mx := linalg[matrix](4, 4, [
[0., 80., 160., 240.],
[0., 80., 160., 240.],
[0., 80., 160., 240.],
[0., 80., 160., 240.]]):
my := linalg[matrix](4, 4, [
[ 0.,   0.,   0.,   0.],
[80.,  80.,  80.,  80.],
[160., 160., 160., 160.],
[240., 240., 240., 240.]]):
mz := linalg[matrix](4, 4, [
[0.,  80.,  80.,  0.],
[80., 160., 160., 80.],
[80., 160., 160., 80.],
[0.,  80.,  80.,  0.]]):

Urcujuca siet

>    siet1 := PLOT3D(seq(CURVES([seq([mx[i,j], my[i,j], mz[i,j]],i = 1 .. 4)],COLOR(RGB,0,0,0)),j = 1 .. 4)); siet2 := PLOT3D(seq(CURVES([seq([mx[i,j], my[i,j], mz[i,j]],j = 1 .. 4)],COLOR(RGB,0,0,0)),i = 1...
siet1 := PLOT3D(seq(CURVES([seq([mx[i,j], my[i,j], mz[i,j]],i = 1 .. 4)],COLOR(RGB,0,0,0)),j = 1 .. 4)); siet2 := PLOT3D(seq(CURVES([seq([mx[i,j], my[i,j], mz[i,j]],j = 1 .. 4)],COLOR(RGB,0,0,0)),i = 1...

Vypocet krivky Q pre hodnoty parametra u, v

Q(u,v) = Sum(Sum(P[i,j]*Be[i](u)*Be[j](v),j = 0 .. 3),i = 0 .. 3)

>    Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...
Q := proc (u, v) local i, j, t, nx, ny, nz; nx := 0; ny := 0; nz := 0; for i to 4 do for j to 4 do t := C || (i-1)(u)*C || (j-1)(v); nx := nx+mx[i,j]*t; ny := ny+my[i,j]*t; nz := nz+mz[i,j]*t end do en...

Vykreslenie krivky

>    graf := plot3d(Q(u, v), u=0..1, v=0..1, grid=[5, 5]):
#Zobrazenie
plots[display3d]({siet1, siet2, graf});

[Maple Plot]

>