next up previous
Next: マスク領域 Up: 等高線の初期点および通過点の判定方法 Previous: セグメントが頂点の場合

セグメントが頂点の場合の三角形領域を調べる順番

鞍点(Figure:12)ように1つの点が複数の等高線によって共有される場合 もあり得る. このような場合でも z<zc の領域が右手になるように等高線を追っていけば, 等高線は鞍点に対して, 右下から入って右上に抜けるものと, 左上から入って左下に抜けるものに分けることができる. すなわち, この場合どの方向から等高線がカレントセグメントに至った かによって, 次にどこのセグメントに進むかが変ってくる.

たとえば等高線が, Figure: 10のセグメント S2 から三角形 T1 を横切って S0 に至ったとすると三角形 T1T2 の間の S0S3を結ぶ線分上では z < zc である. 等高線が次に横切る三角形を T2,T3, T4, ...のように T1 の隣の三角形からはじめて左回りの順番に 3.3.2 で述べた方法で判定すれば z < zc の領域と $z \geq z_c$ の領域の境界点を含むセグメント を見つけることができる.

サブルーチン ngtcl では,つぎのようにしている. まず, カレントセグメントを移動させる手続きの中で Figure: 10 S1, S2, ... から S0 にセグメントが移動 したときに, それぞれ 1,2,... を変数 ia に代入しておく. そして, 次のセグメントを探す手続きで, ia の値から等高線がどの三角形を横切って S0 に至ったかを判断し, その隣の三角形からはじめて左回りの順番で次に等高線が横切る三角形を判定する.


  
Figure 12: 鞍点
\begin{figure}
\begin{center}
\begin{picture}
(150,150)
\put(75,75){\circle*{...
...(60,140){$z>z_c$ }
\put(60,10){$z>z_c$ }
\end{picture} \end{center}\end{figure}



Amane TANAKA
2000-04-23