我已经在谷歌上搜索过了,没有找到任何与我需要的相似的东西。
Clipper Lib提供了一个计算路径面积的函数:
double Area(Path path)
我找不到一种方法来计算复杂多边形(带洞的多边形,等等)的面积。
意思是,我需要创建类似下面这样的东西:
double Area(Paths paths, PolyFillType FillType = PolyFillType.pftEvenOdd)
有没有人能教教我怎么做?提前谢谢你
PS:我不能简单地计算面积的总和,因为这个复杂的多边形可能有洞。
发布于 2018-06-02 00:00:12
看起来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;
}https://stackoverflow.com/questions/50605436
复制相似问题