当前位置: 首页 > news >正文

使用鼠标在Canvas上绘制矩形

前言

最近接到一个项目,要求在图像上画框 圈监测范围,发现如下方案可快速实现,特此记录。

代码如下:

<template><div><canvas id="myCanvas" ref="myCanvas" :width="canvasWidth" :height="canvasHeight" class="canvas-box" @mousedown="mousedown" @mouseup="mouseup" @mousemove="mousemove"></canvas></div>
</template><script>export default {name:"",data() {return {canvasFlag: false,canvasWidth: 491,canvasHeight: 276,startPos:[0,0],endPos:[0,0],};},methods: {mousedown(e){// console.log("鼠标落下");this.canvasFlag = true;this.startPos=[e.offsetX,e.offsetY] // 鼠标落下时的X,Y},mouseup(e){// console.log("鼠标抬起");this.canvasFlag = false;},mousemove(e){// console.log("鼠标移动");this.drawRect(e);},drawRect(e){if(this.canvasFlag){const canvas = this.$refs.myCanvas;var ctx = canvas.getContext("2d");let x = this.startPos[0];let y = this.startPos[1];this.endPos=[e.offsetX,e.offsetY]ctx.clearRect(0,0,canvas.width,canvas.height);ctx.beginPath();//设置线条颜色,必须放在绘制之前ctx.strokeStyle = '#ff0000';// 线宽设置,必须放在绘制之前ctx.lineWidth = 2;ctx.strokeRect(x,y,e.offsetX-x,e.offsetY-y);console.log("绘制图形",this.startPos,this.endPos);}}},};
</script>

效果图

在这里插入图片描述

http://www.lryc.cn/news/603852.html

相关文章:

  • 【C++算法】80.BFS解决FloodFill算法_岛屿数量
  • 《Java 程序设计》第 9 章 - 内部类、枚举和注解
  • 实在智能Agent智能体荣登全球“Go_Global_AI_100”百强榜,中国AI走向世界!
  • STM32——HAL库
  • 什么是EasyVR shield 3?如何设置EasyVR shield 3
  • 大模型应用开发模拟面试
  • 用动态的观点看加锁
  • TCMalloc 内存分配原理简析
  • 2-verilog-基础语法
  • Coze Studio概览(三)--智能体管理
  • sqli-labs通关笔记-第24关 SQL二次注入(单引号闭合)
  • 硬件学习笔记--73 电能表新旧精度等级对应关系
  • debug redis里面的lua脚本
  • Spring Boot 防重放攻击全面指南:原理、方案与最佳实践
  • ElasticSearch 的3种数据迁移方案
  • 在Word和WPS文字中把全角数字全部改为半角
  • Vue2学习-MVVM模型
  • Spring Boot 简单接口角色授权检查实现
  • C++入门知识学习(上)
  • 嵌入式学习日志(十一)
  • css3之三维变换详说
  • SQL Server中的分页查询
  • leetcode热题——螺旋矩阵
  • 第十一天:不定方程求解
  • 镁金属接骨螺钉注册检测:骨科植入安全的科学基石
  • Rust基础-part8-模式匹配、常见集合
  • 亚马逊 Vine 计划:评论生态重构与合规运营策略
  • 学习笔记-中华心法问答系统的性能提升
  • 小孙学变频学习笔记(十二)机械特性的调整 机械特性的改善
  • 想要批量提取视频背景音乐?FFmpeg 和转换器都安排上