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