Vous êtes ici : Accueil > Cours > SVG > Les formes SVG
Les formes SVG
Le langage SVG possède un ensemble de formes de base prédéfinies comme les rectangles, les cercles ou encore les lignes. Mais pas seulement. Il existe un élément essentiel et incontournable qui permet de créer toutes les formes imaginables, l'élément path.
Les rectangles et les carrés :
En SVG, un rectangle (ou un carré) se présente comme ceci :
Pour dessiner ce carré, on utilise la balise <rect/> dans laquelle on renseigne les attributs tels que :
x : détermine l’abscisse de départ
y : détermine l’ordonnée de départ
width : détermine la longueur
height : détermine la hauteur
Dans cet exemple, nous avons donc dessiné un carré de 100px de hauteur et de largeur. Par défaut, il s'agit de l'unité pixel. Mais vous pouvez utiliser d'autres unités :
Le millimètre : mm
Le centimètre : cm
Le pouce : in
Le pica : pc
Le point : pt
em
ex
Le pourcentage %
A titre de comparaison, en CSS, il suffirait de faire quelque chose comme ceci :
Il existe également deux attributs permettant, comme en CSS avec la propriété border-radius, de créer des coins arrondis.
En effet, les attributs rx et ry déterminent respectivement le rayon de coin horizontal et le rayon de coin vertical. A noter que si vous souhaitez donner la même valeur aux deux attributs, vous pouvez ne renseigner que l'un des deux attributs. Un exemple ci-dessous :
💡 A retenir à propos des rectangles et des carrés en SVG :
- Si les attributs width et height ne sont pas renseignés, dans ce cas, ceux-ci seront définis à 100%.
- Les rectangles sont dessinés à partir de leur coin supérieur gauche (en haut à gauche).
- Par défaut, les rectangles sont noirs si aucun remplissage n’est indiqué.
- L’élément rect est "auto-fermant".
- Les rectangles qui apparaissent après dans le code seront positionnés au dessus des éléments qui les précèdent s’il y a chevauchement.
💡 A retenir à propos des lignes polygonales et des polygones en SVG
L’élément polygon est "auto-fermant".
On construit un polygone en utilisant les coordonnées x et y, à partir du coin en haut à gauche. Celles-ci fonctionnent par paires, séparées par une virgule.
Il n'y a pas de direction établie dans l'ordre des points. Par exemple, concernant le triangle plus haut, on aurait pu écrire points:0 100, 50 15, 100 100 au lieu de points:50 15, 100 100, 0 100.
Vous pouvez vous passer de reprendre la première paire de coordonnées, la fermeture de la forme se fait automatiquement.
Les chemins en SVG sont représentés par l'élément path. C'est en quelque sorte un élément passe-partout permettant de créer n'importe quelle forme, y compris celles que l'on vient de détailler ci-haut.
L'élément path est plus complexe à appréhender dans le sens où il s'agit d'une succession de points qui n'invite pas à la compréhension de prime abord.
L'élément path n'a besoin que d'un seul attribut pour fonctionner : d (c'est aussi une propriété CSS).
Les données contenues dans cet attribut vont être organisées par commandes. Il en existe dix dont les deux plus utilisées sont Moveto et Lineto (symbolisées respectivement par les lettres M et L). Une troisième commande très importante qui va permettre de fermer un chemin est closepath (symbolisée par la lettre Z).
💡 Cette commande n'est pas à négliger. En effet, on pourrait penser qu'il suffit de fermer le chemin en utilisant un slash (comme avec les autres formes de base). Vous allez comprendre pourquoi avec cet exemple comparatif, vous devez fermer tous vos chemins avec la commande Z.
💡 A noter que la commande Lineto possède deux commandes raccourcies, à savoir H et V qui vont permettre de tracer des lignes horizontales (H) et verticales (V).
Un exemple ci-dessous :
<svg width="300" height="300">
<path d="M 100,100 H 200 V 200 H 100 Z"/>
</svg>
Votre navigateur est trop ancien pour afficher le contenu de ce site.