import graph; import animate; animation A=animation("decast3_a"); A.global=false; defaultpen(fontsize(30pt)); pen shortdashed=linetype(new real[] {5,5}); pair P0=(0,0), P1=(2,4), P2=(5,5), P3=(7,1); real x(real t) {return P0.x*(1-t)^3+P1.x*3*t*(1-t)^2+P2.x*3*t^2*(1-t)+P3.x*t^3;} real y(real t) {return P0.y*(1-t)^3+P1.y*3*t*(1-t)^2+P2.y*3*t^2*(1-t)+P3.y*t^3;} int NN=100; real h=1/NN; for(int i=-1; i < NN; ++i) { picture pic; size(pic,30cm,30cm); real t; if (i<0) t=0.65; else t=h*i; dot(pic,"$P_0$",P0, black+linewidth(6)); dot(pic,"$P_1$",P1, black+linewidth(6)); dot(pic,"$P_2$",P2, black+linewidth(6)); dot(pic,"$P_3$",P3, black+linewidth(6)); draw(pic,P0--P1,shortdashed+red); draw(pic,P1--P2,shortdashed+red); draw(pic,P2--P3,shortdashed+red); pair P01=(1-t)*P0+t*P1; pair P11=(1-t)*P1+t*P2; pair P21=(1-t)*P2+t*P3; dot(pic,"$Q_{0}$",P01,black+linewidth(6)); dot(pic,"$Q_{1}$",P11,black+linewidth(6)); dot(pic,"$Q_{2}$",P21,black+linewidth(6)); draw(pic,P01--P11,magenta+shortdashed); draw(pic,P11--P21,magenta+shortdashed); pair P02=(1-t)*P01+t*P11; pair P12=(1-t)*P11+t*P21; dot(pic,"$R_{0}$",P02, black+linewidth(6)); dot(pic,"$R_{1}$",P12,black+linewidth(6)); draw(pic,P02--P12,purple+shortdashed); pair P03=(1-t)*P02+t*P12; dot(pic,"$\mathbf{c}(t)$",P03,blue+linewidth(6)); draw(pic,graph(x,y,0,t),blue+linewidth(2)); A.add(pic); } A.movie(loops=3,delay=300);