3.2 ポリラインプリミティブ

折れ線を描くポリラインプリミティブには, 次の2つの属性があります.

カラーグラフィクスについてはまとめて第12章で説明しますので, ここでは線の太さだけが変えられる出力装置を念頭に置いて説明しましょう.

プログラム 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

\resizebox{10cm}{!}{\includegraphics{kihon1/kihon2_001.eps}}
kihon2.f: frame1

\resizebox{10cm}{!}{\includegraphics{kihon1/kihon2_002.eps}}
kihon2.f: frame2