约束Delaunay三角剖分与耳剪裁

时间:2014-04-04 07:29:25

标签: triangulation delaunay

我不是三角测量问题的专家。所以我决定问。 :)
有一个简单的Ear Clipping算法,其复杂度为O(n ^ 2)
并且存在约束的Delaunay算法,其具有复杂度O(n * log n)

所以问题是。 Delaunay algoritm比Ear Clipping快吗?我问,因为我明白,如果Delaunay的n时间明显更大,那么毕竟它可能会更慢。

P.S。 http://code.google.com/p/poly2tri/ - 德劳内, http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf - 耳朵剪辑

P.P.S那么受约束的Delaunay是最快的吗?

3 个答案:

答案 0 :(得分:0)

Sweepline Delaunay算法可以是O(n * log(n))而不是O(log(n))。

使用少量的点,具有最坏情况O(n ^ 2)的实现可以比O(n * log(n))实现更快。

一个原因可能是O(n * log(n))算法可能必须使用分层数据结构。不断添加和删除点并平衡树可能代价高昂,并使算法运行速度变慢。

答案 1 :(得分:0)

在实际环境中,您可以观察Delaunay三角测量的线性运行时间。至少对于C ++来说,有些库可以对每秒> 1 mio点进行三角测量:

www.cgal.org

http://www.geom.at/fade2d/html/

http://www.cs.cmu.edu/~quake/triangle.html

答案 2 :(得分:0)

您可以尝试提升点并将提升点的下凸壳向后投射到2d平面。结果应该给出delaunay三角测量:https://cs.stackexchange.com/questions/2400/brute-force-delaunay-triangulation-algorithm-complexity