=begin

=colorbar.rb

Ruby-DCL でカラーバーを表示させるモジュール. 

==USAGE

  MyTool::colorbar(min, max)

  * min : 最小値
  * max : 最大値

なお, 利用するためには

  require "[directory]colorbar"

としてモジュールを呼び出す必要がある. 

==HISTORY

2004/11/13  北守太一  ver 0.1

==REFERENCE

このスクリプトを作成する上で京都大学の西澤さん作成の colorbar.rb 
(http://www.gfd-dennou.org/arch/ruby/products/dcl-toolbox/colorbar.rb)
を参考にした.

=end

module MyTool

  require "numru/dcl"

  def colorbar(barmin, barmax)

    bar = NArray.sfloat(2, 11)

    delta = (barmax - barmin) / 10         # 目盛間隔の設定

# 軸目盛のフォーマット

  dec = - Math::log10(delta)
  dec = dec.to_i + 1
  dec = dec.to_s

  format = '(F6.'+dec+')'

# カラーバーを描く

    DCL::grswnd(0.0, 1.0, barmin, barmax)  
    DCL::grsvpt(0.85, 0.88, 0.2, 0.6)      # カラーバーを描く範囲の指定
    DCL::grstrn(1)
    DCL::grstrf

    for k in 0..10
      bar[0,k] = barmin + k*delta          # 目盛の値の設定
      bar[1,k] = barmin + k*delta
    end

    DCL::uwsgxa([0.0,1.0])    
    DCL::uwsgya(bar[0,0..10]) 
    DCL::uetone(bar)                       # トーンをつける

    DCL::slpvpr(3)
    DCL::uzlset('LABELYR', true)

    DCL::uzfact(0.9)
#    DCL::uysfmt('(F6.3)')
    DCL::uysfmt(format)
    DCL::uyaxdv('R', 2*delta, delta)       # 目盛をつける

  end

  module_function :colorbar

end

