微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CGAL::用3D点简化单线

如何解决CGAL::用3D点简化单线

我正在尝试使用 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_2K > 是 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 举报,一经查实,本站将立刻删除。