マーカー列を描くポリマーカープリミティブには, 次の3つの属性があります.
まず最初のフレームですが, 第3.1節で見たように, 単に SGPMV ルーチンを呼ぶと初期値である・のマーカー列が描かれます. 28行め
の SGSPMT ルーチンでマーカータイプを2から7まで変えると, +,
*, 。 と順に異なるマーカー列が上から下へと描かれていきます.
巻末付録のフォントテーブルにあるマーク・記号・文字などには, それぞれ
DCL文字番号が与えられていますが, ここでは SGSPMT で与えるDCL文字
番号に対応するマーカー列が描かれているのです. たとえばITYPE=152
のとき, α のマーカー列を描きます.
次のフレームではマーカーの大きさを変えています. 初期値はV-座標系におけ
る単位で 0.01 です. 2番めからは, SGSPMS ルーチンで大きさを
0.005, 0.01, 0.015, …,
0.03 と変えた結果です. 塗りつぶしたような
マーカーもどんどん大きくしていくと, いくつかの線分で構成されていること
が見えてきます. このような時には, SGSPMI ルーチンで描くマーカー
のラインインデクスを大きくしておくと, 線が太くなって塗りつぶした雰囲気
が出てきます.
PROGRAM KIHON3
PARAMETER( NMAX=40, IMAX=7 )
REAL X(0:NMAX), Y(0:NMAX,IMAX)
DT = 4.* 3.14159 / NMAX
DO 20 N=0,NMAX
X(N) = REAL(N)/REAL(NMAX)
DO 10 I=1,IMAX
Y(N,I) = 0.2*SIN(N*DT) + 0.9 - 0.1*I
10 CONTINUE
20 CONTINUE
WRITE(*,*) ' WORKSTATION ID (I) ? ;'
CALL SGPWSN
READ (*,*) IWS
CALL SGOPN( IWS )
*-- マーカータイプ: frame 1 --
CALL SGFRM
CALL SLPVPR( 1 )
CALL SGPMV( NMAX+1, X, Y(0,1) )
DO 30 I=2,IMAX
ITYPE = I
CALL SGSPMT( ITYPE )
CALL SGPMV( NMAX+1, X, Y(0,I) )
30 CONTINUE
*-- マーカーサイズ: frame 2 --
CALL SGFRM
CALL SLPVPR( 1 )
CALL SGSPMT( 10 )
CALL SGPMV( NMAX+1, X, Y(0,1) )
DO 40 I=2,IMAX
RSIZE = 0.005*(I-1)
CALL SGSPMS( RSIZE )
CALL SGPMV( NMAX+1, X, Y(0,I) )
40 CONTINUE
CALL SGCLS
END