[目次へ]

(40)COLMAP

機能:

(a) カラー分布図を作画する。

(b) CNTMAPルーチンとの併用でカラーの等高線図を作画できる。

使用法:

    CALL COLMAP(F,NW,NH,XY,ZLH,NCOL,K)

引 数
入出力
内  容
実数型
配 列
入力
2次元の値 Z=F(X,Y)を入れた大きさNW×NHの配列。
F(1,1)にはマッピング領域の左上の値を入れる。
NW
整数型
入力
宣言した配列Fの第1要素の数。
NH
整数型
入力
宣言した配列Fの第2要素の数。
XY
実数型
配 列
入力
マッピング領域の座標値を入れた大きさ2×2の配列。
XY(1:2,1):領域の左下のXY座標。
XY(1:2,2):領域の右上のXY座標。
ZLH
実数型
配 列
入力
描画値の範囲を設定する大きさ2の配列。
ZLH(1):描画する下限の値。ZLH(2):描画する上限の値。
NCOL
整数型
配 列
入力
マッピングするカラーの値を入れた大きさKの配列。
カラー値を16進数で指定するときは,Z'BBGGRR' の形式で指定する。
整数型
入力
配列NCOLで指定したカラーデータの数。

プログラム例:

! ... COLMAP sample ...
      real F(64,64),XY(2,2)/-5.0,-5.0, 5.0,5.0/
      real ZLH(2,3)/0.0,1.0, 0.0,1.0, 0.0,1.0/
      integer NW/64/,NH/64/,IOPT(4),JPEN(2),NCOL(8)
      data NCOL/0,Z'FF0000',Z'FFFF00',Z'00FF00', &
                  Z'00FFFF',Z'0000FF',Z'FF00FF',Z'FFFFFF'/
      TH = 3.1415926
      SW = 1.0/FLOAT(NW-1)*TH
      SH = 1.0/FLOAT(NH-1)*TH
      do 10 J=1,NH
      do 20 I=1,NW
      F(I,J)=ABS(COS(FLOAT(I-1)*SW)+SIN(FLOAT(J-1)*SH))*0.5
      if (F(I,J).lt.0.00001) F(I,J)=0.0
   20 continue
   10 continue
      call XINT('WIN=(800,800)')
      call XVIEWP(-6.0,-6.0,6.0,6.0)
      call FRAME (-6.0,-6.0,6.0,6.0)
      call COLMAP(F,NW,NH,XY,ZLH(1,3),NCOL,8)
      DS = 0.05
      IOPT = (/10,50,25,2/)
      JPEN = (/-71, 71/)
      call CFONT(1)
      call CNTMAP(F,NW,NH,XY,ZLH(1,3),DS,IOPT,JPEN,2)
      call CLRPEN(1)
      call FRAME (XY(1,1),XY(2,1),XY(1,2),XY(2,2))
! ... compare with SOLMAP
      call XVIEWP(-6.0,-6.0,6.0,6.0)
      call FRAME (-6.0,-6.0,6.0,6.0)
      call FRAME(XY(1,1),XY(2,1),XY(1,2),XY(2,2))
      call SOLMAP(F,NW,NH,XY,ZLH,3,NCOL,8)
      call XEND
      stop
      end

COLMAPルーチンとCNTMAPルーチンの併用

SOLMAPルーチンで表示