我有一个 raphael.js 形状,我在上面绘制圆圈。如果圆圈没有超出它被绘制到的形状的边界,我只希望出现一个圆圈。
为了更清楚地说明这一点,这是我不希望发生的示例:
示例 http://img682.imageshack.us/img682/4168/shapeh.png
我希望灰色区域之外的圆圈不出现。我如何检测一个圆圈是在灰色形状的内部还是外部?
我有一个 raphael.js 形状,我在上面绘制圆圈。如果圆圈没有超出它被绘制到的形状的边界,我只希望出现一个圆圈。
为了更清楚地说明这一点,这是我不希望发生的示例:
示例 http://img682.imageshack.us/img682/4168/shapeh.png
我希望灰色区域之外的圆圈不出现。我如何检测一个圆圈是在灰色形状的内部还是外部?
确定一个点是否在封闭路径内的一种可能方法是:
我不知道这是否对您有很大帮助,因为我根本不了解 raphael.js。但这是解决问题的有效几何方法。
<g>
您可以在包含圆圈的组(元素)上应用剪辑路径(应定义为示例中的灰色形状)。
请参阅w3c SVG 测试套件中的这个示例,了解如何使用剪辑路径。
这看起来非常类似于“命中测试 SVG 形状? ”。
您只需要在圆的位置上调用 getIntersectionList() ,看看它是否返回大的灰色形状。