2012-03-07 107 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