next up previous
Next: 数値的近似 Up: 等高線のアルゴリズムについて Previous: 等高線のアルゴリズムについて

   
描く等高線について

2変数関数の等高線(等値線)の定義では, 変数 xy の関数 z = f(x,y) に対して, zc = f(x,y) の 解曲線をレベル z = zc の等高線という. ところが, たとえば関数 z=f(x,y) を海抜としたとき, 整地された台地のような海抜が一定の土地(等高面)があったとすると, その上では等高線は無数に存在して一意的には決らない. そこで, 本プログラムでは等高線のうち, $z \geq z_c$ の領域と z<zc の領域の境界にあたるものを抽出することにする. こうすると抽出された等高線は台地の縁を示すものとなる. プログラムによって実際に導出されるものは, 等高線上の点の座標の列である. そこでFigure:1 のように, たどって描かれる曲線の左側が $z \geq z_c$, 右側が z<zc となるような点列を求めることにする.

ここで求める等高線では, 上で述べたような台地の縁が抽出される反面, 海(海抜の最小値 z=0の等高面)と陸地(z>0)の境界として海岸線を求めることができない. このような場合は, 有限な正の微小値 $\varepsilon$ を考えて $z < \varepsilon$ の領域を海と考えれば $z=\varepsilon$ の等高線で海岸線 を表すことができる. または便宜的に海抜の符号を変えた関数の z=0 の 等高線を海岸線することも可能である.


  
Figure 1: 求める等高線上の点列
\begin{figure}
\begin{center}
\begin{picture}
(200,100)
\qbezier(10,10)(50,50)(1...
...ne(-1,0){15}}
\put(200,0){\line(-1,1){10}}
\end{picture}\end{center}\end{figure}



Amane TANAKA
2000-04-23