DclShadeContourを用いれば、ある値の範囲にだけシェードをかけたり、色を塗ったりすることができる。なにも設定しなければ、値が負の領域に斜線のシェードをかける。次のサンプルプログラムsample06.f90 は、 sample05の結果に加えて、値が負の領域をシェーディングする。
初期状態では、出力装置によっては先に描かれた図形が消えてしまうことがあります. このためここでは軸や等高線をかく前にシェードパターンを描いています。 プログラム中にcall DclSetParm('ENABLE_SOFTFILL',.true.)という文をかいておけば、 出力装置によらずにソフト側でシェードパターンをかくようになります。
格子点数が多い場合で色塗りをする場合には、DclShadeContourよりもDclShadeContourExを用いたほうが描画が速くなる。
program sample06 use dcl integer,parameter :: nx=36, ny=36 real,parameter :: xmin=0., xmax=360., ymin=-90., ymax=90. real,dimension(0:nx,0:ny) :: p !-- 球面調和関数 ---- do j=0,ny do i=0,nx alon = ( xmin + (xmax-xmin)*i/nx ) * DCL_PI/180. alat = ( ymin + (ymax-ymin)*j/ny ) * DCL_PI/180. p(i,j) = sqrt(1-sin(alat)**2) * sin(alat) * cos(alon) end do end do !-- グラフ ---- call DclOpenGraphics() call DclNewFrame call DclSetWindow( xmin, xmax, ymin, ymax ) call DclSetViewPort( 0.2, 0.8, 0.2, 0.8 ) call DclSetTransFunction call DclShadeContour( p ) call DclDrawScaledAxis call DclDrawContour( p ) call DclCloseGraphics end program |
|
DclShadeContour (UETONE ) |
2次元等値線図をパターンでぬりわける. |
DclShadeContourEx (UETONF) |
image 機能を使って2次元等値線図を色でぬりわける. |
* 括弧の中は、対応するf77インターフェイス名.