均匀分布/放宽域内的2D点集

时间:2013-06-26 19:49:41

标签: distribution diagram points delaunay voronoi

我目前正在研究涉及2D点集修改作为子问题的项目。点集本身将包含几个点集群,我将以某种方式将它们彼此分开,然后在集群船体内放松它们的点。或者,它足以获得簇的船体点并将它们用作域并在其内部分布(粗略地)均匀间隔的点。因此可以省略放松。 我将需要处理几个点集,包括~100k顶点作为最坏情况,因此使用的算法应该很快。 我知道这个主题的复杂性,这就是为什么我不想重新发明轮子,而是尽可能使用现有的代码。到目前为止,我发现了以下内容:

  1. 用于点集放松:Fortunes / Sullivans“Sweep Line”算法:据说是最快的单线程voronoi图构造函数。然而,代码似乎很难扩展,并且每个默认值可提取的信息不包含至少需要计算质心并进行下一次弛豫迭代的voronoi单元格船体数据(它们的顶点位置)。此外,除矩形之外的任何域都不可用。

  2. CVT:一组用于创建voronoi图的多功能库。它支持在用户指定的区域内放松点和点集。

  3. CGAL:广泛的框架与基本的MP支持,但显然没有集成的放松方法。我需要创建每个点集子集的delaunay三角剖分并将其提供给voronoi适配器,然后给我迭代器来查询voronoi单元格的船体数据以进一步放松。它应该支持域名,因为我通过文档(几千页:)

  4. 更多,例如Voro ++似乎主要用于3D;三角形,使用区域约束从给定域创建delaunay三角剖分,以便可以使用三角形顶点作为结果点。

  5. 好的,目前在我看来,CVT应该能够满足我的需求,同时保持这一切非常简单。但我不确定,所以问题是:有没有人有点集放松实现的经验,最好是使用域?什么现有代码更可取?

    感谢毛皮建议!t

0 个答案:

没有答案