インターフェイスルーチンは各プリミティブをオープン,描画,クローズの 3つの手続きに分割したものである. 複数の点の座標などを指定するポリラインなどは,座標値を配列で指定する.
SZPLOP(ITYPE,INDEX) ポリラインプリミティブの初期化. SZPLZc(N,PX,PY) ポリラインプリミティブの描画. SZPLCL ポリラインプリミティブの終了. SZPMOP(ITYPE,INDEX,RSIZE) ポリマーカープリミティブの初期化 . SZPMZc(N,PX,PY) ポリマーカープリミティブの描画. SZPMCL ポリマーカープリミティブの終了. SZTNOP(ITPAT) トーンプリミティブの初期化. SZTNZc(N,PX,PY) トーンプリミティブの描画. SZTNCL トーンプリミティブの終了. SZTXOP(RSIZE,IROTA,ICENT,INDEX) テキストプリミティブの初期化. SZTXZc(X,Y,CHARS) テキストプリミティブの描画. SZTXCL テキストプリミティブの終了. SZLNOP(INDEX) ラインサブプリミティブの初期化. SZLNZc(X1,Y1,X2,Y2) ラインサブプリミティブの描画.
ここで cは描く座標系に応じてU: UC, V: VC, R: RC の 3種類がある.
基本描画ルーチンには折れ線ルーチンとトーンルーチンがあり, それぞれ座標値を配列ではなく1点ずつ指定するようになっている. 折れ線やトーンの属性に関してはあらかじめ設定ルーチンで設定して おかなければならない.
入力座標 処理内容 SZxxLU U 回転/正規化変換, 線形補間 SZxxLT T 地図投影,大円補間,地図境界でのクリッピング SZxxLV V View Port でのクリッピング SZxxLC V ラベルつき線分への展開 SZxxLD V 点線の展開 SZxxLP V 透視変換 SZxxLR R WS View Port でのクリッピング SZxxLZ R WS 変換,直線描画
ここで xxは動作に応じてOP: OPEN, MV: MOVE, PL: PLOT, CL: CLOSE の4種類がある.
これらのルーチンは,インターフェイスルーチンのSZPLZc(N,PX,PY) を展開したものと思えばよい. 基本ルーチンを使って折れ線を描くプログラムは次のようになる.
CALL SZPLOP(ITYPE,INDEX) CALL SZOPLc CALL SZMVLc(UXX,UYY) CALL SZPLLc(UXX,UYY) ........ CALL SZCLLc CALL SZPLCL
SZPLOP ではラインタイプやラインインデクスの設定の他, 必要な情報をSGRGET などによって取得するので, 頻繁に呼ぶと動作速度に影響する場合がある.
入力座標 処理内容 SZxxTU U 回転/正規化変換,線形補間 SZxxTT T 地図投影,大円補間,地図境界でのクリッピング SZxxTV V View Port でのクリッピング SZxxTP V 投影変換,soft/hard fill の switching SZxxTR R WS View Port でのクリッピング SZxxTZ R WS 変換,バッファリング SZxxTS V バッファリング(ソフトフィル) SZTNSV V ソフトフィル
これらのルーチンは,インターフェイスルーチンのSZTNZc(N,PX,PY) を展開したものと思えばよい. 基本ルーチンを使ってトーンをかけるプログラムは次のようになる.
CALL SZTNOP(ITPAT) CALL SZOPTc CALL SZSTTc(UXX,UYY) ........ CALL SZCLTc CALL SZTNCL
SZTNOP ではトーンパターンの設定, および境界線の向きに関する処理などを行う他, 必要な情報をSGRGET などによって取得するので, 頻繁に呼ぶと動作速度に影響する場合がある.
NUMAGUTI Atusi <a1n@gfdl.gov> Last Modified: Thu Aug 31 13:07:01 EDT 1995