【发布时间】:2021-08-24 03:18:37
【问题描述】:
请看下面的附图。几乎没有额外的边缘,并且在添加每个点时它们似乎满足“点不在外接圆内”属性。我已经从两个屏幕截图中删除了超级三角形。
我是否需要重新运行循环以消除坏三角形?但这不是 Bowyer-Watson 算法所说的。有人可以帮助了解这里可能出了什么问题吗?
编辑:这些是第一个屏幕截图的处理顺序中的顶点。
(1500, 1500)
(3300, 1500)
(2800, 2800)
(1750, 2600)
(2350, 2900)
更新 1:
在重新填充多边形时,我将新点与所有边缘连接起来。这就是为什么会出现额外的边缘,但我还不知道如何选择和忽略单个边缘点。
(对不起,我不能在这里发布我的代码。任何建议都会很有帮助。)
【问题讨论】:
-
如果不知道您对该算法的实现实际上在做什么,这很难确定。也许您至少可以提一下两张图片中的点是按什么顺序添加的?
-
除此之外,让我印象深刻的是,在这两个图像中,一些三角形的周长都丢失了。我不认为这里的算法有问题,你应该仔细检查你的代码。
-
@peabrainiac 感谢您的回复。我已经随机化了坐标,所以我不能说附加图像中的顺序。数据现在被覆盖。我一直在重新检查代码,但看不到重复的地方。
-
检查代码时要查看的另一件事是为什么您有交叉的边缘。这不应该发生在德劳内。在你移除超级三角形之前,交叉点在那里吗?
-
@GaryLucas 我会重新检查代码。是的,超三角形顶点的交叉点就在那里。我最终删除了所有具有超三角形顶点的三角形。该算法没有说明不考虑包含超顶点的三角形。我不确定这是否会导致这些额外的边缘。