Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site
Nous devons dessiner 4 carrés identiques : 100 par 100 avec une bordure de 5 bleu marine ; seule la couleur de fond change.
Extrait du code (canevas de 400 par 400) :
Le code est très redondant.
Extrait du code correspondant :
J'ai utilisé la balise defs pour définir une modèle de forme : un carré de 100 par 100 borduré de bleu marine.
Puis j'emploie la balise use pour dessiner à partir de ce modèle (clonage).
Il faut identifier le modèle ; ici #carré.
Ainsi la valeur de l'attribut xlink:href de la balise use devient : "#carre".
Si je redéfinis le modèle idéntifié "carré" dans la définition, les copies sont automatiqument modifiées.
On peut créer des modèles composés chacuns de plusieurs formes de base.
On définit en guise de modèles deux groupes de formes.
Notez l'emploi de l'élément G pour créer des groupes de formes.
La balise use dessine des copies fidèles du modèle. On dit que l'on procéde à un clonage.
Pour créer un modèle (sans le dessiner) composé d'un groupe de formes basiques on a utilisé la balise G à l'intérieur du conteneur defs
mais il y a une autre solution plus simple.
Sachez que la balise symbol remplace avantageusement les deux balises précitées.
Ci-dessous une image de 800 par 600 avec un modèle "homme" et un modèle "femme"
Pour chaque modèle on crée une zone de dessin de 100 par 100 avec l'attribut viewbox.
Les coordonnées des formes constitutives du modèle sont donc désormais indépendantes du canevas SVG mais liées au viewBox
associé à la balise symbol.
L'homme et la femme sont identiques sauf que chez la femme l'ellipse (tronc) est remplacée par un polygone (triangle symbolisant une robe).
Si un modèle est défini avec la balise symbol, les attributs width & height sont alors obligatoires au niveau de la balise use.