[目次へ]

(41)SOLMAP

機能:

(a) 立体図を作画する。

(b) カラー付けして作画する。

使用法:

    CALL SOLMAP(F,NW,NH,XY,ZLH,INTV,NCOL,K)

引 数
入出力
内  容
実数型
配 列
入力
2次元の値 Z=F(X,Y)を入れた大きさNW×NHの配列。
F(1,1)にはマッピング領域の左上の値F(Xmin,Ymax)を入れる。
NW
整数型
入力
配列Fの第1要素の数。
NH
整数型
入力
配列Fの第2要素の数。
XY
実数型
配 列
入力
表示領域の座標値を入れた大きさ2×2の配列。
XY(1:2,1):領域の左下のXY座標。
XY(1:2,2):領域の右上のXY座標。
ZLH
実数型
配 列
入力
描画データの範囲を設定する大きさ2×3の配列。
ZLH(1:2,1):描画データのX方向の下限と上限の値。
 目盛り数字が変化するのみで図は変化しない。
ZLH(1:2,2):描画データのY方向の下限と上限の値。
 目盛り数字が変化するのみで図は変化しない。
ZLH(1:2,3):描画データのZ方向(Fの値)の下限と上限の値。
 Z方向のスケールと目盛り数字が変化する。
INTV
整数型
入力
ラインを引く間隔。0のときはラインを引かない。
NCOL
整数型
配 列
入力
マッピングするカラーの値を入れた大きさKの配列。
カラー値を16進数で指定するときは,Z'BBGGRR' の形式で指定する。
整数型
入力
配列NCOLで指定したカラーデータの数。0のときはカラー付けをしない。

@ 配列Fの値の入れ方。


図41.1 配列Fの値の入れ方

A 目盛り数字はZLHの (最大値−最小値)<10.0 のときは小数点以下2桁で表示し,それ以外は整数部のみ表示する。

プログラム例1(色付けした表示):

! ... SOLMAP sample 1 ...
      real F(81,81),XY(2,2)/1.0,1.0,19.0,19.0/
      real ZLH(2,3)/-10.0,10.0, -10.0,10.0, 0.0,1.0/
      integer NX/81/,NY/81/,KP/7/,NCOL(8)
      data NCOL/0,Z'FF0000',Z'FFFF00',Z'00FF00', &
           Z'00FFFF',Z'0000FF',Z'FF00FF',Z'FFFFFF'/
      FM(X,Y) = COS(SQRT(X*X+Y*Y)*0.1)*0.2+0.5
      call XINT('WIN=(800,800)')
      call XVIEWP(0.0,0.0,20.0,20.0)
      call FRAME (0.0,0.0,20.0,20.0)
      do 10 J=1,NY
      Y = FLOAT(J-41)*2.2
      do 20 I=1,NX
      X = FLOAT(I-41)*2.2
      F(I,J) = FM(X,Y)
   20 continue
   10 continue
      call FRAME(XY(1,1),XY(2,1),XY(1,2),XY(2,2))
      call SOLMAP(F,NX,NY,XY,ZLH,3,NCOL,KP)
      call XEND
      stop
      end

プログラム例2(ライン表示のみ):

! ... SOLMAP sample 2 ...
      real F(81,81),XY(2,2)/1.0,1.0,19.0,19.0/
      real ZLH(2,3)/-10.0,10.0, -10.0,10.0, 0.0,1.0/
      integer NX/81/,NY/81/,KP/7/,NCOL(8)
      data NCOL/0,Z'FF0000',Z'FFFF00',Z'00FF00', &
           Z'00FFFF',Z'0000FF',Z'FF00FF',Z'FFFFFF'/
      FM(X,Y) = COS(SQRT(X*X+Y*Y)*0.1)*0.2+0.5
      call XINT('WIN=(800,800)')
      call XVIEWP(0.0,0.0,20.0,20.0)
      call FRAME (0.0,0.0,20.0,20.0)
      do 10 J=1,NY
      Y = FLOAT(J-41)*2.2
      do 20 I=1,NX
      X = FLOAT(I-41)*2.2
      F(I,J) = FM(X,Y)
   20 continue
   10 continue
      call FRAME(XY(1,1),XY(2,1),XY(1,2),XY(2,2))
      call SOLMAP(F,NX,NY,XY,ZLH,2,NCOL,0)
      call XEND
      stop
      end