何枚も図をかく

 

DclNewFrameは, 新しい描画領域を設定する役割をもっています. このルーチンは図を描く前に必ず呼ばなければなりませんが, 2回目以降は「改ページ」の操作になります. これを繰り返し用いれば何枚も図をかくことができます.

このように描いた図は, ウィンドウ・紙1ページに1つずつ描かれます. 複数の図を1ページに沢山並べたい時には, DclDivideFrameを使うと非常に簡単にできます. このルーチンは, DclOpenGraphicsよりも後, DclNewFrameよりも前に呼びます. 最初の引数で割り付ける方向を指定します. 'Y' ならば横方向に, 'T' ならば縦方向に割り付けられます. 次の引数で, 縦・横の分割数を指定します.

このように分割されたフレームは, それ以降は1枚のウィンドウ・紙のように扱われます. したがって 文字の大きさも分割されたフレームの大きさに応じて小さくなっていることに注意してください. DclDivideFrameは2回まで呼ぶことができて, 分割されたフレームをさらにもう一度分割することが可能です.

multi.f90

program multi

  use dcl

  character(len=7) :: ctxt = 'frame??'

    call DclOpenGraphics()

    call DclSetFrameMargin( 0.1, 0.1, 0.05, 0.05 )
    call DclDivideFrame( 'y', 3, 2 )
    call DclSetFrameMargin( 0.05, 0.05, 0.05, 0.05 )

    do i=1,12
      call DclNewFrame
      call DclSetViewPort( 0.1,0.9,0.1,0.9 )
      call DclDrawViewPortFrame( 1 )
      write(ctxt(6:7),'(i2.2)') i
      call DclDrawTextNormalized( 0.5, 0.5, ctxt )
    end do

    call DclCloseGraphics

end program





関連リンク

DclDivideFrame
(SLDIV)
フレームを分割する.
DclSetFrameMargin
(SLMGN)
マージンを設定する.
DclDrawViewPortFrame
(SLPVPR)
ビューポートの枠を描く.