// Le même exemple que celui ci-dessus, // avec des instructions de l'extension geometry. import geometry; unitsize(1cm); point z0=(0,0), c0=(1,3), c1=(5,5), z1=(7,0); segment z0c0=segment(z0,c0), c0c1=segment(c0,c1), c1z1=segment(c1,z1); point m0=midpoint(z0c0), m1=midpoint(c0c1), m2=midpoint(c1z1); segment m0m1=segment(m0,m1), m1m2=segment(m1,m2); point m3=midpoint(m0m1), m4=midpoint(m1m2); segment m3m4=segment(m3,m4); point z2=midpoint(m3m4); // Courbe (spline) de Bézier cubique (définie par 4 points). path CourbeBezier = z0 .. controls c0 and c1 .. z1; draw(CourbeBezier,2bp+blue); // Les traits de construction. draw(z0c0^^c0c1^^c1z1^^m0m1^^m1m2^^m3m4,dashed); // Pour finir, on place les points en les étiquetant. dot("$z_0$",z0,S,red); dot("$z_1$",z1,S,red); dot("$c_0$",c0,N,green); dot("$c_1$",c1,N,green); dot("$m_0$",m0,NW); dot("$m_1$",m1,N); dot("$m_2$",m2,NE); dot("$m_3$",m3,N); dot("$m_4$",m4,N); dot("$z_2$",z2,N,purple); shipout(bbox(3mm,white));