Clipper Lib总路径面积(复数)

时间:2018-05-30 13:02:24

标签: c# clipperlib

我用Google搜索并搜索过,并没有发现任何类似于我需要的内容。

Clipper Lib提供了计算路径面积的函数:

double Area(Path path)

我找不到一种方法来缩放它来计算复杂多边形的面积(带有洞的多边形等)。

意思是,我需要创建类似于此的东西:

double Area(Paths paths, PolyFillType FillType = PolyFillType.pftEvenOdd)

可以请有人赐教我怎么做? 提前谢谢

PS:我不能简单地计算区域的总和,因为这个复杂的多边形可能有洞。

1 个答案:

答案 0 :(得分:1)

似乎Clipper.Area()将孔作为负区域值返回,所以我们可以总结一切。

double CalcArea(List<List<IntPoint>> polygon)
{
    List<List<IntPoint>> paths = Clipper.SimplifyPolygons(polygon);
    double totalArea = 0;
    for (int i = 0; i < paths.Count; i++)
        totalArea += Clipper.Area(paths[i]);
    return totalArea;
}