{{tag>cours fun-mooc inkscape cao fablab}}
====== Inkscape: les chemins ======
Dans Inkscape, les chemins vont permettre de dessiner des formes complexes. Lorsqu'on utilise les opérations d'union et de différence sur des objets de base par exemple, on obtient un chemin.
Pour modifier un objet chemin, il faut sélectionner l'outil d' **édition des nœuds** (raccourcis F2). Les nœuds sont les points qui contrôlent la forme.
* Par cliquer/glisser on peut déplacer les nœuds et modifier la forme du chemin;
* Par cliquer/glisser sur un segment, on le transforme en courbe.
* En double cliquant sur un segment ou une courbe on introduit un nouveau nœud;
* Pour supprimer un nœud, on le sélectionne et on appuie sur la touche suppr. Inkscape calcule alors une courbe pour remplacer les deux lignes précédentes.
On peut modifier une forme de base en chemin via le menu **Chemin** -> **Objet en chemin**.
Les chemins peuvent être créés par transformation d'objets primitifs mais on peut également les créer ex nihilo via l'outil **stylo** (raccourcis maj+f6).
* Chaque clic permet de définir un segment de la ligne polygonale.
* En cliquant de nouveau sur le point de départ, le chemin est refermé.
* Le chemin peut rester ouvert: double cliquer pour placer le dernier nœud.
Pour fermer un chemin, sélectionner l'outil édition des nœuds, sélectionner les nœuds à rejoindre et cliquer sur le bouton "Joindre les nœuds terminaux" dans la barre d'outils.
===== Précisions sur les chemins =====
Dans Inkscape, les chemins sont formés de lignes de différentes natures, des segments, des arcs de cercles ou d’ellipses et des courbes gérées par des poignées de contrôle appelées courbes de Bézier.
Les courbes de Bézier ont été inventées par Pierre Bézier, ingénieur chez Renault. En 1945, il conçoit des machines transferts pour la ligne de fabrication des 4CV et, en 1958, l'une des premières machines à commande numérique d'Europe. Cherchant un moyen simple et puissant pour modéliser des formes et faciliter la programmation des machines, il utilise des courbes polynomiales gérées par des poignées de contrôle. Cet outil est maintenant présent dans tous les logiciels de CAO mais a aussi été à la base du langage PostScript, créé par la société Adobe, et utilisé pour définir les polices de caractères.
Pour les chemins en svg (format de fichier utilisé par Inkscape), il a fallu inventer un langage de description prenant donc en compte les différents types de lignes segments, arcs, courbes.
Voici un exemple de chemin :
m 10,10 v 50 c 0,20 26,0 40,0 H 70 A 20,20 0 0 1 90,40 V 10 Z
Dans ce chemin, les majuscules sont utilisés pour des déplacements absolues (les coordonnées utilisées sont celles du repère de la page) et les minuscules pour les déplacements relatifs (décalage par rapport au point précédent).
Les commandes :
* m(oveto) permet de se déplacer ou de se positionner sans ligne
* l(ineto);
* v(ertical);
* h(orizontal) définissent les segments;
* c(urve) définie les courbes de Bézier cubique avec les coordonnées du premier point de contrôle, du second point de contrôle et du point d’arrivée;
* a(rc) est plus complexe car cette commande doit pouvoir décrire tous les arcs elliptiques. Il y a les rayons de l’ellipse, l’angle de rotation de l’axe, des flags qui valent 0 ou 1 suivant le morceau de l’ellipse considéré et le point d’arrivée.
* z permet de fermer le chemin (relie le dernier point au premier par un segment si besoin.
L’exemple au-dessus donne le résultat suivant:
{{chemin_forme_exemple.png}}
Pour de plus amples informations sur la syntaxe de description des chemins:
* https://www.w3.org/TR/SVG/paths.html
* Exemple de création d'objets svg avec des chemins directement dans une page web: https://www.w3schools.com/graphics/svg_path.asp