WPF多边形的基本计算:面积和质心

Zam*_*oni 5 c# wpf geometry polygon

System.Windows.Shapes.Shape命名空间提供对可在XAML或代码中使用的Polygon对象的访问.

是否有一个Microsoft库在Polygon类似区域或centriod上提供一些非常基本的计算?

我的偏好是不要自己重新实现这些功能或复制数学/几何库.

Tho*_*que 9

RenderedGeometry属性返回一个Geometry对象,该对象本身有一个GetArea方法.

似乎没有什么可以计算质心,但它应该很容易做到,基于以下Points属性Polygon:

Point centroid =
    polygon.Points.Aggregate(
        new { xSum = 0.0, ySum = 0.0, n = 0 },
        (acc, p) => new
        {
            xSum = acc.xSum + p.X,
            ySum = acc.ySum + p.Y,
            n = acc.n + 1
        },
        acc => new Point(acc.xSum / acc.n, acc.ySum / acc.n));
Run Code Online (Sandbox Code Playgroud)