【问题标题】:CGAL slicer doesn't output polylines in proper orderCGAL 切片器未按正确顺序输出折线
【发布时间】:2021-06-28 17:49:58
【问题描述】:

是否有任何选项或要求可以使 CGAL::Polygon_mesh_slicer 输出顺序正确。

例如。我已经加载了一个网格并将其转换为CGAL::Surface_mesh。然后我在那个网格上使用了切片器来获取折线列表。问题是这些折线不是顺时针或逆时针的。

更准确地说,输出折线不是连续的

这是从顶部开始的立方体切片。

o---1--o
|      |
2      3
|      |
o--4---o

我希望输出类似于:1->2->4->3 或相反 但我或多或少得到了 1->4->2->3

【问题讨论】:

    标签: cgal


    【解决方案1】:

    here 所述,“每条生成的折线 P 的方向为,对于 P 中的两个连续点 p 和 q,包含线段 pq、向量 pq 和正交向量的面的法线向量的plane 是直接正交基。选择每个面的法向量指向逆时针看到其顶点序列的面的一侧。"

    所以多段线的方向取决于平面和网格面的方向。

    【讨论】:

    • 感谢您的回复。我已将描述更正为更准确。如果我理解正确,则该文档说明了如何计算单折线的方向 cw 或 ccw ,它取决于面法线。但问题是我的问题与所有折线之间的顺序有关。它们只是混合在一起,我无法创建多边形,从切片器中逐个拾取输出
    • 折线的方向取决于网格的方向和平面的方向。因此,如果您有一个一致定向的网格(如果使用多个平面,则使用一致的方向),那么所有多段线的方向应该“相似”。如果不是,我会说这是一个错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多