Javascript检查 Canvas 上的透明图像是否被点击

标签 javascript canvas click

我有一个 Canvas ,我画了一个透明的图像,并且具有类似多边形的形状。现在我需要检查该图像是否已被点击。

我有线 { x:30, y:20, 宽:100, 小时:100

我可以检查一个框或圆点击但如果它像多边形一样刚性怎么办是否有像素点击测试或凸算法(但我不想指定边缘)?

谢谢。

最佳答案

一种解决方案是使用辅助 Canvas 实现像素检测以用作 map 。

  1. 将您的形状绘制到场景 Canvas 上。
  2. 在第二个 Canvas 上绘制准确的形状,但将颜色设置为 rgb(0,0,0)。
  3. 将该颜色作为引用存储在某种 map 中以引用您的第一个“形状”

例如

var pixelMap = {
  '000' : 'rectangle 1',
  '001' : 'rectangle 2'
};

每次在 Canvas 上绘制一个新形状时,将 rgb 增加 1。除非您有超过 1670 万个形状 (256^3),否则此方法应该足够了。

这是一个示例实现:https://jsfiddle.net/mikeschultz/nbtnxpf2/

关于Javascript检查 Canvas 上的透明图像是否被点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35691850/

相关文章:

javascript - 提交后在 php 中添加文本行

单击按钮时的 Angularjs 操作

javascript - jQuery 未检测到 div 调整大小

javascript - 无法在 Fabric.js 中使用 getActiveObject()

javascript - 基于所选图像的动态 Canvas 高度和宽度

c# - UWP 等同于用于序列化 XAML 的 XamlWriter

html - 单击时交叉淡入淡出图像库未指向正确的链接

javascript - 如何迭代输入的内容

javascript - jQuery : trying to draw elements that snap together and break apart

javascript - jQuery div 扩展高度不起作用