Page d'accueil
Thèmes d'activités
<< Thème précédent
Thème suivant >>
Flocons de Von Koch
Corrigé du thème
L'algorithme de Von Koch consiste , à partir d'un segment donné, à le diviser en 3 segments de
même longueur et à remplacer le segment central par les 2 côtés d'un triangle équilatéral construit
extérieurement à partir de ce segment central.
Ecrire une procédure
Von_Koch(
n
:: nonnegint ,
xa,ya,xb,yb
)
récursive
qui, à partir du segment
initial dont les extrémités ont pour coordonnées (
) , (
) (ordre
) , construit la séquence
des coordonnées des points constituant la figure d'ordre
n
.
Exemple:
on part du segment d'extrémités (
),(
) (ordre
) , et on construit les figures d'ordre
,2,3,...
>
plot([Von_Koch(0,0,0,1,0)],axes=none,scaling=constrained);
>
plot([Von_Koch(1,0,0,1,0)],axes=none,scaling=constrained);
>
plot([Von_Koch(2,0,0,1,0)],axes=none,scaling=constrained);
>
plot([Von_Koch(3,0,0,1,0)],axes=none,scaling=constrained);
Corrigé:
Énoncé du thème
>
Von_Koch:=proc(n::nonnegint,xa,ya,xb,yb)
local x1,y1,x2,y2,x3,y3;
if n=0 then [xa,ya],[xb,yb]
else
x1:=evalf((2*xa+xb)/3);y1:=evalf((2*ya+yb)/3);
x3:=evalf((xa+2*xb)/3);y3:=evalf((ya+2*yb)/3);
x2:=evalf(1/2*(x1+x3-sqrt(3)*(y3-y1)));
y2:=evalf(1/2*(y1+y3+sqrt(3)*(x3-x1)));
Von_Koch(n-1,xa,ya,x1,y1),Von_Koch(n-1,x1,y1,x2,y2),Von_Koch(n-1,x2,y2,x3,y3),Von_Koch(n-1,x3,y3,xb,yb);
end if
end proc;
>
plot([Von_Koch(5,0,0,1,0)],axes=none,scaling=constrained);
>
plot({seq([Von_Koch(k,0,0,1,1)],k=0..5)},axes=none,scaling=constrained,color=black);
|