c# - Clipper Lib 总路径面积(复数)
问题描述
我用谷歌搜索和搜索,没有找到与我需要的类似的东西。
Clipper Lib 提供了一个计算路径面积的函数:
double Area(Path path)
我找不到一种方法来缩放它以计算复杂多边形的面积(其中有孔的多边形等)。
意思是,我需要创建类似的东西:
double Area(Paths paths, PolyFillType FillType = PolyFillType.pftEvenOdd)
请有人启发我如何做到这一点?先感谢您
PS:我不能简单地求面积之和,因为这个复杂的多边形可能有洞。
解决方案
看起来 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;
}
推荐阅读
- python-3.x - 为映射数据提取数据框列
- clojure - 如何在 Clojure 中更改项目类路径
- css - CSS背景不会出现
- java - iBatis SQL Mapper 日期参数
- oracle - Oracle 脚本无任何异常地停止工作
- python - 检查字符串是否在列表中的字典值中
- python - sys.stdout.write 刷新输出问题
- javascript - 有没有办法为脚本自定义属性分配变量的值?
- typescript - 对象不可分配给 { [key: string]: any }?
- javascript - 如何从 jQuery UI Datapicker 语言文件中读取月份名称?