ポリライン, ポリマーカー, テキストなどの線分による出力プリミティブは,
個別にラインインデクスを指定することができましたから, それぞれ, フルに
3桁の値で指定すると, カラーのライン, マーカー, テキストとなります. ま
た, GRPH2 の各パッケージも, 用いられている線分のラインインデクスに関す
る内部変数を変更できるようになっていますから, 容易にカラー化できます.
次の COLOR2 プログラムで, カラー線画の実例を見てみましょう.
UZpGET/UZpSET ルーチンで座標軸関連の内部変数の管理を行ないますが,
そのなかの 'INDEXT1', 'INDEXT2', 'INDEXL1', 'INDEXL2' がラインインデクスの設定に関するものです. 'INDEXT1'
と 'INDEXT2' は座標軸および目盛を描く線分の, 'INDEXL1' と
'INDEXL2' はラベルおよびタイトルの文字を描く線分のラインインデク
スを指定する内部変数です. 最後が '1' のほうが小さめの目盛やラベ
ル, タイトルを描く時に用いられ, '2' のほうは大きめのものを描く時
に用いられます.
この例では, 標準のカラーマップを用いた時, 目盛は淡青で描き, 小さめの文
字は濃青で, 大きめの文字は紫で描きます. 太さは, 小さめの目盛は細線で,
それ以外はやや太くなります.
折れ線をSGPLU ルーチンで描くのですが, そのラインインデクスは SGSPLI ルーチンで 24, 赤色の太い線と指定しています.
PROGRAM COLOR2 PARAMETER( NMAX=50 ) REAL X(0:NMAX), Y(0:NMAX) CHARACTER CSGI*1, CTTL*32 R = 3.7 X(0) = 1950 Y(0) = 0.5 DO 10 N=0,NMAX-1 X(N+1) = X(N) + 1 Y(N+1) = R*Y(N)*(1.-Y(N)) 10 CONTINUE YAVE = RAVE( Y, NMAX+1, 1 ) DO 20 N=0,NMAX Y(N) = -4*(Y(N)-YAVE) 20 CONTINUE WRITE(*,*) ' WORKSTATION ID (I) ? ;' CALL SGPWSN READ (*,*) IWS CALL GROPN( IWS ) CALL GRFRM CALL GRSWND( X(0), X(NMAX), -1.5, 2.0 ) CALL GRSVPT( 0.2, 0.9, 0.2, 0.9 ) CALL GRSTRN( 1 ) CALL GRSTRF CALL SGISET( 'IFONT', 2 ) CALL UZISET( 'INDEXT1', 402 ) CALL UZISET( 'INDEXT2', 404 ) CALL UZISET( 'INDEXL1', 303 ) CALL UZISET( 'INDEXL2', 123 ) CALL UXAXDV( 'B', 2., 10. ) CALL UXAXDV( 'T', 2., 10. ) CALL UXSTTL( 'B', 'YEAR', 0. ) CALL UYAXDV( 'L', 0.1, 0.5 ) CALL UYAXDV( 'R', 0.1, 0.5 ) CTTL = CSGI(131) // 'T [K]' CALL UYSTTL( 'L',CTTL, 0. ) CALL UXMTTL( 'T', 'INTERANNUAL VARIATION', 0. ) CALL SGSPLI( 24 ) CALL SGPLU( NMAX+1, X, Y ) CALL GRCLS ENDPROGRAM COLOR2