bezier.mws

Bézierova krivka

>    restart; with(plots):

Warning, the name changecoords has been redefined

Bernsteinove polynomy

>    B0 := proc (t) (1-t)*(1-t)*(1-t) end proc; B1 := proc (t) 3*t*(1-t)*(1-t) end proc; B2 := proc (t) 3*t*t*(1-t) end proc; B3 := proc (t) t*t*t end proc
B0 := proc (t) (1-t)*(1-t)*(1-t) end proc; B1 := proc (t) 3*t*(1-t)*(1-t) end proc; B2 := proc (t) 3*t*t*(1-t) end proc; B3 := proc (t) t*t*t end proc
B0 := proc (t) (1-t)*(1-t)*(1-t) end proc; B1 := proc (t) 3*t*(1-t)*(1-t) end proc; B2 := proc (t) 3*t*t*(1-t) end proc; B3 := proc (t) t*t*t end proc
B0 := proc (t) (1-t)*(1-t)*(1-t) end proc; B1 := proc (t) 3*t*(1-t)*(1-t) end proc; B2 := proc (t) 3*t*t*(1-t) end proc; B3 := proc (t) t*t*t end proc

>    X := 0; Y := 1

Suradnice riadiacich bodov

>    p0[X] := 10: p0[Y] := 40:
p1[X] := 50: p1[Y] := 200:
p2[X] := 90: p2[Y] := 150:
p3[X] := 130: p3[Y] := 10:

>    c := seq([cat(p, i)[X], cat(p, i)[Y]], i=0..3);

c := [10, 40], [50, 200], [90, 150], [130, 10]

Body riadiaceho polymonu

>    body :=  PLOT(POINTS(c));

body := INTERFACE_PLOT(POINTS([10, 40],[50, 200],[90, 150],[130, 10]))

Riadiaci polymon

>    polyn := PLOT(CURVES([c],LINESTYLE(3),COLOUR(RGB,1,0,0)))

Krivka

>    krivka := plot([p0[X]*B0(t)+p1[X]*B1(t)+p2[X]*B2(t)+p3[X]*B3(t), p0[Y]*B0(t)+p1[Y]*B1(t)+p2[Y]*B2(t)+p3[Y]*B3(t), t = 0 .. 1],colour = BLUE)
krivka := plot([p0[X]*B0(t)+p1[X]*B1(t)+p2[X]*B2(t)+p3[X]*B3(t), p0[Y]*B0(t)+p1[Y]*B1(t)+p2[Y]*B2(t)+p3[Y]*B3(t), t = 0 .. 1],colour = BLUE)

>    display({body, polyn, krivka});

[Maple Plot]