Next:マーカー描画 Up:基本描画 Previous:U座標系で線分を描く

折れ線を描く

これは折れ線ルーチンの使用例である. 折れ線ルーチンも例によって4つ (R座標系での作画ルーチンも含めると6つ)のタイプがあるが, ここでは, U座標系で描画する根回し型ルーチンのみを取り上げる.


sgpk03.f:page1


sgpk03.f:page2

折れ線描画 / ラインインデクスとラインタイプ:

折れ線を描くルーチンは SGPLU (SG PolyLine U)である. 折れ線ルーチンでは線分属性としてラインインデクスの他に, 実線, 点線等といったラインタイプが指定できる. これらを変更するルーチンは, それぞれ SGSPLISGSPLTである. 1ページ目にはいろいろなラインインデクスと ラインタイプの例を示してある.

サイクル長を変える:

SGPLUで描く点線や破線のパターンの1サイクルの長さは V座標系で指定されている. したがって, 小さなビューポートで描画するとビューポートの 大きさに比べてパターンが長すぎるため,線分部分と空白部分の バランスが悪くなることがある. それとは逆に, ディスプレイ等に点線や破線を表示した場合, ディスプレイの分解能が悪いと, パターンが潰れて判別できなくなることもある. そのようなときには SGRSET で内部変数 'BITLEN'を変更すると, パターンのサイクル長を変えることができる.

パターンを変える:

GRPH1 では実線, 破線, 点線, 一点鎖線の4種類の線種を指定できるが, これ以外のパターンの線種も指定することができる. 実は, SGPLTの引数に4より大きい数値を指定すると, その整数の2進表現のパターンを指定したものと見なされる. すなわち, 整数の下位16 bit のうち1の部分に線を描き, 0の部分は空白となるようなパターンを設定する. このパターンを表わす整数を求めるには MISC1/BITLIBの中の BITPCIを使うと便利である.

さらに複雑なパターンを指定したいときには, SGISETで内部変数'NBITS'を変更することにより, パターンのビット長を32 bitまで長くすることができる.

欠損値処理:

データの中に欠損がある場合には, MATH1/SYSLIB の中の GLpSET(GLobal Parameter SET) で欠損値処理の指定に関する内部変数 'LMISS'.TRUE.にして, 欠損値処理を有効にする. このように指定すると,座標成分(x,y)のどちらかが 999. である点を 欠損値と見なして線を結ばない. また, 有効な点が欠損値に囲まれ, 一点だけ孤立している様な場合には, 有効な点を線で結ぶことはできないので, そこには何も描かれない. 欠損値 999. の値が実際のデータ範囲に入っていて, 999. 以外の値にしたい場合には, GLRSETによって 実数の欠損値をあらわす内部変数'RMISS'を変更してやればよい.

欠損値処理の制御は,SGPACK だけでなくプログラム全体で統一的に 行われなければならないため,欠損値処理に関する内部変数の管理は SGpGET/SGpSETではなく GLpGET/GLpSETで行われてる.

Source:sgpack/sgpk03.f


地球流体電脳倶楽部 DCL-5.0
Last modified: Wed Apr 30 13:59:59 1997