检测一个点是在 raphael.js 形状的内部还是外部

bet*_*max 3 javascript svg collision-detection raphael

我有一个 raphael.js 形状,我正在它上面绘制圆圈。如果圆圈没有超出正在绘制的形状的边界,我只希望出现一个圆圈。

为了更清楚地说明这一点,这里有一个我不想发生的例子:

示例 http://img682.imageshack.us/img682/4168/shapeh.png

我希望灰色区域外的圆圈不出现。我如何检测圆形是在灰色形状的内部还是外部?

sel*_*oup 5

确定一个点是否在封闭路径内的一种可能方法是:

  1. 选择绝对在形状之外的坐标。
  2. 从该点到您的实际问题点划一条线。
  3. 计数,线与路径相交的频率。
  4. 如果交叉点的数量是奇数,那么你的点在里面。如果是偶数,重点就在外面。

我不知道这是否对您有很大帮助,因为我根本不了解 raphael.js。但这是解决问题的有效几何方法。