Le mobile immobile

Un carré aux bordures bicolores

Écrire un code svg permettant d'obtenir une figure telle que la suivante :

Aide

Une idée : créer en premier lieu deux triangles qui seront ensuite masqués par le carré. Seuls les bords des triangles apparaîtront encore, ce qui donne l'impression d'une bordure pour le carré.

Un code possible

Une bestiole carrée

Ajoutez deux yeux à notre carré :

une aide

Relisez le cours sur les ellipses si nécessaire et les pages sur translations et rotations.

code svg

Le lutin sur un manège

Codez :

une aide

Vous pouvez à nouveau utiliser translation et rotation.

En utilisant la balise <defs> </defs>, vous pouvez utiliser le code précédent du lutin tel quel sans qu'il soit dessiné. Puis utiliser la balise use pour lui faire subir les translation et rotation désirées.

Un code possible

Le succès du manège

Le bouche à oreille a fait son effet : le manège est maintenant rempli.

Codez :

un manège rempli de lutins

une aide

Gérez la partie répétitive avec javascript.

code (texte du code généré par js)

js et appendChild

Le succès du manège, bis

Pour améliorer la rentabilité du manège, on crée maintenant une deuxième rangée.

Codez :

un manège rempli de lutins

une aide

Plutôt que de créer à nouveau chaque lutin, ajoutez une balise groupe autour du code définissant la première rangée.

Il faut ensuite faire subir un "changement d'échelle autour du point centre du grand disque" (on parle en mathématiques d'homothétie).

Pour un tel changement d'échelle autour d'un point, vous pouvez consulter cette page.

texte du code svg créé avec js

js et appendChild

On commence dans cette version à créer un lutin de taille plus petite :

On lui fait ensuite subir la même rotation que le précédent :

Le succès du manège, ter

L'industrie du divertissement n'ayant aucun scrupule... on ajoute une troisème rangée !

Codez :

un manège rempli de lutins

une aide

On peut passer de la rangée 2 à la rangée 3 comme on est passé de la 1 à la 2.

Un code possible

un autre code

Le mobile immobile

On ajoute maintenant trois rangées, qui tournent en sens inverse.

Codez :

un manège rempli de lutins

une aide

Englobez le code des trois premières rangées dans une balise g et utilisez à nouveau scale().

scale() peut prendre deux paramètres, le premier agissant sur les abscisses, le second sur les ordonnées. Vous pouvez consulter cette page.

Un code possible

Le mobile immobile

Écrire une version snap.svg de la figure de l'exercice précédent.

Un code possible

Le mobile mobile

Écrire une version snap.svg de la figure de l'exercice précédent, dans laquelle les lutins tournent vraiment.

Un code possible