CGAL 中的 Delaunay_triangulation_2 不保持输入顶点的顺序
Posted
技术标签:
【中文标题】CGAL 中的 Delaunay_triangulation_2 不保持输入顶点的顺序【英文标题】:Delaunay_triangulation_2 in CGAL doesn't keep order of input vertices 【发布时间】:2021-09-08 10:21:11 【问题描述】:我有一组点,我正在用它们做一个 CGAL::Delaunay_triangulation_2。但是,生成的三角剖分中的点顺序与输入点中的不同。例如,如果输入点 0 在 (-1,-1) 中,则三角剖分中的输出点 0 不在同一位置。位置 (-1,-1) 的点是另一个点,但不一定是第 0 个点。
对我来说,保持顺序很重要,因为我对原始点集进行了一些引用(作为索引),所以我需要输入集中和输出集中的顶点编号 i 为一样的。
有没有办法让输出集的排序与输入集相同?我不在乎是否需要对输入集重新排序,因为在获取参考之前我可以轻松地做到这一点。
【问题讨论】:
【参考方案1】:正如here 所记录的:“请注意,此函数不保证按照 PointInputIterator 的顺序插入点,因为 spatial_sort() 用于提高效率。”
如果您一个接一个地插入点,那么它们将按插入顺序排列(前提是没有重复)。
另请参阅this example,它可用于将输入 id 设置为顶点的info()
(然后可以创建一个向量以从 id -> 顶点直接访问)。
【讨论】:
谢谢,我有更改要一一插入(不会太多)。这解决了我将数据发送到 python 脚本,调用 paraview.Delaunay2D 并返回。工作正常以上是关于CGAL 中的 Delaunay_triangulation_2 不保持输入顶点的顺序的主要内容,如果未能解决你的问题,请参考以下文章