2

XAML / C#のWindowsストアアプリ(WinRT)のキャンバスに描画されたポリゴンオブジェクトの領域を特定する必要があります。WinRTライブラリからGeometry.GetArea()を削除したように見えるので、残念ながらそれを使用することはできません。このポリゴンは不規則な形状であり、ポイントの動的リストがあるため、静的な数式は使用できません。これを実現するためにWinRTで使用できるライブラリまたはサードパーティの拡張機能はありますか?

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 に答える