大きい図形の隣に小さな図形を並べる時には, DclSetViewportを使って陽にビュー ポートを設定することになる。下のプログラムを見ると、まず, ビューポートを (0.15,0.45,0.65,0.95) として, 描画範囲 の左上に正方形の図を描いている。次に, DclNewFigルーチンを呼んで2番めの図を描くために必要な初期化をする。DclNewFrameと違って, 改ページはされない。そして, ビューポートを (0.15,0.95,0.1,0.5) として下の図を描いている。こうすれば縦横比が1:2の 長方形の図となる。
program layout03
use dcl
integer,parameter :: nmax=400
real :: x(nmax), y(nmax)
!-- データ 1 ----
dt = 2.*3.14159 / (nmax-1)
do n=1,nmax
t = dt*(n-1)
x(n) = 5.*sin(4.*t)
y(n) = 5.*cos(5.*t)
end do
!-- グラフ 1 ----
call DclOpenGraphics()
call DclNewFrame
call DclSetWindow( -6., 6., -6., 6. )
call DclSetViewPort( 0.15, 0.45, 0.65, 0.95 )
call DclSetTransNumber( 1 )
call DclSetTransFunction
call DclSetTitle( 'x1', 'y1', '', '' )
call DclDrawScaledAxis
call DclDrawLine( x, y )
!-- データ 2 ----
iseed = 1
x(1) = 2.*(rngu3(iseed)-0.5)
do n=2,nmax
x(n) = 2.*(rngu3(iseed)-0.5)
y(n-1) = x(n)
end do
y(nmax) = x(1)
!-- グラフ 2 ----
call DclNewFig
call DclSetWindow( -1.1, 1.1, -1.1, 1.1 )
call DclSetViewPort( 0.15, 0.95, 0.1, 0.5 )
call DclSetTransNumber( 1 )
call DclSetTransFunction
call DclSetTitle( 'x2-title', 'y2-title', '', '' )
call DclDrawScaledAxis
call DclDrawMarker( x, y )
call DclCloseGraphics
end program
|
![]() |
|
DclNewFrame (GRFRM) |
新たなフレーム(ページ)を設定する. |
|
DclNewFig (GRFIG) |
新たな図を設定する. |
|
DclSetViewPort (GRSVPT) |
ビューポートを設定する. |