下のプログラムは, ラベルつきの折れ線を描く例です.
DclSetParmルーチンで内部変数'ENABLE_LINE_LABELING'を .TRUE. にすると, ラベルつき折れ線が描かれます. ラベル付き折れ線と は, 描くべき線分のある長さを1サイクルとして, その一部分に空白域をとり, そこに指定した文字列を描くものです. 描く文字列はDclSetLineTextルーチン で指定します. この例では, まず 'k=1' のラベルをつけて折れ線を描きました.
次に, DclNextLineTextルーチンを呼ぶと, 設定されている文字列の最後の文字の文字番号が1つ増えます. そこで, 2本め, 3本めの折れ線のラベルが 'k=2', 'k=3' と変わります. ラベルの文字列の高さは, DclSetLineTextSizeルーチンで指定できます. 初期値は正規座標系の単位で0.02ですが, 4本めの例ではこれを0.01 として小さめのラベ ルにしています. さらに, ラベル付折れ線に関するパラメータを陽に設定すると, さまざまな変形が可能です. ラベルの間隔は内部変数'LINE_CYCLE_LENGTH'で, ラベルの書き始めは内部変数'LINE_START_POSITION'で, それぞれ調節できます. また, 一定の回転角でラベルを付けることもできます.
program label 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 DclSetParm( 'ENABLE_LINE_LABELING', .true. ) ! ラベルつき折れ線 call DclSetWindow( 0., 1., -3., 3. ) ! ウィンドウの設定 call DclSetViewPort( 0.2, 0.8, 0.2, 0.8 ) ! ビューポートの設定 call DclSetTransFunction ! 正規変換の確定 call DclDrawScaledAxis ! 座標軸を描く call DclSetLineText( 'k=1' ) ! ラベルの文字列 call DclDrawLine( x, y1 ) call DclNextLineText ! ラベルの最後の文字番号を増やす call DclDrawLine( x, y2 ) call DclNextLineText call DclDrawLine( x, y3, type=2 ) call DclSetLineTextSize( 0.01 ) ! ラベルの文字列の高さ call DclSetLineText( 'Small Label' ) call DclDrawLine( x, y4, index=2 ) call DclSetLineTextSize( 0.02 ) ! 高さ元に戻す call DclSetLineText( 'a' ) call DclSetParm( 'LINE_CYCLE_LENGTH', 5. ) ! ラベルの間隔 call DclDrawLine( x, y5, type=2 ) call DclSetLineText( 'zzz' ) call DclSetParm( 'LINE_START_POSITION', 0.9 )! ラベルの書き始め call DclDrawLine( x, y6, type=4 ) call DclCloseGraphics end program |
|
DclSetLineText (SGSPLC) |
折れ線のラベルの文字列を設定する. |
DclSetLineTextSize (SGSPLS) |
折れ線のラベルの文字高を設定する. |
DclNextLineText (SGNPLC) |
折れ線のラベルの最後の文字番号を増やす. |
* 括弧の中は、対応するf77インターフェイス名.