【发布时间】:2013-03-26 11:08:57
【问题描述】:
我正在使用多边形裁剪库Clipper 的 c++ 版本,我想减少多边形中的顶点数量,保持几乎相同的形状。
作为附加要求,我必须“仅向外”近似我的多边形:生成的简化多边形必须与原始多边形一致。
我想过:
- 凸壳,满足“仅向外”的条件,但它过于简化了我的多边形
- Ramer-Douglas-Peucker algorithm,这很好,因为它让我选择错误但它不满足“仅向外”条件。
然后我看了一下psimpl library,最接近我要求的算法似乎是Opheneim algorithm
同时使用最小和最大距离容差来限制搜索区域
但最小距离不能为0。
有没有办法解决这个问题?你知道任何解决它的 c++ 库吗?
【问题讨论】:
-
并不是我建议仅将 VTK 用于此目的,您可能需要查看 vtkDecimatePro 类以找到有关它们如何做到这一点的线索。他们还很好地记录了他们在以下情况下如何处理数据:vtk.org/doc/release/4.0/html/classvtkDecimatePro.html#_details
-
2D 还是 3D?如果是 3D,
mesh decimation是 Google 术语。例如。 - openmesh.org/Documentation/OpenMesh-2.0-Documentation/… -
@roger_rowland 2D,不过还是谢谢你。