确定点是否位于有界区域内的算法

时间:2011-08-18 15:18:48

标签: c# algorithm

如何判断一个或多个点是否位于给定边界的区域内?例如,在下图中,三个蓝点位于以红色为界的区域内,两个红点位于以蓝色为界的区域内,并且有三个点 - 两个蓝色和一个红色 - 不属于任何一个指示区域。

enter image description here

3 个答案:

答案 0 :(得分:2)

here
它是C,但代码/算法可以很容易地转换为C#。

答案 1 :(得分:2)

从这一点画一条线。检查它是否穿过任何区域边缘和线的哪一侧 如果它在每一侧穿过它们奇数次,它就在该区域内。

答案 2 :(得分:1)

我不知道执行此操作的“算法”,但在C#(.NET框架)中,您可以使用类RegionRegion.IsVisible方法执行此操作。您可以使用GraphicPath构造函数创建自定义区域。 GraphicPath本身可以由Point数组构建。