折れ線を描くポリラインプリミティブには, 次の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