测试算法以确定点是否在区域内

时间:2013-11-06 19:31:21

标签: c++ algorithm geometry

这是一个我几乎没有成功解决的几何问题:

  • 我们有四个点 A,B,C,D 定义一个区域
  • 和两点 E,F
  • E 位于多边形的边界 ABCD
  • F 在边界之外

我们知道每个点的 (x,y) 坐标。

(见下图)

illustration

确定任何一点 G(x,y) 如果 G ABCD 内部或外部>

有任何想法吗?

由于 阿德里安

1 个答案:

答案 0 :(得分:2)

针对您的具体问题(四边形 - 凸面),您可以执行以下操作:
    1)计算4边的方程
    2)计算其上有G的垂直线与每条线的交点     3)如果你找到偶数个交叉点,那么它就在外面     4)如果你发现奇数个交叉点,那么它就在里面     5)小心端点交叉点
    6)如果G位于其中一侧,请小心