グラフ用紙に何かのデータをプロットする時のことを思い浮かべてください.
まず, 直角一様座標か対数座標かのグラフ用紙を用意し, これからプロットし
ようとするデータと, グラフ用紙の目盛りの数をにらんで「一目盛りいくらに
しよう」と考えるはずです. このようにして実際のデータの数値とグラフ用紙
の目盛りとを対応づけるわけですが, このような操作をDCLでは「正規化変換」
と呼びます.
前章で使った次のサブルーチン・コールを, 「おまかせ」でなく自分で陽に指 定することを考えましょう.
Fig.inclpoint(x, y)は, 第1章のプログラム HOP の場合, 次と同じになります.
Fig.window = [ -100., 100., 5.999, 6.001 ]ユーザーの使っている座標系でグラフに描きたい範囲を「ウインドウ」と呼び ますが, 上の「おまかせ」では Fig.inclpoint メソッドで x と y の最小値・最大値を求め, 切りの良い値にしてウインドウ を設定しています. この例のデータでは (UXMIN,UXMAX,UYMIN,UYMAX) = (-100.,100.,5.999,6.001) ですから, この範囲でウインドウを指定するには, Fig モジュールのパラメタwindow でこれらの値 を陽に与えます. 第1章の軌跡図(2.1ページ)で, 軌跡のまわりに 少し余白を与えようと思うと, これらの範囲を大きめにとれば良いことになり ます(次節のプログラム JUMP1 参照).
Fig.viewport = [ 0.2, 0.8, 0.2, 0.8 ]
Fig.transnum = 1
次に, このウインドウをV-座標系(実際に作画できる領域に最大内接する正方
形で
[0,1]×[0,1] で規格化された描画領域. 第3.3
節参照)のどの範囲に対応させるかを考えて, これを「ビューポート」としま
す. ビューポートとは, V-座標系で通常座標軸が描かれる矩形の領域のことで
す. 「おまかせ」では (VXMIN,VXMAX,VYMIN,VYMAX) =
(0.2,0.8,0.2,0.8) の範囲をビューポートとしますが, ここでは
Fig モジュールのパラメタviewport でこれらの値を陽に与えます.
これで, ウインドウとビューポートの四隅は対応させることが出来ましたが,
ウインドウ内の各点をビューポート内の点に対応させる必要があります. 線形
に対応させるか, 対数をとって対応させるかなどの任意性がありますから, 具
体的に変換関数を決めなければなりません. 「おまかせ」では直角一様座標で
すから, Fig モジュールのパラメタtransnum で変換関数番号を1と指定します.
UXMIN, UXMAX (実数型) ウインドウの x 座標の 最小値と最大値. UYMIN, UYMAX (実数型) ウインドウの y 座標の 最小値と最大値.
VXMIN, VXMAX (実数型) ビューポートの x 座標の 最小値と最大値.(初期値は0.2と0.8) VYMIN, VYMAX (実数型) ビューポートの y 座標の 最小値と最大値.(初期値は0.2と0.8)
ITR (整数型) 変換関数番号. 1:直角一様座標, 2:片対数(y軸)座標, 3:片対数(x軸)座標, 4:両対数座標. (初期値は1)