Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Vous savez qu'une forme peut être remplie avec une couleur unie (par défaut le noir), qu'une forme peut être transparente (avec clearRect).
Dans ce chapitre je vais vous montrer qu'une forme peut etre remplie avec un dégradé ou un motif.
Le canevas comprend deux parties. Le cercle de gauche est rempli avec un dégradé radial tricolore et le cercle de droite est rempli avec un dégradé radial tricolore également mais avec un cercle rouge de rayon X/8 non dégradé.
Le canevas responsive fait 900 par 450.
Le script :
On rencontre dans le script une nouvelle méthode de l'API canvas : var degrade 1 = contexte.createRadialGradient(X/4,Y/2,0,X/4,Y/2,300)
Pour un bon rendu il est souhaitable que les deux cercles aient le même centre. Ce qui est le cas ici pour les deux dégradés radiaux.En effet dans chaque cas le premier paramètre est égal au troisième et le deuxième paramètre est égal au cinquième.
Pour le premier dégradé le rayon du cercle intérieur (troisième paramètre) est 0 ce qui veut dire que la première couleur (purple) se dégrade immédiatement alors que dans le deuxième dégradé la valeur du rayon du centre intérieur est X/8 donc il y a au centre un rond rouge de rayon X/8 uni.
Le deuxième canevas de la page comprend deux carrés. Le carré de gauche est rempli avec un dégradé linéaire bicolore et le carré de droite est rempli avec un dégradé linéaire tricolore.
Le canevas responsive fait 800 par 400.
Le script :
Le script comprend plusieurs nouveautés !
var degrade3 =contexte2.createLinearGradient(0,0,X/2,Y)
La méthode createLinearGradient(x1,y1,x2,y2) détermine l'axe du dégradé linéaire. Ici il s'agit d'une diagonale descendante
puisque Les coordonnées du point de départ sont 0,0 et les coordonnées du point d'arrivée sont X/2,Y.
degrade3.addColorStop(0,"green"); degrade.addColorStop(1,"white");: ces deux instructions précisent que le dégradé
commence par vert et se termine par blanc. Il y peut y avoir des points de couleur intermédiaires ; le premier paramètre
de la méthode addColor doit alors être un réel compris entre 0 et 1.
contexte2.fillStyle = degrade3: La "couleur" de remplissage est égale à la variable degrade3 dans laquelle le premier degradé linéaire a été défini.
contexte2.fillRect(0,0,X/2,Y) : La partie gauche du deuxième canevas de la page est remplie avec ce premier degradé.
Vous devez maintenant être capable de comprendre la deuxième partie du script : définition d'un dégradé linéaire tricolore avec un axe diagonal montant et utilisation de ce dégradé pour remplir la partie droite du canevas.
On remplit le canevas de 300 par 300 avec la répétition d'une image (qui fait 160 par 160).
Le canevas fait 320 par 320.
Le script :
Dans la méthode createPattern le premier paramètre doit référencer un objet image. En d'autres termes avec Canvas un motif est forcément construit
à partir d'une image existante et une seule ...
Le deuxième paramètre de la méthode createPattern
peut être repeat ou repeat-x ou repeat-y ou encore no-repeat.
Ci-dessous le quatrième canevas de la page rempli avec un joli dégradé et avec insertion d'une image avec fond transparent.
Dois-je rappeler qu'une balise double CANVAS est un élément HTML, donc un noeud du DOM et peut donc être rempli avec un dégradé CSS.
Les images PNG peuvent avoir des fonds transparents, ce qui est pratique pour l'insertion dans un canevas.
Cliquez sur le bouton de commande et l'avion disparait mais pas le fond.
Les dégradés CSS sont très succints. Suivez le lien : les dégradés CSS
Le script est lui aussi très court.
Surtout un I majuscule dans "new Image()", c'est un constructeur !
L'image PNG insérée a un fond transparent.
Au travers de cet exemple je vous montre que la commande clearRect() tous les objets insérés mais pas l'arrière plan.