


Comment utiliser JavaScript pour implémenter le zoom et la rotation du canevas de sélection de cadre
Avec le développement d'Internet, JavaScript est devenu de plus en plus utilisé. Dans le développement front-end, en particulier dans le domaine de l'édition graphique, le zoom et la rotation du canevas sont une fonction très importante. Dans le prochain article, nous présenterons comment utiliser JavaScript pour réaliser le zoom et la rotation du canevas de sélection de cadre.
Étape 1 : Créer le canevas
Avant de commencer à implémenter le zoom et la rotation du canevas sélectionné dans la boîte, nous devons créer le canevas. En HTML, nous pouvons créer un canevas à l'aide de la balise
<canvas id="myCanvas" width="500" height="500"></canvas>
En JavaScript, nous pouvons utiliser le code suivant pour obtenir l'élément canevas :
var canvas = document.getElementById("myCanvas");
Ensuite, nous pouvons obtenir le contexte 2D via la méthode getContext. de toile, comme indiqué ci-dessous :
var context = canvas.getContext("2d");
De cette façon, nous avons réussi à créer une toile et un contexte, puis nous pouvons dessiner sur la toile.
Étape 2 : Dessiner des graphiques
Dans cette démo, nous allons dessiner trois rectangles différents et les afficher sur la toile. En JavaScript, nous dessinons un rectangle en utilisant la méthode fillRect de canvas. Le premier paramètre de cette méthode est la coordonnée x du coin supérieur gauche du rectangle, le deuxième paramètre est la coordonnée y du coin supérieur gauche du rectangle, le troisième paramètre est la largeur du rectangle et le quatrième paramètre est la hauteur du rectangle, comme suit :
context.fillRect(x, y, width, height);
Le code pour dessiner trois rectangles est le suivant :
//矩形1 context.fillStyle="red"; context.fillRect(50,50,100,100); //矩形2 context.fillStyle="green"; context.fillRect(200,200,100,100); //矩形3 context.fillStyle="blue"; context.fillRect(350,350,100,100);
Avec le code ci-dessus, nous avons réussi à dessiner trois rectangles sur la toile.
Étape 3 : Implémenter la sélection de cadre
Ensuite, nous commençons à implémenter la fonction de sélection de cadre. Le processus d'implémentation spécifique est le suivant :
- Tout d'abord, nous devons enregistrer le point de départ de la souris, le code est le suivant :
var startX, startY; canvas.addEventListener("mousedown", function(e) { startX = e.pageX - canvas.offsetLeft; startY = e.pageY - canvas.offsetTop; }, false);
- Ensuite, nous devons enregistrer le mouvement de la souris, le code est le suivant :
canvas.addEventListener("mousemove", function(e) { if (e.buttons === 1) { // 按下鼠标左键拖动 var moveX = e.pageX - startX; var moveY = e.pageY - startY; context.clearRect(0, 0, canvas.width, canvas.height); drawRectangles(moveX, moveY); } }, false);
- Enfin, nous devons enregistrer le point final de la souris lorsque la souris est relâchée, le code est le suivant suit :
canvas.addEventListener("mouseup", function(e) { var endX = e.pageX - canvas.offsetLeft; var endY = e.pageY - canvas.offsetTop; var moveX = endX - startX; var moveY = endY - startY; context.clearRect(0, 0, canvas.width, canvas.height); drawRectangles(moveX, moveY); }, false);
Grâce au code ci-dessus, nous avons implémenté avec succès la fonction de sélection de cadre, qui peut être passée Faites glisser le bouton gauche de la souris pour sélectionner un rectangle sur le canevas.
Étape 4 : Implémenter la mise à l'échelle du canevas
Ensuite, nous implémenterons la fonction de mise à l'échelle du canevas. Le processus de mise en œuvre spécifique est le suivant :
- Tout d'abord, nous devons définir une échelle variable, qui représente le rapport de mise à l'échelle du canevas. La valeur par défaut est 1,0. Le code est le suivant :
var scale = 1.0;
- Ensuite, nous. ajoutez un écouteur d'événement de roue au canevas, Le code est le suivant :
canvas.addEventListener("wheel", function(e) { e.preventDefault(); var wheelDelta = e.deltaY; if (wheelDelta > 0) scale -= 0.1; else scale += 0.1; context.clearRect(0, 0, canvas.width, canvas.height); drawRectangles(0, 0); // 传递0,0以清除框选效果 }, false);
- Enfin, nous devons définir le taux de zoom du canevas avant de dessiner les graphiques. Le code est le suivant :
context.scale(scale, scale);
Grâce à ce qui précède. code, nous avons implémenté avec succès la fonction de zoom du canevas, qui peut être effectuée en faisant tourner la molette de la souris pour zoomer ou dézoomer sur le canevas.
Étape 5 : Implémenter la rotation du canevas
Ensuite, nous implémenterons la fonction de rotation du canevas. Le processus spécifique de mise en œuvre est le suivant :
- Tout d'abord, nous devons définir un angle variable, qui représente l'angle de rotation du canevas. La valeur par défaut est 0. Le code est le suivant :
var angle = 0;
- Ensuite, nous. ajoutez un événement clic droit sur le canevas Monitoring, le code est le suivant :
canvas.addEventListener("mouseup", function(e) { if (e.button === 2) { // 按下鼠标右键 angle += 90; context.clearRect(0, 0, canvas.width, canvas.height); drawRectangles(0, 0); // 传递0,0以清除框选效果 } }, false);
- Enfin, il faut définir la matrice de transformation du canevas avant de dessiner les graphiques, le code est le suivant :
context.setTransform(Math.cos(angle), Math.sin(angle), -Math.sin(angle), Math.cos(angle), canvas.width / 2, canvas.height / 2);
Par Avec le code ci-dessus, nous avons implémenté avec succès la fonction de rotation du canevas, qui peut être effectuée via le clic droit de la souris pour faire pivoter.
En résumé, nous avons implémenté avec succès la fonction de zoom et de rotation du canevas de sélection de cadre à l'aide de JavaScript. Ces fonctions sont très importantes dans le domaine de l'édition graphique et contribuent à améliorer l'expérience utilisateur et l'efficacité opérationnelle. Si vous devez utiliser ces fonctions dans votre projet, vous pouvez développer sur la base du code ci-dessus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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)

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

L'article discute de la connexion des composants React à Redux Store à l'aide de Connect (), expliquant MapStateToproprop, MapDispatchToprops et des impacts de performances.

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

L'article traite des avantages et des inconvénients des composants contrôlés et incontrôlés dans la réaction, en se concentrant sur des aspects tels que la prévisibilité, la performance et les cas d'utilisation. Il conseille les facteurs à considérer lors du choix entre eux.
