私はDelaunay三角測量を計算するために使用できるクワッドエッジデータ構造を記述するGuibas-Stolfi論文を調べていました。私は、Javaを使ってQuadEdgeのデータ構造を実装しています。クワッドエッジデータ構造makeEdgeロジック
私はこのウェブサイトQuad Edge data Structure Javaに記載されている実装に従っていました。
要するに要約すると、クワッドエッジ構造が2つの動作を含む即ち
- makeEdge - >スプライス(B)
- サブ分割に存在するエッジEのクワッドエッジを返し - >クワッドエッジaおよびbに関連するトポロジを変更するために使用される関数。
ここで、Quad Edgeのデータ構造は、DataとNext pointerという2つのフィールドで構成されています。
次のフィールドは、式 e [r] .Next = e(Rot^r)Onextを使用して計算されます。 Onextについての考えについては
、私は今Guibas-Stolfi紙からの図を添付しています、サンプルコードは、クワッドエッジのすべての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つまりは(次の反時計回りのエッジはeと同じ起源を持つ)エッジ自体であれば、デュアルエッジが取られたときに私の質問は、なぜそれが他のエッジであるた設定されています。
この質問を間違った場所に置いた可能性があります。私はそれとそれによって引き起こされる不便をお詫びします。 Q1とQ3の両方が同じポイント(無限遠ダミーポイント)で、原点を持っているよう
おかげで、 Chaitanya