マーカーを打つ

指定された点列を折れ線で結ぶ代わりに, 点の位置にマーカーを描くのがDclDrawMarkerである. マーカーの種類は type オプションでフォントテーブルの文字番号を指定する. マーカーの属性としてはマーカーの種類以外に, マーカーの大きさ, ラインインデクスがあり, それぞれ height オプション, index オプションで指定する. また, DclSetParmで内部変数ENABLE_CLIPPING.TRUE.とし クリッピングをするように指定すると,マーカーもクリッピングされる.

このポリマーカー描画ルーチンは折れ線と同時に使用することが多い. 折れ線と同じ様に欠損値の処理もできる. DclDrawLineでは何も描かれなかった欠損値に囲まれた孤立点も, DclDrawMarkerでは表示される.

marker.f90
program marker

  use dcl
  integer,parameter :: n=41
  real :: x(n), y(n)

    dt = 4.* 3.14159 / (n-1)
    do i=1,n
      y(i) = sin(dt*(i-1))*0.15
      x(i) = real(i-1)/real(n-1)
    end do

    call DclOpenGraphics
    call DclNewFrame
    call DclSetWindow( 0.0, 1.0, -0.8, 0.2)
    call DclSetViewPort( 0.1, 0.9,  0.1, 0.9)
    call DclSetTransNumber( 1)
    call DclSetTransFunction

    call DclSetParm( 'ENABLE_CLIPPING', .true.)
    call DclDrawViewPortFrame(1)

    call DclDrawMarker(x, y)                    ! <-- マーカー描画 (1列目)
    call DclDrawMarker(x, y-0.1, type=2)        ! <-- マーカー描画 (2列目)
    call DclDrawMarker(x, y-0.2, type=3)        ! <-- マーカー描画 (3列目)
    call DclDrawMarker(x, y-0.3, type=2,height=0.06)! <-- マーカー描画 (4列目)
    call DclDrawMarker(x, y-0.4, index=2)       ! <-- マーカー描画 (5列目)
    call DclDrawMarker(x, y-0.5, index=3,type=2)! <-- マーカー描画 (6列目)
    call DclDrawLine(x, y-0.5)                  ! <-- 折れ線描画

    call DclCloseGraphics

end program



関連リンク

DclDrawMarker
(SGPMU,SGPMZU)
ユーザー座標系でマーカー列を描く.
DclDrawMarkerNormalized
(SGPMV,SGPMZV)
正規座標系でマーカー列を描く.
DclDrawMarkerProjected
(SGPMR,SGPMZR)
透視座標系でマーカー列を描く.
DclSetMarkerType
(SGSPMT)
マーカータイプを設定する.
DclSetMarkerIndex
(SGSPMI )
マーカーのラインインデクスを設定する.
DclSetMarkerSize
(SGSPMS)
マーカーの大きさを設定する.

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