Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以检测画布元素中不同部分上的单击?_Javascript_Html_Canvas - Fatal编程技术网

Javascript 是否可以检测画布元素中不同部分上的单击?

Javascript 是否可以检测画布元素中不同部分上的单击?,javascript,html,canvas,Javascript,Html,Canvas,假设在画布元素中,我在画布上有一个圆形和一个矩形,我想使用单击这两个元素来完成不同的工作。是否可以区分这两次单击?传递给onClick回调的事件包含设置为单击位置的pageX和pageY成员 传递给onClick回调的事件包含设置为单击位置的pageX和pageY成员 是的,但我认为没有任何现有的功能可以这样做。基本上,您希望跟踪所绘制的形状(通常通过跟踪它们的顶点坐标),并将单击事件附加到您正在讨论的画布上。触发单击事件后,找到鼠标相对于画布左上角的x和y坐标,然后遍历形状数组并检查交点。这种

假设在画布元素中,我在画布上有一个圆形和一个矩形,我想使用单击这两个元素来完成不同的工作。是否可以区分这两次单击?

传递给onClick回调的事件包含设置为单击位置的pageX和pageY成员

传递给onClick回调的事件包含设置为单击位置的pageX和pageY成员

是的,但我认为没有任何现有的功能可以这样做。基本上,您希望跟踪所绘制的形状(通常通过跟踪它们的顶点坐标),并将单击事件附加到您正在讨论的画布上。触发单击事件后,找到鼠标相对于画布左上角的x和y坐标,然后遍历形状数组并检查交点。这种方法的实现类似于光线跟踪,但更容易实现,因为您只讨论二维


查看本文以了解多边形中的点计算信息:

是的,但我认为没有任何现有功能可以这样做。基本上,您希望跟踪所绘制的形状(通常通过跟踪它们的顶点坐标),并将单击事件附加到您正在讨论的画布上。触发单击事件后,找到鼠标相对于画布左上角的x和y坐标,然后遍历形状数组并检查交点。这种方法的实现类似于光线跟踪,但更容易实现,因为您只讨论二维


查看本文了解多边形中的点计算信息:

另一种方法是使用阴影(即不显示)画布。在这个画布上,你可以用各种颜色从真实的画布上画出各种形状的面具


然后检查阴影画布中的像素颜色,可以确定在“真实”画布中单击了哪个对象。

另一种方法是使用阴影(即未显示)画布。在这个画布上,你可以用各种颜色从真实的画布上画出各种形状的面具

然后,您可以检查阴影画布中的像素颜色,并确定在“真实”画布中单击了哪个对象。

如果您想了解如何开始,我已经做了关于在画布上选择对象的说明。

如果您想了解如何开始,我已经做了关于在画布上选择对象的说明