Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Delaunay三角形构造中未删除重复边_Javascript_Delaunay - Fatal编程技术网

Javascript 在Delaunay三角形构造中未删除重复边

Javascript 在Delaunay三角形构造中未删除重复边,javascript,delaunay,Javascript,Delaunay,我正在尝试实现Delaunay三角剖分。但是,我似乎在创建重叠三角形时遇到了一个问题: 我正在根据网站上描述的实现。我只是使用蛮力循环来检查集合中是否已经存在边 v = vertex to be added edgeBuffer = []; for each triangle if v is in the triangle's circumscribed circle for each edge in the triangle check if i

我正在尝试实现Delaunay三角剖分。但是,我似乎在创建重叠三角形时遇到了一个问题:

我正在根据网站上描述的实现。我只是使用蛮力循环来检查集合中是否已经存在边

v = vertex to be added
edgeBuffer = [];
for each triangle
    if v is in the triangle's circumscribed circle
        for each edge in the triangle
            check if it's already in edgeBuffer
            if not, add it
        remove triangle

我怀疑这是我的算法的另一部分出了问题并导致了这种情况的发生,但我已经以一种非常简单的方式实现了一切。这个代码有什么问题

如果边已存在于边缓冲区中,且不是超级三角形后的第一个三角形,则需要将其从边缓冲区中删除,而不是跳过循环。新计算需要此边的顶点。只需在其他缓冲区中重新插入顶点或从边缘缓冲区中删除边缘