2.4.4 sgpget/sgpset(sgpstx)

1.
機能
GRPH1で使用する内部変数を参照/変更する. (sgpstx は実行時オプションによる変更を許す. ) pr/i/l で, それぞれ実数, 整数, 論理変数用.
2.
呼び出し方法
ipara = NumRu::DCL.sgpget(cp)
NumRu::DCL.sgpset(cp,lpara)
NumRu::DCL.sgpstx(cp,ipara)
3.
パラメーターの説明
cp (C*8) 内部変数の名前.
ipara (I,R,L) 内部変数の値.



以下にcpとして指定できる名前のリストを記す.



[全般的な制御に関するパラメーター]

 
 
 
 
'IWS' (I) オープンする制御番号(初期値は1).この番号はsgopnが設定する.grph1の範囲ではこの値を実行時オプションによって変更することはできない(grph2grpackを用いれば変更可能である).
'LFULL'

(L)

sgfrm(2.4.2節参照)で設定するワークステーションビューポートを作画可能な範囲いっぱいにとるかどうかを指定する..true.のときいっぱいにとる;.false.のとき正方形にとる(初期値は.false.

[ポリラインプリミティブに関するパラメーター]


'NBITS'  (R) ポリラインプリミティブの描く折れ線のラインタイプをビットパターンで設定するとき,下位何ビットを使うかを指定する(初期値は16).
'BITLEN' (R) ポリラインプリミティブの描く折れ線のラインタイプをビットパターンで設定するとき,1ビットがVC上でどれだけの長さに相当するかを指定する(初期値は0.003).
'MOVE' (I) szpackの下位ルーチンが破線等のパターンで線を引くとき,pen-up moveの後のパターンのサイクルについて指定する(初期値は1).
1 : pen-upの間も作図を続けたものと見なす.
0 : 最後にpen-downで移動した状態を保つ.
-1 : pen-upで移動した後, 新しいサイクルを始める.
'LCHAR' (L) ポリラインプリミティブで折れ線を描くとき,ラベルつき折れ線とするかどうかを指定する..true.のときラベルつき折れ線とする;.false.のときラベルなし折れ線とする(初期値は.false.).以下はこのラベルつき線分に関するパラメーターである.
'LROT' (L) ラベルとして付ける文字列を一定の回転角で描くか,あるいは線分に沿って描くかを指定する..true.のとき一定の回転角で描く;.false.のとき線分に沿って描く(初期値は.false.).
'IROT' (I) ラベルとして付ける文字列を一定の回転角で描くとき('LROT'.true.のとき)の回転角を指定する(単位は度;初期値は0).
'FWC' (R) 文字列を書くための空白域の幅を全文字幅を単位としてどれだけとるかを指定する係数(初期値は1.25)
'CWL' (R) 1サイクルあたり,線分部分の長さを文字高を単位として何文字分とるかを指定する係数(初期値は30.0)
'FFCT' (R) ラベルつき折れ線を描くにあたって,線分部分を1単位としてどれだけ進んだところから描き始めるかを指定する(初期値は0.5).
'INDEXC' (I) ラベルとして各文字列のラインインデクスを指定する(初期値は0).値が0のとき,線分部分を書くために現在設定されているラインインデクスと同じ値をとる.
'LBUFF' (L) 折れ線の終りが文字列を描くべき空白部分であるときそこを線分で結ぶためのバッファリングをすうかどうかを指定する..true.のときバッファリングをする;.false.のときバッファリングしない(初期値は.true.
'NBUFF' (I) バッファリングをするときその長さを指定する(初期値は20).
'RBUFF' (R) バッファリングをした内容を書き出した後,ラベルつき折れ線のサイクルの位置を指定する.0と1の間の値を指定すること.(初期値は0.99).
'LCURV' (L) 折れ線のなす角が大きなところではラベルを書かないことを指定する.正確には,文字を書くべきスペースが次のパラメーター'RCURV'の係数以下のときラベルを書かない..true.のときラベルを書かない;.false.のときラベルを書く(初期値は.true..)
'RCURV' (R) 'LCURV'.true.で,ラベルを書くべきスペースがこの係数以下のときラベルを書かない.(初期値は1.0)



[ポリマーカープリミティブに関するパラメーター]

 
 
'PMFACT' (R) ポリマーカープリミティブが描くマーカーの大きさを調整する係数(初期値は2.0).ポリマーカープリミティブはテキストプリミティブを用いてマーカーを描く.このとき, 描くマーカーは標準的な文字高に比べて小さい(フォントテーブル8.1.2,8.1.3節参照).この内部変数はマーカーが標準的な文字高を持つようにするため使われる拡大係数である.
'NPMSKIP' (I) ポリマーカープリミティブでマーカーを描くとき,何個に1個の割合で描くかを指定する(初期値は1;すべてマーカーを描く.sgpmzuがバッファリングする最大個数50以下でなければならない).

 


[テキストプリミティブに関するパラメーター]


'IFONT' (I) フォント番号(初期値は1).
'LCNTL' (L) テキストプリミティブで文字を描くとき,制御文字('ISUP','ISUB','IRST'参照)を有効とするかどうかを指定する..true.のときは有効とする;.false.のときは有効としない(初期値は.false.).
'SMALL' (R) 上付および下付添え字の標準文字高に対する比率(初期値は0.7). 
'SHIFT' (R) 上付および下付添え字の中心を標準文字の中心からどれだけはなすかを標準文字高に対する比率で指定する(初期値は0.3). 
'ISUP' (I) 上付添え字のモードの始まりをしめす制御文字の文字番号.初期値は124;これは'|'に対応する.
'ISUB' (I) 下付添え字のモードの始まりをしめす制御文字の文字番号.初期値は95;これは'_'に対応する.
'IRST' (I) 上付および下付添え字のモードの終わりをしめす制御文字の文字番号.初期値は34;これは'"'に対応する.


[トーンプリミティブに関するパラメーター]


'LSOFTF' (L) トーンプリミティブで塗りつぶしをおこなうときsoft fillをおこなうかhard fillをおこなうかを指定する..true.のときはsoft fillをおこなう;.false.のときはhard fillをおこなう(初期値は .false.).
ただし, hard fillを指定してもその能力がない場合はsoft fillとなる.
'LCL2TN' (L) 色を用いたべた塗りによる塗りわけをおこなうとき, 色番号をドットなどのパターン番号として読みかえるかどうかを指定する..true.のときは読みかえる;..false.のときは読みかえない(初期値は.false.).ただし, 色を用いた塗りわけができないような装置では,.false.と設定されていてもパターン番号による読みかえをおこなおうとする.
'TNBLEN' (R) トーンプリミティブでドットパターンによるsoft fillをおこなう場合,フィルエリアサブプリミティブの下位ルーチンを用い点線の集合として表現する.このとき点線のラインタイプはビットパターンで設定されるが,その1ビットがRC上でどれだけの長さに相当するかを指定する(初期値は0.001).
'IRMODE' (I) トーンプリミティブで指定された閉領域がクリッピング境界にかかる時に, 境界線の向きを指定するパラメタ.0のとき反時計回り; 1のとき時計回り.1.7.5節参照のこと.(初期値は0).



[アローサブプリミティブに関するパラメーター]

'LPROP' (L) 矢じり部分の線分を本体部分の線分の長さに比例させて描くかどうかを指定する..true.なら比例させて描く; .false.なら内部変数'CONST'で指定してある一定値で,地図投影のときは内部変数'CONSTM'で指定してある一定値で描く(初期値は.true.).
'LUARW' (L) 地図投影のとき, 矢じり部分の線分も地図にへばりついたように描くかどうかを指定する..true.なら地図上で描く; .false.ならVCで描く(初期値は.true.).
'AFACT' (R) 'LPROP'.true.(比例させて描く)のときに用いる比例定数(初期値は0.33).
'CONST' (R) 'LPROP'.false.(一定値で描く)のときに用いる一定値(単位はvc;初期値は0.01).
'CONSTM' (R) 'LPROP'.false.(一定値で描く)でかつ地図投影のときに用いる一定値(単位は度;初期値は5.0).
'ANGLE' (R) 矢じり部分の線分と本体部分の線分のなす角(単位は度;初期値は20.0).
'LATONE' (L) 矢じり部分を定義する三角形の領域を塗りつぶすかどうかを指定する. .true.なら塗りつぶす;.false.なら塗りつぶさない(初期値は.false.).
'IATONE' (L) 矢じり部分を定義する三角形の領域を塗りつぶす)のときのトーンパターン(初期値は999).3桁以下のとき, カラーインデクスは軸の部分について指定されているものを用いる.



[変換メソッド(元関数)に関するパラメタ] - これらのパラメタの意味については, 1.4節, 1.6節 を参照のこと.
'ITR' (I) 変換メソッド(元関数)番号(初期値は1).
'VXMIN','VXMAX','VYMIN','VYMAX' (R) ビューポート(初期値は0.0, 1.0, 0.0,1.0).
'UXMIN','UXMAX','UYMIN','UYMAX' (R) ウインドウ(初期値は0.0, 1.0, 0.0,1.0).
'SIMFAC','VXOFF','VYOFF' (R) 相似変換パラメタ(初期値は1.0, 0.0, 0.0).
'PLX','PLY','PLROT' (R) 地図座標回転パラメタ(初期値は0.0, 90.0, 0.0).
'STLAT1','STLAT2' (R) 標準緯度(初期値は0.0, 0.0).
'RSAT' (R) 衛星軌道半径(初期値は0.0).
'LDEG' (L) 単位系の指定.'LDEG'.true.なら度を単位とする;.false.ならラジアンを単位とする(初期値は.true.).
'ITR3' (I) 変換メソッド(元関数)番号(初期値は1).
'VXMIN3','VXMAX3','VYMIN3','VYMAX3'
'VZMIN3','VZMAX3'
(R) 3次元ビューポート(初期値は0., 1., 0., 1., 0.,1.).
'UXMIN3','UXMAX3','UYMIN3','UYMAX3'
'UZMIN3','UZMAX3'
(R) 3次元ウィンドウ(初期値は0., 1., 0., 1., 0.,1.).
'SIMFAC3' (R) 円筒座標と球座標のスケーリングファクター(初期値は1.).
'XORG3', 'YORG3', 'ZORG3' (R) 円筒座標と球座標の原点位置(初期値は0., 0., 0.).
'XEYE3','YEYE3','ZEYE3' (R) 視点(初期値は-0.8, -1.5, 1.5).
'XOBJ3','YOBJ3','ZOBJ3' (R) 焦点中心(初期値は0.5, 0.5, 0.0).
'ANGLE3' (R) 画角(初期値は30.0). 
'TILT3' (R) 傾き(初期値は0.0).
'XOFF3','YOFF3' (R) オフセット(初期値は0.0, 0.0).
'IXC3','IYC3','SEC3' (I,R) 2次元平面位置(初期値は1, 2, 0.0).
'L2TO3' (L) 2次元透視変換の指定.'L2TO3'.true.なら2次元平面を3次元空間に割り付ける;.false.ならV座標とR座標を同一のものとして扱う.(初期値は .false.).



[補間およびクリッピングに関するパラメタ] - これらのパラメタの意味については, 1.7節 を参照のこと.

 
 
'LLNINT','LGCINT' (L) 線形補間, 大円補間のフラグ(初期値は .false..
'RDX','RDY' (R) 補間間隔(初期値は5.0,5.0; 単位は度).
'LCLIP' (L) ビューポートでのクリッピングのフラグ(初期値は .false.).
'TXMIN','TXMAX','TYMIN','TYMAX' (R) T座標系でのクリッピング境界(初期値は -180.0, 180.0, -90.0, 90.0; 単位は度).

          


[レイアウトに関するパラメーター] - dcl-ver.4 まで slpget/slpset が管理していたパラメーター.


'INDEX' (I) 第1レベル目のマージンに描く文字列とコーナーマークのラインインデクス(初期値は1).
'LCORNER' (L) コーナーマークを描くかどうかを指定する. .true.ならコーナーマークを描く; .false.なら描かない(初期値は .true.).
'CORNER' (R) コーナーマークの長さ(初期値は0.01).単位は第1レベル目の長辺を1とする.
'LWIDE' (L) 文字列(タイトル)を描く第1レベル目のマージンの定義をする..true.のときマージンの幅を第1レベル目のフレーム幅いっぱいにとる;.false.のとき横方向のマージンを取った残りの部分をマージンの幅とする(初期値は .false.).
'XPAD' (R) 第1レベル目のマージンに描く文字列の左右にとるすきまの和を文字高を単位として指定する(初期値は1.0).
'YPAD' (R) 第1レベル目のマージンに描く文字列の上下にとるすきまの和を文字高を単位として指定する(初期値は1.0).

    

4.
備考
(a)
内部変数を管理するための下請けルーチンとして 以下のものがある.
ncp = NumRu::DCL.sgpqnp() 内部変数の総数 ncpを求める.
idx = NumRu::DCL.sgpqid(cp) 内部変数 cpの位置 idxを求める.
cp = NumRu::DCL.sgpqcp(idx) idxの位置にある内部変数の名前 cpを参照する.
ipara = NumRu::DCL.sgpqvl(idx) idxの位置にある内部変数の値 iparaを参照する.
NumRu::DCL.sgpsvl(idx,ipara) idxの位置にある内部変数の値 iparaを変更する.
(b)
SGpGETは上に述べたSGPQIDを呼んで 内部変数の位置を求め, sgpqvlによって値を参照する; sgpsetsgpqidを呼んで内部変数の位置を求め, sgpsvlによって値を設定する. したがって指定した内部変数名が見つからないとき, エラーメッセージはsgpqidが出力する.
(c)
IPARAとしては適切な型の定数または変数を指定すること.
(d)
このほかに, soft fillによって斜線を描こうとしたとき斜線の回転角に加える 微小値を指定する'RFAROT'という内部変数や, レイアウトに関する'NFRAME, 'NPAGE', 'NLEVEL', 'FACTOR'などの内部変数があるが ユーザーは指定してはならない.