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