【问题标题】:Delaunay_triangulation_2 in CGAL doesn't keep order of input verticesCGAL 中的 Delaunay_triangulation_2 不保持输入顶点的顺序
【发布时间】:2021-09-08 10:21:11
【问题描述】:

我有一组点,我正在用它们做一个 CGAL::Delaunay_triangulation_2。但是,生成的三角剖分中的点顺序与输入点中的不同。例如,如果输入点 0 在 (-1,-1) 中,则三角剖分中的输出点 0 不在同一位置。位置 (-1,-1) 的点是另一个点,但不一定是第 0 个点。

对我来说,保持顺序很重要,因为我对原始点集进行了一些引用(作为索引),所以我需要输入集中和输出集中的顶点编号 i 为一样的。

有没有办法让输出集的排序与输入集相同?我不在乎是否需要对输入集重新排序,因为在获取参考之前我可以轻松地做到这一点。

【问题讨论】:

    标签: cgal delaunay


    【解决方案1】:

    正如here 所记录的:“请注意,此函数不保证按照 PointInputIterator 的顺序插入点,因为 spatial_sort() 用于提高效率。”

    如果您一个接一个地插入点,那么它们将按插入顺序排列(前提是没有重复)。

    另请参阅this example,它可用于将输入 id 设置为顶点的info()(然后可以创建一个向量以从 id -> 顶点直接访问)。

    【讨论】:

    • 谢谢,我有更改要一一插入(不会太多)。这解决了我将数据发送到 python 脚本,调用 paraview.Delaunay2D 并返回。工作正常
    猜你喜欢
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2015-08-05
    • 2018-09-29
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多