


Programmation des compétences du didacticiel _html5 de l'API HTML5 Canvas
Rejoignez Canvas
//Obtenir l'élément Canvas et son contexte de dessin var canvas = document.getElementById("diagonal");
var context = canvas.getContext("2d");
//Utiliser des coordonnées absolues pour créer un chemin
context.beginPath( );
context.moveTo(70, 140);
context.lineTo(140, 70);
//Dessinez cette ligne sur Canvas
context.stroke();
Transformer
Le même effet que ci-dessus peut être obtenu grâce à une transformation (zoom, translation, rotation), etc.
Dessinez des lignes diagonales en utilisant la transformation
//Obtenir l'élément Canvas et son contexte de dessin
var canvas = document.getElementById("diagonal");
var context = canvas.getContext("2d");
//Enregistrer l'état actuel du dessin
context.save ();
//Déplacez le contexte de dessin en bas à droite
context.translate(70, 140);
//En utilisant l'origine comme point de départ, tracez le même segment de ligne qu'avant
context.beginPath();
context .moveTo(0, 0);
context.lineTo(70, -70);
context.stroke();
context.restore();
Chemin
Les chemins de l'API HTML5 Canvas représentent n'importe quelle forme que vous souhaitez restituer.
beginPath() : quel que soit le type de graphique que vous commencez à dessiner, la première chose à appeler estbeginPath. Cette fonction simple ne prend aucun paramètre et est utilisée pour informer le canevas qu'il est sur le point de commencer à dessiner un nouveau graphique.
moveTo(x,y) : déplace la position actuelle vers les nouvelles coordonnées cibles (x,y) sans dessiner.
lineTo(x,y) : non seulement déplace la position actuelle vers les nouvelles coordonnées cibles (x,y), mais trace également une ligne droite entre les deux coordonnées.
closePath() : Cette fonction se comporte beaucoup comme lineTo. La seule différence est que closePath utilisera automatiquement les coordonnées de départ du chemin comme coordonnées cibles. Il informe également le canevas que la forme actuellement dessinée est fermée ou forme une zone complètement fermée, ce qui est très utile pour les futurs remplissages et traits.
Dessinez une canopée de pins
function createCanopyPath(context) {
// Dessinez la canopée des arbres
context.beginPath();
context.moveTo(-25, -50);
context.lineTo(-10, -80);
context.lineTo(-20, -80);
context.lineTo( -5, -110);
context.lineTo(-15, -110);
//Les sommets de l'arbre
context.lineTo(0, -140);
context.lineTo(15, -110);
context.lineTo(5, -110);
context.lineTo(20, -80);
context.lineTo(10, - 80);
context.lineTo(25, -50);
// Relier le point de départ, chemin fermé
context.closePath();
}
function drawTrails() {
var canvas = document.getElementById('diagonal');
var context = canvas.getContext('2d');
context.save();
context.translate(130, 250);
//Créer un chemin représentant la canopée
createCanopyPath(context);
// Dessiner le chemin actuel
context.stroke();
context.restore();
}
window.addEventListener("load", drawTrails, true
Style de trait
Utilisez le mode Trait pour rendre la couronne de l'arbre plus réaliste.
context .lineWidth = 4;
//Le point commun du chemin lisse
context.lineJoin = 'round';
//Color
context.strokeStyle = '#663300';
//Dessin du chemin actuel
context.Stroke();
Style de remplissage
context.fillStyle = "#339900"; contexte.fill();Dessinez un rectangle
On ajoute un tronc à l'arbre
Dessiner une courbe
context.save();
context.translate(-10, 350);
context.beginPath();
// La première courbe s'incurve vers le haut vers la droite
context.moveTo(0, 0);
context.quadraticCurveTo(170, -50, 260, -190);
//Courbe en bas à droite
context.quadraticCurveTo(310, -250, 410, -250);
// Tracez le chemin avec un large trait marron
context.StrokeStyle = '#663300';
context.lineWidth = 20;
context.Stroke();
// Restaurer l'état précédent du canevas
context.restore();
Insérer des images dans Canvas
Vous devez attendre que l'image soit complètement chargée avant de pouvoir opérer dessus. Les navigateurs chargent généralement les images de manière asynchrone lorsque le script de page est exécuté. Si vous essayez de restituer l'image sur le canevas avant qu'elle ne soit complètement chargée, le canevas n'affichera aucune image. Par conséquent, une attention particulière doit être accordée à ce que l'image soit chargée. .
// Charger l'image
var bark = new Image();
bark.src = "bark.jpg";
// Une fois l'image chargée, appelez la fonction de dessin
bark.onload = function () {
drawTrails();
}
Afficher l'image :
Dégradé
L'utilisation des dégradés nécessite trois étapes :
(1) Créer un objet dégradé
(2) Définissez la couleur de l'objet dégradé et spécifiez la méthode de transition
(3) Définir le dégradé pour le style de remplissage ou le style de trait en fonction du contexte
// Créez un trois texture de tronc d'arbre dimensionnel Ordre du dégradé horizontal
var trunkGradient = context.createLinearGradient(-5, -50, 5, -50);
//Le bord gauche du tronc est généralement marron
trunkGradient.addColorStop(0, '#663300');
// La couleur de la partie centrale gauche du tronc doit être discutée
trunkGradient.addColorStop(0.4, '#996600');
//La couleur sur le bord droit doit être plus foncée
trunkGradient.addColorStop(1, '#552200');
// Remplir le tronc avec un dégradé
context.fillStyle = trunkGradient;
context.fillRect(-5, -50, 10, 50);
// Créer un dégradé vertical pour remplir le tronc avec la canopée Ombre sur le tronc de l'arbre
var canopyShadow = context.createLinearGradient(0, -50, 0, 0);
// Le point de départ du dégradé de projection est noir avec une transparence de 50%
canopyShadow.addColorStop(0, ' rgba(0, 0, 0, 0.5)');
// La direction est verticalement vers le bas et devient rapidement complètement transparente sur une courte distance.
// au-delà de cette longueur. Projection
canopyShadow.addColorStop(0.2, 'rgba(0, 0, 0, 0.0)');
// Remplissez le tronc d'arbre avec le dégradé de projection
context.fillStyle = canopyShadow;
context.fillRect(-5, -50, 10, 50);
gravel.onload = function () {
drawTrails();
}
//Remplacez la ligne marron épaisse par une image d'arrière-plan
context.StrokeStyle = context.createPattern(gravel, 'repeat');
context.lineWidth = 20;
context.Stroke() ;
Le deuxième paramètre de context.createPattern est un marqueur de répétabilité, et vous pouvez choisir la valeur appropriée dans le tableau 2-1.
Zoomer
Fonction de mise à l'échelle context.scale(x,y) : x et y représentent respectivement les valeurs dans les dimensions x et y. Lorsque chaque paramètre affiche une image sur le canevas, il est transmis la quantité par laquelle l'image doit être agrandie (ou réduite) sur l'axe de la direction. Si la valeur x est 2, cela signifie que tous les éléments de l'image dessinée deviendront deux fois plus larges. Si la valeur y est 0,5, l'image dessinée deviendra deux fois moins haute qu'auparavant.
// À X=130 , Y= Dessinez le premier arbre à 250
context.save();
context.translate(130, 250);
drawTree(context);
context.restore(); p>
// Dessinez le deuxième arbre à X=260, Y=500
context.save();
context.translate(260, 500);
//Agrandissez la hauteur et la largeur du deuxième arbre à 2 fois la valeur d'origine
context.scale(2, 2);
drawTree(context);
context.restore();
Rotation
Faire pivoter l'image
context.save();
//Le paramètre d'angle de rotation est en radians
context.rotate(1.57);
context.drawImage(myImage, 0, 0, 100, 100);
context.restore();
Une façon d'utiliser la transformation
// Enregistrer l'état actuel
contexte .save();
// La valeur X augmente à mesure que la valeur Y augmente. À l'aide de la transformation d'étirement,
// vous pouvez créer un arbre incliné utilisé comme ombre
// Après avoir appliqué la transformation, tout les coordonnées sont Multiplier par matrice
context.transform(1, 0,
-0.5, 1,
, 0);
// Dans la direction de l'axe Y, modifiez la hauteur de l'ombre à 60 % de la valeur d'origine
context.scale(1, 0.6);
// Remplir le tronc de noir avec une transparence de 20%
context.fillStyle = 'rgba(0, 0, 0, 0.2)';
context.fillRect(-5, -50, 10, 50);≪/p>
//Redessinez l'arbre en utilisant l'effet d'ombre existant
createCanopyPath(context);
context.fill();
//Restaurer l'état précédent du canevas
context.restore();
Texte
context.fillText(text,x,y,maxwidth) : contenu du texte, x,y spécifie la position du texte, maxwidth est un paramètre facultatif, limitant la position du texte.
context.StrokeText(text,x,y,maxwidth) : contenu du texte, x,y spécifie la position du texte, maxwidth est un paramètre facultatif, limitant la position du texte.
// Dessiner du texte sur toile
context.save();
//La taille de la police est de 60 et la police est Impact
context.font = "60px impact";
//Couleur de remplissage
context.fillStyle = '#996600';
//Center
context.textAlign = 'center';
//Dessiner du texte
context.fillText('Happy Trails!', 200, 60, 400);
context.restore();
Ombre
Les ombres peuvent être contrôlées via plusieurs propriétés de contexte globales
属性 | 值 | 备注 |
shadowColor | 任何CSS中的颜色值 | 可以使用透明度(alpha) |
shadowOffsetX | 像素值 | 值为正数,向右移动阴影;为负数,向左移动阴影 |
shadowOffsetY | 像素值 | 值为正数,向下移动阴影;为负数,向上移动阴影 |
shadowBlur | 高斯模糊值 | 值越大,阴影边缘越模糊 |
// Couleur noir, 20 % transparence
context.shadowColor = 'rgba(0, 0, 0, 0.2)';
// Déplacer 15px vers la droite et 10px vers la gauche
context.shadowOffsetX = 15;
context.shadowOffsetY = -10;
// Ombre légèrement floue
context.shadowBlur = 2;
Données pixels
context.getImageData(sx, sy, sw, sh) : sx, xy déterminent un point, sw : largeur, sh : hauteur.
Cette fonction renvoie trois attributs : largeur combien de pixels dans chaque ligne hauteur combien de pixels dans chaque colonne
Groupe de données de valeurs RGBA (valeur rouge, vert, bleu et transparence) avec chaque pixel obtenu à partir de Canvas.
context.putImageData(imagedata,dx,dy) : permet aux développeurs de transmettre un ensemble de données d'image. dx et dy sont utilisés pour spécifier le décalage. Si elle est utilisée, la fonction passera à la position spécifiée du canevas. 🎜>
Affichez les données de pixels entrantes.canvas.toDataUrl : les données actuellement présentées sur le canevas peuvent être obtenues par programme. Les données obtenues sont enregistrées au format texte et le navigateur peut les analyser en une image.

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Guide du bouton HTML onclick. Nous discutons ici de leur introduction, de leur fonctionnement, des exemples et de l'événement onclick dans divers événements respectivement.
