DclNewFrameは, 新しい描画領域を設定する役割をもっています. このルーチンは図を描く前に必ず呼ばなければなりませんが, 2回目以降は「改ページ」の操作になります. これを繰り返し用いれば何枚も図をかくことができます.
このように描いた図は, ウィンドウ・紙1ページに1つずつ描かれます. 複数の図を1ページに沢山並べたい時には, DclDivideFrameを使うと非常に簡単にできます. このルーチンは, DclOpenGraphicsよりも後, DclNewFrameよりも前に呼びます. 最初の引数で割り付ける方向を指定します. 'Y' ならば横方向に, 'T' ならば縦方向に割り付けられます. 次の引数で, 縦・横の分割数を指定します.
このように分割されたフレームは, それ以降は1枚のウィンドウ・紙のように扱われます.
したがって
文字の大きさも分割されたフレームの大きさに応じて小さくなっていることに注意してください.
DclDivideFrameは2回まで呼ぶことができて,
分割されたフレームをさらにもう一度分割することが可能です.
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) |
ビューポートの枠を描く. |