DCLのしくみ 3
根回し型ルーチンと上意下達型ルーチンSGPACK の各出力プリミティブにはそれぞれ2種類の描画ルーチンがあります.
例えば,ポリラインプリミティブでは,SGPLV, SGPLU ルーチン で折れ線を描くように説明しました.ポリラインの属性は SGSPLT, SGSPLI などのルーチンで前もって設定しておきました.これらは,い ろいろ属性を決めておいてから描画ルーチンを呼ぶという「根回し型」のルー チンです.
これに対して,属性も同時に指定してポリラインを描画するルーチンも用意さ れています.呼び出し方法は,それぞれ,
CALL SGPLZV(N,VPX,VPY,ITYPE,INDEX)です.引数の ITYPE でラインタイプを与え,INDEX でラインイ ンデクスを与えます.これらは,サブルーチンひとつで一度に描いてしまう 「上意下達型」のルーチンです.
CALL SGPLZU(N,UPX,UPY,ITYPE,INDEX)
同様に,他の出力プリミティブも上意下達型のルーチンが用意されています. 引数の説明は省きますが,次のように呼び出します.
CALL SGPMZV(N,VPX,VPY,ITYPE,INDEX,RSIZE)
CALL SGPMZU(N,UPX,UPY,ITYPE,INDEX,RSIZE)
CALL SGTXZV(VX,VY,CHARS,RSIZE,IROTA,ICENT,INDEX)
CALL SGTXZU(UX,UY,CHARS,RSIZE,IROTA,ICENT,INDEX)
CALL SGTNZV(N,VPX,VPY,ITPAT)
CALL SGTNZU(N,UPX,UPY,ITPAT)
CALL SGLAZV(VX1,VY1,VX2,VY2,ITYPE,INDEX)
CALL SGLAZU(UX1,UY1,UX2,UY2,ITYPE,INDEX)
CALL SGLNZV(VX1,VY1,VX2,VY2,INDEX)
CALL SGLNZU(UX1,UY1,UX2,UY2,INDEX)
他のグラフィクスパッケージでも,GKS の流れは前者の型で,CALCOMP 系のも のは後者の型です.これまでにどちらかの型に馴染んでいるユーザーは,好み の方をお使い下さい.
NUMAGUTI Atusi <a1n@gfdl.gov> Last Modified: Thu Aug 31 13:11:01 EDT 1995