折れ線を描くポリラインプリミティブには, 次の2つの属性があります.
プログラム KIHON2 では, これらの属性がどのように指定できるかを示
します. 正弦曲線を SGPLV ルーチンで描いていますが, 一番上の線が
ラインインデクスが初期値(1)の場合です(24行め). 次からの3本は, 27行めの
SGSPLI ルーチンでこの値を4, 6, 8と変えて描いた結果です. ラインイ
ンデクスが大きくなるにつれて, 線が太くなります.
34行めで SGFRM ルーチンを呼んで次のフレームを設定し, 今度はライ
ンタイプを変えて描いています. ラインタイプとは, 実線, 破線などの線種で
すが, 1から4までの番号にはあらかじめ次のタイプが決められています. 1:
実線, 2: 破線, 3: 点線, 4: 1点鎖線. 初期値は1で, 単に SGPLV ルー
チンを呼ぶと実線で折れ線を描きます. そういえば, frame1 の結果も実線でし
た. 40行めの SGSPLT ルーチンでこの値を2, 3, 4と変えて描いた結果
が frame2 です.
ラインタイプには, まだまだいろんな種類があり, ユーザーがそれぞれの好み の線種を指定することが可能です. それは第4.2節で詳しく説 明することにしましょう.
PROGRAM KIHON2
PARAMETER( NMAX=40, IMAX=4 )
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) + 1. - 0.2*I
10 CONTINUE
20 CONTINUE
WRITE(*,*) ' WORKSTATION ID (I) ? ;'
CALL SGPWSN
READ (*,*) IWS
CALL SGOPN( IWS )
*-- ラインインデクス: frame 1 --
CALL SGFRM
CALL SLPVPR( 1 )
CALL SGPLV( NMAX+1, X, Y(0,1) )
DO 30 I=2,IMAX
CALL SGSPLI( 2*I )
CALL SGPLV( NMAX+1, X, Y(0,I) )
30 CONTINUE
CALL SGSPLI( 1 )
*-- ラインタイプ: frame 2 --
CALL SGFRM
CALL SLPVPR( 1 )
CALL SGPLV( NMAX+1, X, Y(0,1) )
DO 40 I=2,IMAX
CALL SGSPLT( I )
CALL SGPLV( NMAX+1, X, Y(0,I) )
40 CONTINUE
CALL SGCLS
END
PROGRAM KIHON2