用的是几何的线相交的知识,通过以目标点往x轴一个方向做延长线,再判断与这一个闭合轮廓的线相交的情况,通过相交点的数量来最终得出是否在这个闭合轮廓内。
原文链接: https://blog.csdn.net/Oneal5354/article/details/108284693.
方法示例
public static class SomeMethod
{
public static bool IsInsideOutline(this XYZ TargetPoint, List<Line> lines)
{
bool result = true;
int insertCount = 0;
Line rayLine = Line.CreateBound(TargetPoint, TargetPoint.Add(XYZ.BasisX * 1000));
foreach (var areaLine in lines)
{
SetComparisonResult interResult = areaLine.Intersect(rayLine