我用Google搜索并搜索过,并没有发现任何类似于我需要的内容。
Clipper Lib提供了计算路径面积的函数:
double Area(Path path)
我找不到一种方法来缩放它来计算复杂多边形的面积(带有洞的多边形等)。
意思是,我需要创建类似于此的东西:
double Area(Paths paths, PolyFillType FillType = PolyFillType.pftEvenOdd)
可以请有人赐教我怎么做? 提前谢谢
PS:我不能简单地计算区域的总和,因为这个复杂的多边形可能有洞。
答案 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;
}