next up previous contents index
suivant: Un sapin monter: Des arbres précédent: Un arbre a p   Table des matières   Index

Un arbre ramifié

Ici on suppose que, du tronc de longueur h, il part p branches de longueur h/2. Ces branches donnent naissance à p - 1 branches de longueur h/4 etc... jusqu'à p = 2.

//tourne_gauche;saute(-80);arbre7(60,5)
arbre7(h,p):={
avance(h);
si (p>=2) alors
tourne_droite(90*(p-1)/p);
repete(p,arbre7(h/2,p-1),tourne_gauche(180/p));
tourne_droite(90*(p+1)/p);
fsi;
recule(h);
}
Puis on tape :
efface();
tourne_gauche ;
saute(-80);
arbre7(60,5);

En utilisant aussi la profondeur dans le test d'arrêt on tape :

//tourne_gauche;saute(-80);arbre8(90,5,3)
arbre8(h,p,n):={
avance(h);
si (p>=2 et n>=1) alors
tourne_droite(90*(p-1)/p);
repete(p,arbre8(h/2,p-1,n-1),tourne_gauche(180/p));
tourne_droite(90*(p+1)/p);
fsi;
recule(h);
}
Puis on tape :
efface();
tourne_gauche ;
saute(-80);
arbre8(60,5,3);
On obtient :


\begin{pspicture}(0.0000,0.0000)(14,4)
\psset{unit=0.02cm}
\psset{linewidth=.5pt...
...0)(300.0000,35.0000)
\psline(295.0000,20.0000)(300.0000,35.0000)
\end{pspicture}

Les 8 procédures ci-dessus se trouvent dans le fichier :
examples/tortue/arbre.cxx.
Exercice Refaire les exemples précédents mais en ne dessinant que la frondaison de l'arbre, c'est à dire l'arbre sans son tronc.
Une réponse Voici la réponse correspondant à arbre7 et à arbre8. Bien sûr, pour avoir la frondaison de arbre7(60,5) il faut taper arbre9(30,5) et pour avoir la frondaison de arbre8(60,5,3) il faut taper arbre10(30,5,3).

//tourne_gauche;saute(-80);arbre9(90,5,3)
arbre9(h,p):={
si (p>=2) alors
tourne_droite(90*(p-1)/p);
repete(p,avance(h),arbre9(h/2,p-1),recule(h),tourne_gauche(180/p));
tourne_droite(90*(p+1)/p);
fsi;
}
//tourne_gauche;saute(-80);arbre10(90,5,3)
arbre10(h,p,n):={
si (n>=1 et p>=2) alors
tourne_droite(90*(p-1)/p);
repete(p,avance(h),arbre10(h/2,p-1,n-1),recule(h),tourne_gauche(180/p));
tourne_droite(90*(p+1)/p);
fsi;
}


Documentation de giac écrite par Renée De Graeve