Le mobile immobile

Un carré aux bordures bicolores

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

Aide

Obtenir une bordure à l'aide de stroke ne fonctionne pas puisque notre bordure doit présenter deux couleurs.

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

Un carré aux bordures bicolores centré

Modifiez le code du lutin défini dans l'exercice précédent pour que le centre du lutin coïncide avec le centre du repère.

Aide

Revoir la notion de viewBox.

Un code possible

L'avantage de centrer sur l'origine est ici de souligner les symétries dans les coordonnées des points.

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 une 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 la rotation désirée.

Un code possible

Le lutin sur le bord du manège

Placez maintenant le lutin au bord du manège.

Codez :

une aide

Vous pouvez à nouveau utiliser une translation.

Un code possible

Un second client pour le manège

Placez maintenant un second lutin au bord du manège :

une aide

Utilisez une rotation autour du centre du disque du manège.

Un code possible

Le manège rempli au quart

Remplir le manège au quart :

une aide

Utilisez une rotation autour du centre du disque du manège.

Un code possible

Un tour de manège

Complétez le tour de manège :

une aide

Donnez un nom au premier quart et faire subir une rotation à ce premier quart.

un code possible

Le succès du manège

On crée maintenant une deuxième rangée. Cette seconde rangée, plus sécurisée car intérieure, concerne des plus petits.

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".

Pour un tel changement d'échelle autour d'un point, vous pouvez relire la page concernant scale().

un code possible

Une troisième rangée

Tout est dans le titre ! A vous de codez. Cette troisième rangée est réservée aux petits.

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

A contre-sens

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

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 paramètre agissant sur les abscisses, le second sur les ordonnées.

Un code possible