[目次へ]

(w-2) WNDISP

機能:

(a)描画中のバッファデータを画面に表示する。(WinPlotG専用)

使用法:

   CALL WNDISP

 引数:なし

@ XENDや次のXVIEWPルーチンの実行を待たず,描画中のバッファデータを画面に表示する。

A 描画途中の図を確認しながらデータをキー入力する場合に,READ文を実行する直前に本ルーチンを実行すると,それまでに描画した図形データが表示される。

B WNCLEARルーチンとWNSLEEPルーチンを併用して擬似アニメーションを行うことができる。


(w-3) WNCLEAR

機能:

(a)描画中のバッファデータを消去する。(WinPlotG専用)

使用法:

   CALL WNCLEAR

 引数:なし

@ 描画途中のバッファデータを消去する。

A 擬似アニメーションを行う場合に,それまでに描画した図形データを消去し次の画面描画に備える。


(w-4) WNSLEEP

機能:

(a)指定された時間プログラムを休眠する。(WinPlotG専用)

使用法:

   CALL WNSLEEP(MSEC)

引 数
入出力
内  容
MSEC
整数型
入力
ウェイトする時間をミリ秒単位で指定する。

@ 擬似アニメーションを行う場合に,一定時間画面を保持する場合に用いる。

プログラム例:擬似アニメーション表示を行う(波動方程式)。

! ... example OF WNCLEAR,WNDISP,WNSLEEP ...
      real U1(60,60),U2(60,60),U3(60,60)
      real XY(2,2)/0.0,0.0, 10.0,10.0/
      real ZLH(2,3)/0.0,1.0, 0.0,1.0, -0.4,0.6/
      integer NM/60/,NCOL(2)
      data NCOL/Z'D0FFD0',Z'FFD0D0'/
      call XINT('WIN=(600,600)')
      call XVIEWP(0.0,0.0,10.0,10.0)
      WD = 10.0
      D  = WD / FLOAT(NM)
      DT = 0.02
      C  = 2.5
      H  = DT**2*C**2/D**2
      AK = 0.8
      U1 = 0.0
      U2 = 0.0
      U3 = 0.0
      U1(NM/2,NM/2)= -0.3
      do 30 K=1,200
      do 20 J=2,NM-1
      do 10 I=2,NM-1
      W = U2(I-1,J)+U2(I+1,J)+U2(I,J-1)+U2(I,J+1)
      X = U2(I,J)*4.0
      Z = (W-X)*H
      if(ABS(Z).lt.1.0e-7) Z = 0.0
      U3(I,J) = U2(I,J)*2.0-U1(I,J)+Z-AK*DT*(U2(I,J)-U1(I,J))
   10 continue
   20 continue
      U1 = U2
      U2 = U3
      call WNCLEAR
      call FRAME (0.0,0.0,10.0,10.0)
      call SOLMAP(U3,NM,NM,XY,ZLH,3,NCOL,2)
      call WNDISP
      call WNSLEEP(10)
   30 continue
      call XEND
      stop
      end

サンプル例2