2

我需要确定在 XAML/C# 中的 Windows 应用商店应用程序 (WinRT) 的画布上绘制的多边形对象的区域。看起来他们从 WinRT 库中剥离了 Geometry.GetArea(),所以很遗憾我不能使用它。由于这个多边形是不规则形状的,有一个动态的点列表,我不能使用任何静态公式。我可以在 WinRT 中使用任何库或第 3 方扩展来完成此任务吗?

4

1 回答 1

0

我能够弄清楚这一点。此方法将采用 Polygon 对象并给出区域。

double GetPolygonArea(Polygon poly)
    {
        List<Point> points = new List<Point>();
        foreach (Point p in poly.Points)
        {
            points.Add(p);
        }
        points.Add(poly.Points[0]);
        double xTotal = 0;
        for (int x = 0; x < points.Count - 1; x++)
        {
            xTotal += ((points[x].X) * (points[x + 1].Y));
        }
        double yTotal = 0;
        for (int y = 0; y < points.Count - 1; y++)
        {
            yTotal += ((points[y].Y) * (points[y + 1].X));
        }
        return Math.Abs((xTotal - yTotal) / 2);
    }
于 2013-02-13T20:31:59.390 回答