Je crée un segment de droite dans l’espace géométrique de Rhino. J’actives grasshopper et je place  Curve (Param/Curve) et lui associer la ligne tracée dans Rhino .
J’ajoute un composant EndPoints  afin de récupérer les coordonnées de l’origine S et de l’extrémité  E de la ligne. Ces points sont les centre d’homothétie et de rotation pour appliquer les similitudes

Je place un composant Scale  pour appliquer à la ligne une transformation homothétique de centre S  et de rapport Sqrt (2)/2.
Je place un composant SquareRoot et un composant Division et je le relie au Panel contenant 2 à l’entrée x de SquareRoot et à l’entrée B de Division. Je relier la sortie y des SquareRoot à l’entrée A de Division. La sortie R de division produit le calcul de sqrt2/2.

Je place Rotation  pour appliquer à la ligne une rotation de centre S et d’angle pi/4 , j’ajoute le composant Scale  pour appliquer à la ligne une transformation homothétique de centre E  et de rapport racine de 2 sur 2. Puis  un composant Rotation pour appliquer à la ligne une rotation de centre E et d’angle -pi/4

exe1

 

Je place Curve et y joindre les deux sorties G des deux composant Rotate. J’ajoute  Panel  qu’indique le contenu du composant Curve de sortie, ce graphe décrit la règle de substitution de la grammaire de génération du crabe fractal.

Une solution choisi est de dupliquer tous le programme et de l’ajouter derrière la sortie Curve.

Je place un composant LoopStart  et un composant LoopEnd  afin de programmer le début et la fin du traitement récursif à effectuer.

Ajoutez un slider qui contrôlera un nombre entier d’itérations et le relier à l’entrée N du composant LoopStart.

J’ajoute  booléen qui  permet de réinitialiser le traitement récursif et le relier à l’entré T du composant LoopStart.

je relie la sortie D0 du composant LoopStart au paramètre d’entrée Crv de l’application de la règle de substitution,  puis je relie le paramètre de sortie Crv de l’application de la règle à l’entrée D0 du composant LoopEnd.

Relier la sortie > du composant LoopStart à l’entrée < du composant LoopEnd comme indiqué dans al figure suivante.

Placez un composant paramètre de type Curve  et le relier à l’entrée D0

 

2

 

Pour l’application de l’exercice  j’utilise plusieurs expression

sqrt 2/2    ENTRE  pi/4

3

sqrt 2/2     ENTRE   pi/3    -pi/3

1-3

sqrt2/2   entre 1/3    -1/3

sqrt-2-2-expressin-1-2