« Découvrir le SVG/Chemins » : différence entre les versions

Contenu supprimé Contenu ajouté
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Ligne 15 :
Comme pour les éléments <code>polyline</code> et <code>polygon</code>, les coordonnées sont exprimées en <code>px</code> et sont séparées par des espaces ou des virgules. Si plusieurs points se suivent, alors on considère qu'ils sont reliés entre eux. Ainsi, les syntaxes suivantes sont équivalentes et permettent de tracer un trait entre les points (0, 0) et ({{unité|50|px}}, {{unité|50|px}}) :
 
<sourcesyntaxhighlight lang="xml">
<path d="M 0 0 L 50 50" />
<path d="M0 0 L50 50" />
Ligne 22 :
<path d="M0, 0, 50, 50" />
</syntaxhighlight>
</source>
: Une instruction ne ''peut pas'' être précédée d'une virgule.
 
Ligne 33 :
 
Voici un exemple complet, à comparer avec celui du chapitre précédent ''[[../Éléments graphiques#Lignes et polygones|Éléments graphiques &gt; Lignes et polygones]]'' :
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
Ligne 48 :
 
</svg>
</syntaxhighlight>
</source>
Les commandes « aller à » permettent de faire un tracé interrompu, par exemple :
<sourcesyntaxhighlight lang="xml">
<path
d="M0 0, l50 50 m0 -50, l50 50"
stroke="black" fill="none"
/>
</syntaxhighlight>
</source>
 
Quatre commandes viennent faciliter le tracé :
Ligne 61 :
* les commandes <code>V</code> et <code>v</code> ''({{lang|en|vertical lineto}})'' : suivies d'un seul nombre, elles tracent une ligne verticale du point courant au point ayant la même abscisse et l'ordonnée indiquée.
Par exemple, le code source suivant trace un carré de côté 100 et parallèle aux axes du repère :
<sourcesyntaxhighlight lang="xml">
<path
d="M0 0 h100 v100 h-100 z"
stroke="black" fill="none"
/>
</syntaxhighlight>
</source>
 
== Arcs elliptiques ==
Ligne 83 :
* les coordonnées du point d'arrivée, ''x'' et ''y''.
Par exemple,
<sourcesyntaxhighlight lang="xml">
<path
d="M0 0
Ligne 89 :
stroke="black" fill="none"
/>
</syntaxhighlight>
</source>
va relier le point (0, 0) au point (10, 10) avec un arc d'ellipse incliné de {{unité|–15|°}}, dont le rayon ''x'' vaut 20 et le rayon ''y'' vaut 13, suivant le petit arc dans le sens positif.
 
Ligne 115 :
 
Avec les attributs <code>Q</code> et <code>q</code>, on définit le point d'arrivée (''x''<sub>2</sub>, ''y''<sub>2</sub>) et le point de contrôle intermédiaire (''x''<sub>1</sub>, ''y''<sub>1</sub>) : le code
<sourcesyntaxhighlight lang="xml">
<path
d="M0 0
Ligne 121 :
stroke="black" fill="none"
/>
</syntaxhighlight>
</source>
trace une courbe du point P<sub>0</sub>(0, 0) au point P<sub>2</sub>(10, 10) avec le point de contrôle intermédiaire P<sub>1</sub>(5, 2). Ainsi, la tangente en P<sub>0</sub> suit le vecteur P<sub>0</sub>P<sub>1</sub> (5, 2) et la tangente en P<sub>2</sub> suit le vecteur P<sub>1</sub>P<sub>2</sub> (5, 8).
 
Ligne 136 :
 
Pour tracer une telle courbe, on utilise les attributs <code>C</code> et <code>c</code> sous la forme
<sourcesyntaxhighlight lang="xml">
<path
d="Mx0 y0
Cx1 y1, x2 y2, x3 y3"
/>
</syntaxhighlight>
</source>
Les attributs <code>S</code> et <code>s</code> permettent d'avoir des courbes sans angles : le premier point de contrôle P<sub>1</sub> est le symétrique du point de contrôle précédent par rapport au point P<sub>0</sub>. La syntaxe est donc <code>Tx2 y2, x3 y3</code>.