如何计算XY坐标是否在某个区域内?

时间:2014-10-22 18:07:51

标签: algorithm computational-geometry

所以让我想象我有一个10x10的网格(可以是任何大小,但仅仅是为了例如10),并且使用该网格有3个点标记三角形的顶点(也可以是任意数量的分隔任意形状的点。)

所以我的问题是..如果有任何给定的坐标在该形状内,是否有一种方法可以通过这些信息以编程方式确定?

不要说坐标是3,2-7,3-5,5。我可以在迭代给定网格时选出落在这些点内的单元格吗?

1 个答案:

答案 0 :(得分:2)

调用P你要检查的点,S 1 ,S 2 ,...,S n n个顶点形状。

假设所有i的P≠S i

  1. P在边界上吗?
  2. 如果1为否,则随机选择通过P
  3. 的L行
  4. 选择一个你知道在多边形之外的点F
  5. 按照L与F形状的交点顺序,直到你点击P(调用序列F,...,P)
  6. 计算序列F,...,P,将值存储在M
  7. 如果M是偶数,则P在多边形中,否则P不在多边形
  8. 注意:通过引入起点F,我们更改the point in polygon algorithm description on wikipedia

    中提到的奇偶校验