是否有一种简单的方法可以对kineticjs中的多个重叠形状进行鼠标检测(如果在SVG中更容易,则可以使用rapheljs)。即如果我有两个部分重叠的圆圈,我想以某种方式检测四种情况:
1)当没有形状时 2)当圆圈A 3)当圆圈B 4)当超过两个(重叠)圆圈A和B
时但我需要一个可以扩展到" n"的通用实现。圈/形状。
干杯
答案 0 :(得分:5)
是的,只需使用getIntersections方法:
http://www.kineticjs.com/docs/symbols/Kinetic.Container.php#getIntersections
这将返回与给定点相交的所有KineticJS节点(例如鼠标位置)
干杯!
答案 1 :(得分:2)
要解决此问题,您显然正在处理碰撞检测。碰撞检测算法取决于您检查的形状。
首先,您可以使用lineTo,arc等方法,并使用内置的isPointInPath
进行检测,传入鼠标指令。这是最简单的方法,特别是对于奇形状的多边形
if (ctx.isPointInPath(20,50))
{
// code
}