我正在使用记忆随机游走实施2d delaunay三角测量。我不明白的是,如果插入的点不在任何前面的三角形中,会发生什么。
triangle τ = α;
triangle ψ = τ; // the previous triangle is initialized as τ
boolean found = false;
while not found do
found = true;
int k = random int(3); // k ∈ {0, 1, 2}
for i = k to k + 2 do
point l = t(i mod 3);
point r = t[(i+1) mod 3];
// “remembering” improvement condition
if ψ is not neighbor of τ trough ²lr then
if orientation2D(l, r, q) < 0 then
ψ = τ;
τ = neighbor of τ trough ²lr;
found = false;
break; // terminates the for cycle
end
end
end
end
return τ;
我的猜测是,如果没有邻居τ通过llr它就在外面。如何找到它连接的点是另一个问题。我假设l和r是两个点,但它可能更多。
答案 0 :(得分:1)
我的猜测结果是正确的。如果你必须越过边缘但找不到三角形,它就在外面。它连接的点是l,r和任何可以连接到该点而不会越过一条线的邻居以及该点的邻居......