4.2 異なる大きさの図形

大きい図形の隣に小さな図形を並べる時には, GRSVPT を使って陽にビュー ポートを設定することになります. 次のプログラム JUMP1 を御覧下さ い. まず, ビューポートを (0.15,0.45,0.65,0.95) として, 描画範囲 の左上に正方形の図を描きます. 内容は, 第2.1節のプロ グラム HOP と同様のリサジュー図です. 次に, 43行めで GRFIG ルーチンを呼んで2番めの図を描くために必要な初期化をします. GRFRM と違って, 次のフレームには移りません. そして, ビューポートを (0.15,0.95,0.1,0.5) として下の図を描きます. こうすれば, 縦横比が1:2の 長方形の図となります. 内容は, 第3.3節の分布図と同様の ものです.

\resizebox{10cm}{!}{\includegraphics{jump/jump1.eps}}
jump1.f: frame1

      PROGRAM JUMP1

      PARAMETER( NMAX=400 )
      REAL X(NMAX), Y(NMAX)

*- データ 1 --
      DT = 2.*3.14159 / (NMAX-1)

      DO 10 N=1,NMAX
        T = DT*(N-1)
        X(N) = 5.*SIN(4.*T)
        Y(N) = 5.*COS(5.*T)
   10 CONTINUE

*- グラフ 1 --
      WRITE(*,*) ' WORKSTATION ID (I)  ? ;'
      CALL SGPWSN
      READ (*,*) IWS


      CALL GROPN( IWS )
      CALL GRFRM

      CALL GRSWND(  -6.,   6.,  -6.,   6. )
      CALL GRSVPT( 0.15, 0.45, 0.65, 0.95 )
      CALL GRSTRN( 1 )
      CALL GRSTRF

      CALL USSTTL( 'X1', '', 'Y1', '' )
      CALL USDAXS

      CALL UULIN( NMAX, X, Y )

*- データ 2 --
      ISEED = 1
      X(1) = 2.*(RNGU3(ISEED)-0.5)
      DO 20 N=2,NMAX
        X(N)   = 2.*(RNGU3(ISEED)-0.5)
        Y(N-1) = X(N)
   20 CONTINUE
      Y(NMAX) = X(1)

*- グラフ 2 --
      CALL GRFIG

      CALL GRSWND(  -1.1,  1.1, -1.1, 1.1 )
      CALL GRSVPT(  0.15, 0.95,  0.1, 0.5 )
      CALL GRSTRN( 1 )
      CALL GRSTRF

      CALL USSTTL( 'X2-TITLE', '', 'Y2-TITLE', '' )
      CALL USDAXS

      CALL UUMRK( NMAX, X, Y )

      CALL GRCLS

      END
PROGRAM JUMP1