Kineticjs重叠形状鼠标过度检测

时间:2012-07-06 08:39:56

标签: html5-canvas mouseover kineticjs

是否有一种简单的方法可以对kineticjs中的多个重叠形状进行鼠标检测(如果在SVG中更容易,则可以使用rapheljs)。即如果我有两个部分重叠的圆圈,我想以某种方式检测四种情况:

1)当没有形状时 2)当圆圈A 3)当圆圈B 4)当超过两个(重叠)圆圈A和B

但我需要一个可以扩展到" n"的通用实现。圈/形状。

干杯

2 个答案:

答案 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
    }