js使用canvas实现画roi功能,并实现交集并集差集操作,附源码

效果概览

支持圆形,矩形,旋转矩形绘制,鼠标像素拾取,图片缩放,图片拖拽,像素测量,roi交集并集补集输出
TODO:实现自由路径绘制,与后台交互数据
gif

实现原理

交集并集差集使用像素做运算,使用0代表没有像素,1代表有像素,然后再做运算

    // 计算交集calculateIntersection(shape1, shape2) {return shape1.map((pixel, index) => pixel && shape2[index] ? 1 : 0);}// 计算并集calculateUnion(shape1, shape2) {return shape1.map((pixel, index) => pixel || shape2[index] ? 1 : 0);}// 计算差集calculateDifference(shape1, shape2) {return shape1.map((pixel, index) => pixel && !shape2[index] ? 1 : 0);}

canvas事件实现

使用两个canvas,使用隐藏的OffscreenCanvas来判断鼠标命中的是哪个元素,需要把shape同时画到两个canvas中,获取隐藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/586767.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯电商再度回归!视频号小店成为今年最强黑马?

大家好,我是电商小布。 现在在电商的这个圈子里,视频号这个项目,也是常常被大家提起。 特别是在新型电商玩法的发展下,传统电商已经不足以满足客户的需求,搞流量才是重点。 而在这其中,抖音、视频号这两…

Flume学习笔记

视频地址:https://www.bilibili.com/video/BV1wf4y1G7EQ/ 定义 Flume是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。 Flume高最要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS。 官网:https://flume.apache.org/releases/content/1.9.0/…

TikTok账号被封是为什么?如何解决?

多人在使用TikTok的过程中都会遇到一些问题,比如为什么TikTok没有浏览量?事实上,这很可能是因为你的账号已被禁止。但为什么它会被封呢?你怎样才能解决它? 一、TikTok账号为什么被封? 1、什么是 TikTok 影…

鸿蒙原生应用开发-网络管理Socket连接(一)

一、简介 Socket连接主要是通过Socket进行数据传输,支持TCP/UDP/TLS协议。 二、基本概念 Socket:套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。 TCP:传输控制协议(Transmission Control Protocol)。是一…

回文数的判断

算法思想:代码是将字符串全部入栈,然后扫描字符串进行比较,直到扫描到字符串尾部,该算法需要两次扫描字符串,效率不高。 可以改进代码,只将字符串的前半部分入栈,然后前半部分出栈与字符串后半…

Golang Context是什么

一、这篇文章我们简要讨论Golang的Context有什么用 1、首先说一下Context的基本作用,然后在讨论他的实现 (1)数据传递,子Context只能看到自己的和父Context的数据,子Context是不能看到孙Context添加的数据。 (2)父子协程的协同,比…

python 成员方法的区别是什么

Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的: 1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数; 2)从第1条,静态方法是…

无法解析的外部符号,在xxxx中调用

这个函数在类里****没有正确定义: 1.头文件只有声明,没有实现 2.只有实现,没有声明 3.声明的和实现的,参数不对

SEO文章写作器,批量写作原创SEO收录文章

在当今数字化时代,搜索引擎优化(SEO)已经成为了网站获得流量和曝光度的关键手段之一。而在SEO领域中,内容的质量和原创性是至关重要的。为了应对不断增长的内容需求,越来越多的人开始转向AI写作生成器,这些…

Nginx在Kubernetes集群中的进阶应用

简介 在现代DevOps环境中,Nginx作为负载均衡器与Kubernetes的Ingress资源的结合,为应用程序提供了强大的路由和安全解决方案。本文将深入探讨如何利用Nginx的灵活性和功能,实现高效、安全的外部访问控制,以及如何配置Ingress以优…

MySQL 优化及故障排查

目录 一、mysql 前置知识点 二、MySQL 单实例常见故障 故障一 故障二 故障三 故障四 故障五 故障六 故障七 故障八 三、MySQL 主从故障排查 故障一 故障二 故障三 四、MySQL 优化 1.硬件方面 (1)关于 CPU (2)关…

基于Springboot+Vue前后端分离的(学生信息)课程管理系统设计与实现+论文+PPT+指导搭建视频

介绍 系统设计是一个把软件需求转换成用软件系统表示的过程通过对目标系统的分析和研究,做出了学生信息管理系统的总体规划,这是全面开发系统的重要基础。在对学生信息管理系统全面分析调查的基础上,制定出学生信息管理系统的总体规划。系统…