折れ線の線種・太さ・色を変える

折れ線には, ラインインデクス(折れ線の太さ・色), ラインタイプ(折れ線の線種) の2つの属性があります. 下のプログラムでは, これらの属性がどのように指定できるかを示 します. 正弦曲線をDclDrawLineルーチンで描いていますが, 一番上の線が何も指定しない場合で, ラインインデクス・ラインタイプともに1の, 黒の細い実線が描かれます. ラインインデクスの1の位の数字は線の太さを表し, 10の位と100の位は線の色を表します. 上から2本目の線が太さを変えた場合で, 数字が大きくなるにつれて線が太くなります. 3本目の線が色を変えた場合です. 1:黒(フォアグラウンド), 2:赤, 3:緑, 4:青, 5:黄, というように 色が決められています(ラインインデクスの解説を参照のこと).

4本目の線は, ライ ンタイプを変えて描いています. ラインタイプとは, 実線, 破線などの線種で, 1: 実線, 2: 破線, 3: 点線, 4: 1点鎖線, などと決められています. 初期値は1で, 単にDclDrawLineルー チンを呼ぶと実線で折れ線を描きます. ラインタイプには, まだまだいろんな種類があり, ユーザーがそれぞれの好みの線種を指定することが可能です(ラインタイプの解説を参照のこと). もちろん5本目の線のようにラインインデクス, ラインタイプを同時に変えることもできます.

DclDrawLineのオプション引数として折れ線の属性を設定する方法を説明しましたが, 属性を前もって設定することもできますDclSetLineIndex, DclSetLineTypeでラインインデクス, ラインタイプを設定しておけば, 以後のDclDrawLineではずっとこれらの値が参照されるようになります.

line.f90
program sample11

  use dcl
  integer,parameter :: nmax = 40
  real,dimension(0:nmax) :: x,y1,y2,y3,y4,y5,y6

    x  = (/( n,n=0,nmax )/) / real(nmax) ! 0≦x≦1
    y1 = sin( 2.*DCL_PI * x ) + 1.5      ! y = sin(2πx)+C
    y2 = sin( 2.*DCL_PI * x ) + 1.0
    y3 = sin( 2.*DCL_PI * x ) + 0.5
    y4 = sin( 2.*DCL_PI * x ) - 0.5
    y5 = sin( 2.*DCL_PI * x ) - 1.0
    y6 = sin( 2.*DCL_PI * x ) - 1.5

!-- グラフ ----

    call DclOpenGraphics()
    call DclNewFrame

    call DclSetWindow( 0., 1., -3., 3. )        ! ウィンドウの設定
    call DclSetViewPort( 0.2, 0.8, 0.2, 0.8 )   ! ビューポートの設定
    call DclSetTransFunction                    ! 正規変換の確定

    call DclDrawScaledAxis                      ! 座標軸を描く

    call DclDrawLine( x, y1 )                   ! 通常(type=1,index=1)
    call DclDrawLine( x, y2, index=5 )          ! 太さを変える
    call DclDrawLine( x, y3, index=21 )         ! 色を変える
    call DclDrawLine( x, y4, type=2 )           ! 線種を変える
    call DclDrawLine( x, y5, type=4, index=43 ) ! 全部変える

    call DclSetLineType( 3 )                    ! 前もって線種を指定
    call DclSetLineIndex( 30 )                  ! 前もって色を指定
    call DclDrawLine( x, y6 )

    call DclCloseGraphics

end program



関連リンク

DclDrawLine
(SGPLU,SGPLZU)
ユーザー座標系で折れ線を描く.
DclSetLineType
(SGSPLT)
折れ線のラインタイプを設定する.
DclSetLineIndex
(SGSPLI)
折れ線のラインインデクスの設定する.

* 括弧の中は、対応するf77インターフェイス名.