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

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

在此处输入图像描述

看这里
它是C,但代码/算法可以轻松转换为C#。

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

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