Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Remarquez que jusqu'à maintenant les méthodes fill() & stroke() n'avaient pas d'argument. Et bien ça va changer ...
La dernière version de l'API Canvas introduit un constructeur d'objets : Path2D().
Autre bonne nouvelle : cette méthode peut avoir comme argument la notation SVG des chemins (en absolu ou en relatif).
Grâce au constructeurs d'objets Path2D() on définit deux formes graphiques (un rectangle et un cercle) référencées respectivement par les variables
rectangle1, cercle1.
Dès que le modèle d'objet est défini, une seule instruction suffit pour dessiner (en contour et/ou en plein) le modèle.
Utilisez une translation dans le repère cartésien pour cloner à des emplacements différents.
Le script est succinct alors qu'on dessine huit formes ...
Dès qu'un type de forme est appelé à être dessiné plusieurs fois dans le canevas, il faut utiliser le constructeur Path2D().
Comme je le disais en préambule de ce chapitre, le construction Path2D autorise la notation SVG des chemins.
Dans le deuxième canevas ci-dessus il y a quatre formes colorées en noir.
Notez que le script est très succinct grâce à l'emploi du constructeur Path2D et de la syntaxe SVG.
Les deux premiers chemins sont notés en absolu : les lettres L,H,V sont en majuscules.
Si vous ne comprenez rien à cette syntaxe concernant les chemins SVG, suivez le lien :
La balise PATH de SVG - notation en absolu et en relatif d'un chemin
Attention dans la notation d'un trajet selon la syntaxe SVG, les abscisses et ordonnées ne peuvent être des variables !
Je vais maintenant vous montrer que dans certains cas, le recours au constructeur Path2D() et à la notation SVG du chemin est incontournable.
Une croix de lorraine c'est 3 rectangles qui se croisent.
C'est très moche car chaque rectangle est ombré. Ce n'est pas le rendu souhaité.
Il faut créer un chemin constitué de lignes horizontales et verticales.
Cette fois c'est beaucoup plus joli car il n'y a plus qu'une forme : un chemin défini avec la syntaxe SVG et plus
précisèment selon la notation relative ; notation qui est intuitive si vous partez d'un schéma (établi sur une feuille à petits carreaux).
Le code correspondant :
La balise canvas ést un élément HTML auquel on peut appliquer un dégradé CSS.
Le chemin est noté en relatif en indiquant la longueur des droites horizontales ou verticales.
Essayez de reconstituer le code correspondant à cette belle balustrade classique.
Pour vous aider je vous donne quelques bribes du script.
Le canevas fait 900 par 300 avec un background "azur".
Canvas : constructeur Path2D
Grâce à ce constructeur, il suffit de définir un modèle de forme (position et dimensions) et de lui affecter un nom.
Ensuite vous pouvez dupliquer N fois ce modèle.
Donc il suffit désormais d'une seule instruction pour définir une forme complexe.
Premier exemple
Commentaire
Ces formes sont dessinées quatre fois.
Le script
Attention, c'est un constructeur donc n'oubliez pas le mot clé "new" !
Notez que les modèles de formes sont ici définis par rapport aux dimensions du canevas.
Formes définies avec la syntaxe SVG
Donc là où il zurait fallu une instruction lineTo() et des dizaines d'instructions moveTo() il n'y aura plus qu'une instruction
Path2D(chemin exprimé avec la notation SVG).
Exemple
Cliquez dans le canevas pour que les formes deviennent orangées.
Le script correspondant
Chaque modèle Path2D est défini avec une seule instruction !
Les deux derniers chemins sont notés en relatif : les lettres l,h,v sont en minuscules.
Restrictions
Pourquoi utiliser le constructeur Path2D et la notation SVG des chemins ?
Thématique : pour commémorer l'appel du 18 juin, nous devons réaliser une belle croix de Lorraine ombrée (ombre portée vers le coin supérieur gauche).
Solution 1
Ci-dessous le rendu :
Bonne solution
Pour définir ce chemin je me suis aidé d'un croquis réalisé sur une feuille "petits carreaux" avec l'échelle : 10 carreaux pour 100 pixels.
J'ai centré horizontalement la croix de Lorraine. Par lecture directe sur le croquis j'obtiens toutes les infos pour décrire le chemin : point
de départ, caractéristiques de chaque segment : horizontal/vertical, longeur , sens (+ ou -).
Atelier
Une colonne fait 120 de large. Le chemin est complexe : des courbes de Bézier.
Pour dessiner la balustrade il faut dupliquer 8 fois le modèle "colonne" avec translation.