矢印つき線分(線分の終点から対称な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インターフェイス名.