je suis entrain de faire un algorithme récursif pour tracer des points d'une courbe de Béziers à quatre points de contrôle mais il ne marche pas bien.
Voici ce que j'ai fais
le problème et qu'il ne me crée que les premiers points et que dès qu'il sont assez proche s’arrête sans me tracer les points dont j'ai mis le code en rouge.Bezier(a,f,b,g,c,h,d,j):={
si sqrt((b-a)²+(g-f)²)< 0.01 ou sqrt((c-b)²+(h-g)²)< 0.01 ou sqrt((c-d)²+(j-h)²)<0.01
alors [];
sinon
d:=(a+3*b+3*c+d)/8;
j:=(f+3*g+3*h+j)/8;
c:=(a+2*b+c)/4;
h:=(g+2*g+h)/4;
b:=(a+b)/2;
g:=(f+g)/2;
a=a;
f=f;
point(d,j);
Bezier(a,f,b,g,c,h,d,j);
a:=(a+3*b+3*c+d)/8;
f:=(f+3*g+3*h+j)/8;
b:=(b+2*c+d)/4;
g:=(g+2*h+j)/4;
c:=(c+d)/2;
h:=(h+j)/2;
d=d;
j=j;
point(d,j);
Bezier(a,f,b,g,c,h,d,j);
fsi
};
je pense qu'il faut que je modifie ce qui se trouva après le "alors" mais je ne sais pas comment.
merci d'avance