Delaunay Walk点在三角形外

Delaunay Walk point outside triangles

我正在使用记忆随机游走实现 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 τ;

我对此的猜测是,如果 τ 槽 ²lr 没有邻居,它就在外面。如何找到它连接的点是另一个问题。我假设 l 和 r 是其中的两个点,但可能更多。

事实证明我的猜测是正确的。如果你必须穿过边缘但找不到三角形,它在外面。它连接的点是 l,r 和任何可以连接到该点而不穿过线的邻居以及该点的邻居......