矢印つき線分(線分の終点から対称な2本の線分を付け加える)を 描くサブルーチンも用意されている. DclDrawArrowで始点の座標, 終点の座標を指定する. 矢じり部分の形状は DclSetParmが管理するいくつかの内部変数によって設定できる. 上段左側の矢印は, デフォルトの内部変数を用いて描いた. この場合, 線分部分が長くなると, それに比例して矢じりの部分も長くなる. 上段右側の矢印は, 内部変数FIX_ARROWHEAD_PROPORTIONを.FALSE. として描いた. このようにすると, 矢じり部分の長さが一定値となる. また下段の矢印は, 矢じり部分の線分と本体部分の線分のなす角(内部変数ARROWHEAD_ANGLE) を変化させて描いた.
program arrow use dcl integer,parameter :: nd=12 real,parameter :: ddeg=360.0/nd, dd=0.25 real :: rx(nd), ry(nd) do n = 1, nd rx(n) = dd*n*cos(DCL_PI/180*ddeg*(n-1)) ry(n) = dd*n*sin(DCL_PI/180*ddeg*(n-1)) end do call DclOpenGraphics() call DclNewFrame call DclSetWindow( 0.0, 10.0, 0.0, 10.0 ) call DclSetViewPort( 0.0, 1.0, 0.0, 1.0 ) call DclSetTransFunction x1 = 3.0 y1 = 7.0 do n = 1, nd call DclDrawArrow( x1, y1, x1+rx(n), y1+ry(n) ) end do call DclSetParm( 'FIX_ARROWHEAD_PROPORTION', .false. ) call DclSetParm( 'ARROWHEAD_SIZE', 0.05 ) x1 = 7.0 y1 = 7.0 do n = 1, nd call DclDrawArrow( x1, y1, x1+rx(n), y1+ry(n), index=2 ) end do do i = 1, 8 call DclSetParm( 'ARROWHEAD_ANGLE', 10.0*i ) call DclDrawArrow( real(i), 2.0, real(i)+1, 3.0 ) end do call DclCloseGraphics end program |
|
DclDrawArrow (SGLAU,SGLAZU) |
ユーザー座標系で矢印付き線分を描く. |
DclDrawArrowNormalized (SGLAV,SGLAZV) |
正規座標系で矢印付き線分を描く. |
DclDrawArrowProjected (SGLAR,SGLAZR) |
透視座標系で矢印付き線分を描く. |
DclSetArrowLineType (SGSLAT ) |
矢印付き線分のラインタイプを設定する. |
DclSetArrowLineIndex (SGSLAI) |
矢印付き線分の ラインインデクスを設定する. |
* 括弧の中は、対応するf77インターフェイス名.