我已经实现了Domiter和Zalik使用的扫描线方法,为Java中的2D空间中的一组点生成约束Delaunay三角剖分。我想确保我开发的代码真正适用于n
随机生成的点和k
约束边缘。
现在使用通用策略我想从n
个顶点集合中选择一个随机点,然后选择第二个随机点并在它们之间有一个边缘可能不起作用,因为我从定义中理解了受约束的Delaunay三角剖分是约束边是平面直线图的边。因此它们是不相交的。如果随机选择点,则可能必须执行检查以确定它们不产生交叉约束。这种方法可能根本没有效率。
因此,我想知道是否有人知道一种有效的策略来随机生成约束。
提前致谢。
答案 0 :(得分:2)
您可以尝试两个阶段的过程:
生成一小组随机点并构造一个不受约束的Delaunay三角剖分。然后,您可以从这个小三角剖分的边缘中随机选择,以形成约束边集。显然,由于边缘来自三角测量,它们将不相交。
在数据集中附加一组额外的随机点,并构造全集的约束Delaunay三角剖分,强加先前找到的约束边。
虽然我相信这种方法是为三角测量代码构建非交叉随机约束数据集的有效方法,但更好的方法可能是使用实际数据进行测试。
Triangle包中包含几个可能在这方面有用的基准几何。
希望这有帮助。