问题描述
我正在尝试使用 CGAL::Simplify 来简化 3d 折线,它是一个地形,所以高程对于简化来说并不重要,但我需要携带它们,因为我需要它们在简化的折线上。折线可以是开放的或封闭的(多边形)。
当我尝试使用 3d 点调用 PS::simplify 时出现问题。我检查过,它可以在 2d 点上正常工作。有趣的是,它接受 3d 点作为多段线的开始和结束参数,但不接受 back_inserter 参数。
将 ct 作为 PS::Simplification 的第一个参数不适用于我的应用程序,因为错误 #5439 已经发布在 git 上(Irineu 先生正在处理它)。我正在尝试解决此错误,因此我正在尝试使用此不同版本的 PS::Simplification 一一简化地形轮廓线,但我正面临此问题。请注意,我正在调用不同版本的 PS::Simplify,其中参数 1 和 2 是折线的开始和结束(不是 ct)。结果是: std::deque
观察结果是 Point_2 应该被称为 Point_3 因为它是一个 typedef K::Point_2 但 K > 是 typedef CGAL::Projection_traits_xy_3,我的错误。
关于代码:
simplify(P1.begin(),P1.end(),CostSquare(),Stop(0.5),std::back_inserter(Result),Closed); <<--- Version of simplify for single polylines
typedef K::Point_2 Point_2;
std::deque<Point_2> Result;
namespace PS = CGAL::Polyline_simplification_2;
typedef CGAL::Exact_predicates_exact_constructions_kernel Epic;
typedef CGAL::Projection_traits_xy_3<Epic> K;
typedef CGAL::Polygon_2<K> Polygon_2;
Polygon_2_2 P1;
我遗漏了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)