小编Hy-*_*Hy-的帖子

具有不同性能的两个项目中的相同方法

我在两个项目中看似完全相同的C#代码基准测试存在问题。

该代码是卷绕数算法的C#实现,用于找出点是否在多边形内部。

该列表是具有经度和纬度的顶点的有序列表。从每个顶点按顺序绘制一条线时,将绘制出多边形,然后该方法确定该点是否在多边形内部。

这是代码:

public static bool IsPointInPolygon(List<Vertex> polygon, Vertex point)
{
    int wn = 0;
    for (int i = 0; i < (polygon.Count - 1); i++)
    {
        if (polygon[i].Latitude <= point.Latitude)
        {
            if (polygon[i + 1].Latitude > point.Latitude)
            {
                if (IsLeft(polygon[i], polygon[i + 1], point) > 0)
                    wn++;
            }
        }
        else
        {
            if (polygon[i + 1].Latitude <= point.Latitude)
            {
                if (IsLeft(polygon[i], polygon[i + 1], point) < 0)
                    wn--;
            }
        }
    }
    return wn != 0;
}

private static double …
Run Code Online (Sandbox Code Playgroud)

c#

1
推荐指数
1
解决办法
103
查看次数

标签 统计

c# ×1