首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端canvas基础复习,canvas学习笔记,持续记录

4.擦除(clearRect) clearRect()通过把像素设置为透明以达到擦除一个矩形区域的目的。...destination-over,现有画布的下面绘制图形 source-in,与现有画布重叠的地方绘制图形,其他地方透明(如单词的意思在source源的内部绘制) source-out,与现有画布不重叠的地方绘制图形...,现有内容保留不重叠位置 destination-atop,都保留,新图像在现有的下面绘制 事件操作 在 Canvas 中,常见的事件共有三种,即鼠标事件、键盘事件和循环事件。...鼠标按下:mousedown 鼠标松开:mouseup 鼠标移动:mousemove 将鼠标当前的坐标值减去 canvas 元素的偏移位置,则 x、y 为鼠标在 canvas 中的相对坐标 2.键盘事件...1.1矩形的捕获 如果鼠标点击坐标落在矩形上,则说明捕获了这个矩形;如果鼠标点击坐标没有落在矩形上,则说明没有捕获到这个矩形。

2.4K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Canvas鼠标滚轮缩放以及画布拖动(图文并茂版)

    ,原点坐标(50, 50),长宽各为 50 的矩形,示意图如下,其中灰色的背景为 Canvas 区域。...(sx,sy) ” 默认情况下,画布上的一个单位正好是一个像素。...事件坐标系 在构造函数中添加对 Canvas 的 mousedown 事件监听,记录点击鼠标时相对屏幕的位置 x 和 y。...画布的整体偏移量记录在 offset.x 和 offset.y,鼠标触发 mousedown 事件时,记录当前鼠标点击的位置相对于屏幕的坐标 x, 和 y,并且开始监听鼠标的 mousemove 和 mouseup...缩放原理图 鼠标停留在 A 点对蓝色矩形进行放大,放大系数为 n,蓝色矩形的起点左上角和坐标原点重合,宽度和高度分别是 x 和 y,因此,A点的坐标为 (x, y)。

    2.8K10

    Canvas 绘图技术:如何实现签名板签名功能以及导出图片

    二、Canvas 绘制签名板步骤 在实现将签名版上的签名并导出为图片的功能之前,我们先想一想如何在 Canvas 上绘制签名版。...我的思路是,签名版是一个可以在上面绘制签名的区域,我们可以通过鼠标或触摸屏幕来绘制签名。 而在 Canvas 上绘制签名版的关键是监听鼠标或触摸事件,并根据事件的坐标绘制签名。...我们还需要添加一个“清除”按钮和一个“导出”按钮,用于清除画布和将签名版上的签名导出为图片。 mousedown事件 我们写一个监听鼠标的 mousedown 事件。当鼠标按下时,会将 drawing 变量设置为 true,表示开始绘制。...在这个函数中,我们使用 canvas.toDataURL() 方法将画布内容转换为 DataURL,然后创建一个下载链接,并触发点击事件以下载图片,同时将画布内容设置为 元素的 src 属性

    1.1K42

    你被追尾了

    这样 JavaScript 事件环(eventloop)重新渲染页面的时候就会触发 animate 回调. 事实上,通过外接图形判别法,我们将碰撞检测化归为了两个矩形之间的碰撞情况 ?...这一点其实也很好理解,就拿浏览器来说,浏览器上运行JavaScript代码其实是通过事件环(EventLoop)机制的....令 closestPoint 为我们想求的那个 矩形上离圆心最近的点,则 如果圆心在矩形的左侧(if(circle.x < rect.x)),那么closestPoint.x = rect.x ?...圆形与旋转矩形(以矩形中心为旋转轴) 算法和上面 圆和无旋转矩形 碰撞的思想完全类似,即本质依旧是求出 矩形上离圆心的最近点 看似有点小困难,但其实你把矩形旋转视作是圆绕着矩形中心反方向旋转的话,就很好理解了...如上图所示,T在投影轴上的投影为黄色的 [Tmin = 0, Tmax], 而 P 在投影轴上的投影为 蓝色的 [Pmin, Pmax]. 至于投影使用向量的点积就可以搞定了.

    4.6K30

    Fabric.js 右键菜单

    ,隐藏菜单; 实现思路: 创建画布; 创建 “菜单” 的DOM元素; 去官网查找 “右键相关事件”; 右键单击在元素上,根据鼠标离画布边缘的距离,计算菜单要显示的位置; 左键单击在画布上,隐藏菜单;...在 对象相关的文档 里,关于鼠标的事件好像没有右键,稍微沾边点的就是鼠标点击(这里我选了 mousedown)。...:down 事件里有个 button 属性: 左键:button 的值为 1 右键:button 的值为 3 中键(也就是点击滚轮),button 的值为 2,前提需要设置 fireMiddleClick...) } // 鼠标在画布上的点击事件 function canvasOnMouseDown(opt) { // 判断:右键,且在元素上右键 // opt.button: 1-左键;2...opt.target === null ,就是点击在画布上(没有点击在图形元素上)。 如果你的项目需求是右键点击画布也展示不同菜单,你可以修改上面代码的判断。

    7.1K10

    原生小案例:如何使用HTML5 Canvas构建画板应用程序

    我们还在画布下方包含了一个ID为“clearButton”的“清除”按钮,为用户提供了一种方便的方式来从画布中删除所有绘制的元素,并为新的绘图创建一个空白画布。...将事件监听器附加到画布元素以捕获 mousedown 、 mousemove 、 mouseup 和 mouseout 事件。...使用 mousedown 事件开始绘制,使用 mousemove 事件在鼠标移动时绘制,使用 mouseup 事件在释放鼠标按钮时停止绘制,使用 mouseout 事件在光标移出画布时停止绘制。...JavaScript代码指定了HTML文档中的画布元素,获取了2D绘图上下文,并在HTML文档的各个元素上设置了事件监听器,例如画布、按钮、颜色样本和输入字段。...所以拿起你的数字画笔,在可能性的画布上尽情释放你的想象力吧!

    52821

    基于 Canvas 实现的简历编辑器

    绘制 任何元素都是矩形,数据结构也是据此设计抽象出来的,在绘制的时候分为两层Canvas重叠的方式,内层的Canvas是用来绘制具体图形的,这里预计需要实现增量更新,而外层的Canvas是用来绘制中间状态的...MouseMove事件来调整图形大小,而实际上在这里的交互会非常多,包括多选、拖拽框选、Hover效果,都是根据MouseDown、MouseMove、MouseUp三个事件完成的,所以如何管理状态以及绘制...那么就先聊下渲染方面的内容,使用Canvas实际上就很像将所有DOM的position设置为absolute,所有的渲染都是相对于Canvas这个DOM元素的位置绘制,那么我们就需要考虑重叠的情况,那么想一个例子...,A的zIndex是10,A的子元素B的zIndex是100,C与A是平级的且zIndex为20,那么当这三个元素重叠的时候,在最顶部的元素是C,也就是说zIndex实际上只看平级元素,再假如A的zIndex...在渲染的基础上,我们还需要考虑事件的实现,例如我们的选中状态,八向调整元素大小的点一定是在选区节点的上层的,那么假如现在我们需要实现onMouseEnter事件的模拟,那么因为Resize这八个点位与选区节点是有一定重叠的

    25110

    【组图篇】如何汇报荧光共定位定量分析结果??

    前文说到荧光共定位的各类要素,包括如下: ● ①红色通道荧光图像和散点图 ● ②绿色通道荧光图像和散点图 ● ③荧光共定位图像和散点图 ● ④荧光共定位图像皮尔逊相关系数和重叠系数 那么拿到这些之后...,该如何报告我们的分析结果呢?...---- 1.打开Adobe Illustrator,建立一张画布(RGB格式的)。 ? 2. 将红色通道、绿色通道、共定位通道及相应散点图全部置入到画布中。 ?...通过此工具中的数值法和坐标法,调整图像大小和位置,达到对齐。 ? 4. 对齐后,左侧选择文本工具,将之前得到的皮尔逊相关系数、重叠系数、红绿通道激发波长和发射波长、物镜倍数写出来。...左侧选择矩形工具,新建一个适当大小的矩形外框。矩形内部不填色,外框磅数为1磅,黑色。做完这一步,全选所有内容,右键,编组,防止图像跑偏。 ? 6.

    3.3K20

    画布就是一切(二) — 实现元素拖拉拽

    在《画布就是一切(一) — 基础入门》中,我们介绍了利用画布进行UI编程的基本模式,分析了如何实现鼠标悬浮在元素上,元素变色的功能。...使用过流程图或是图形绘制软件的同学都见到过这样的场景对于矩形拖拉拽的场景: 本文将以上述的场景为需求,结合画布编程的基本模式来复现一个类似的效果。...初始情况下,鼠标在画布上移动进而产生移动事件。我们引入一个辅助变量lastMousePosition(默认值为null),来表示上一次鼠标移动事件的所在位置。...4)鼠标按下事件 // 4 鼠标按下事件 canvasEle.addEventListener('mousedown', event => { // 获取鼠标按下时位置 let {x, y} =...我们设定,当鼠标悬浮在矩形上的时候,矩形会改变对应的颜色为带有50%透明的红色(rgba(255, 0, 0, 0.5),并且鼠标的指针修改为pointer。

    33510

    画布就是一切(二) — 实现元素拖拉拽

    在《画布就是一切(一) — 基础入门》中,我们介绍了利用画布进行UI编程的基本模式,分析了如何实现鼠标悬浮在元素上,元素变色的功能。...使用过流程图或是图形绘制软件的同学都见到过这样的场景对于矩形拖拉拽的场景: 本文将以上述的场景为需求,结合画布编程的基本模式来复现一个类似的效果。...初始情况下,鼠标在画布上移动进而产生移动事件。我们引入一个辅助变量lastMousePosition(默认值为null),来表示上一次鼠标移动事件的所在位置。...4)鼠标按下事件 // 4 鼠标按下事件 canvasEle.addEventListener('mousedown', event => { // 获取鼠标按下时位置 let {x, y} =...我们设定,当鼠标悬浮在矩形上的时候,矩形会改变对应的颜色为带有50%透明的红色(rgba(255, 0, 0, 0.5),并且鼠标的指针修改为pointer。

    27430

    解锁前端难题:亲手实现一个图片标注工具

    支持更复杂的图形绘制和像素级操作。 一旦图形绘制在 Canvas 上,就不会受到 DOM 的影响,减少重绘和回流。 「缺点」: 交互相对复杂,需要手动管理图形的状态和事件。...缩放 实现图片缩放功能,我们需要了解两个关键的知识点:如何监听缩放事件和如何实现图片缩放。 先来看第一个,我用的是 Mac,在 Mac 上可以通过监听鼠标的滚轮事件来实现缩放的监听。...这意味着,如果你将缩放比例设置为 2,那么在这个缩放的坐标系统中,绘制一个宽度为 50 像素的矩形,实际上会在画布上产生一个宽度为 100 像素的矩形。...来实现移动视口 通过 canvas 的 translate 来实现改变视口 在图片放大后,整个图像可能无法完全显示在 Canvas 上,此时只有图像的一部分(即可见区域)会显示在画布上。...首先,我们需要一个变量来存储当前被拖拽的标注: let draggingRect = null; 在鼠标按下时(mousedown 事件),我们需要判断是否点击了某个标注,并将其设置为被拖拽的标注,并在鼠标抬起时

    91310

    用Canvas画一个刮刮乐

    在国外问答网站Quora上,许多开发者对于HTML5 Canvas元素的实用性进行了一系列探讨。Canvas非常灵活,能够很好地融合JavaScript代码并在浏览器内绘制华丽的图形。...图片.png 用Canvas画一个刮刮乐步骤: 一:创建一个画布(Canvas) 注意: 标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小....canvas 的左上角坐标为 (0,0),上面的 fillRect 方法拥有参数 (0,0,400,200)。意思是:在画布上绘制 400x200 的矩形,从左上角开始 (0,0)。...五:鼠标事件 需要改变的内容为_width,_height,touchTop,touchLeft这几个参数,根据自身画布的位置自行计算即可。...//意思是:在画布上绘制 400x200 的矩形,从左上角开始 (0,0)。

    2.1K40

    从Chrome小恐龙游戏学习2D游戏制作

    这也是为什么以前大家把setInterval的间隔设置为1000/60的原因,但是这本质上是硬件的差异,只要换个硬件,定时器的执行步调和屏幕的刷新步调不一致就一定会产生丢帧。...,height) 分别是精灵图、裁剪区域的坐标,裁剪的区域大小,在画布上放置图像的位置坐标,在画布上放置图像的大小。...,监听用户按键事件,根据键码去切换小恐龙的状态和处理位置信息。...我们把仙人掌加上之后,游戏的核心交互流程就已经实现出来了: ? 碰撞检测 小恐龙里面使用的是矩形检测,每个碰撞体都是一个矩形,游戏循环的时候判断每个矩形是否重叠就知道是否碰撞了。 ?...「在游戏中,为了简化每一帧中的计算计算量,只有当这两个外矩形相碰的时候,才会去遍历每个对象下的细分矩形」,比如右上图小恐龙和仙人掌都分别用了四个矩形来描述它们的边界,当外矩形重叠的时候,内部矩形才开始遍历判断重叠

    1.6K10
    领券