如何判断一个或多个点是否位于给定边界的区域内?例如,在下图中,三个蓝点位于以红色为界的区域内,两个红点位于以蓝色为界的区域内,并且有三个点 - 两个蓝色和一个红色 - 不属于任何一个指示区域。
答案 0 :(得分:2)
看here
它是C,但代码/算法可以很容易地转换为C#。
答案 1 :(得分:2)
从这一点画一条线。检查它是否穿过任何区域边缘和线的哪一侧 如果它在每一侧穿过它们奇数次,它就在该区域内。
答案 2 :(得分:1)
我不知道执行此操作的“算法”,但在C#(.NET框架)中,您可以使用类Region的Region.IsVisible
方法执行此操作。您可以使用GraphicPath构造函数创建自定义区域。 GraphicPath本身可以由Point数组构建。