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

セグメントが辺の場合

二次元空間を三角形で分割すると, 三角形の辺は必ず2つの三角形で共有される. 説明のため, Figure: 8のようにセグメント S0 が2つの三角形 TA,TBに共有されている場合を考える. そして三角形 TA,TB のまわりのセグメントを SA1,SA2,SA3,SB1,SB2,SB3 とする. また S0 の両端の関数値をそれぞれ z1, z2 とし, 頂点 SA2, SB2 における関数値を zA, zB とする. セグメント S0 が等高線の初期点や通過点を含むのは下の場合であり, それぞれ,横切る三角形や次に移動するセグメントは下のようになる.

  
Figure 8: 三角形の辺を横切る等高線
\begin{figure}
\begin{center}
\begin{picture}
(120,120)
\put(65,10){\circle*{...
...5){\line(-1,-1){15}}
\put(60,57){$S_0$ }
\end{picture} \end{center}\end{figure}

1.
三角形 TA を次に横切る場合

$T_A=\mbox{false}$ かつ z2 < zc < z1 のとき, 等高線は三角形 TA を横切る. そして,

(a)
zc = zA のとき SA2 にカレントセグメントが移動する.
(b)
$z_c \in (z_2,z_A)$ のとき SA1 にカレントセグメントが移動する.
(c)
$z_c \in (z_1,z_A)$ のとき SA3 にカレントセグメントが移動する.
2.
三角形 TB を次に横切る場合

$T_B=\mbox{false}$ かつ z1 < zc < z2 のとき, 等高線は次に三角形 TaB を横切る. そして,

(a)
zc = zB のとき SB2にカレントセグメントが移動する.
(b)
$z_c \in (z_1,z_B)$ のとき SB1にカレントセグメントが移動する.
(c)
$z_c \in (z_2,z_B)$ のとき SB3 にカレントセグメントが移動する.
上記以外は, イニシャルセグメントについては初期点が存在しないと考え, その他の場合はカレントセグメントの z=zc の点が等高線の終点となる と判断する. (i,j)番目の格子(Figure: 5)のうち三角形の辺に対応する ものは S1,S2,...,S6 であり, それぞれのセグメントを共有する2つ三 角形およびそのまわりのセグメントはFigure: 9 のようになる.


  
Figure 9: 格子(i,j)に含まれる辺のまわり三角形とセグメント
\begin{figure}
\begin{center}
\begin{picture}
(400,500)
\thinlines
\put(0,4...
...t(325,155){\line(-1,-1){20}}
\thinlines
\end{picture} \end{center}\end{figure}



Amane TANAKA
2000-04-23