何枚も図をかく

 

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)
ビューポートの枠を描く.

関連リンク