2012-03-07 44 views
1

我正在通過Guibas-Stolfi論文描述可用於計算Delaunay三角剖分的四邊形數據結構。我正在使用java來實現QuadEdge數據結構。四邊形數據結構makeEdge邏輯

我正在關注本網站上提到的實施Quad Edge data Structure Java

總結總之,在Quad邊緣結構包括2個操作即

  1. makeEdge - >返回一個四邊對存在於一個子部分的邊e
  2. 剪接(A,B) - >用於更改與四邊a和b相關聯的拓撲的函數。

現在,Quad Edge數據結構由2個字段組成,即Data和Next指針。

下一個字段的計算公式爲: e [r] .Next = e(Rot^r)Onext。

有關Onext一個想法,我從Guibas-斯托爾菲紙

Edge Functions

附着的圖現在,將樣品代碼設置爲所有的4份四邊緣的下一個指針。他們設置如下1

q0 = new QuadEdge(); 
q1 = new QuadEdge(); 
q2 = new QuadEdge(); 
q3 = new QuadEdge(); 

q0.Onext = q0; 
q1.Onext = q3; //on the sphere, left=right (How?? or Why??) 
q2.Onext = q2; 
q3.Onext = q1; 

我的問題是,如果Onext即(具有相同起源後的下一逆時針邊緣)是邊緣本身,爲什麼它的另一優勢在雙邊緣取。

我可能把這個問題放在了錯誤的地方。我對此表示歉意,併爲此造成的不便表示歉意。

感謝, 切塔尼亞

回答

1

它看起來像Q1和Q3都在同一地點(在無窮啞點)的由來。這就是爲什麼q1.oNext == q3q3.oNext == q1