VIEWPORT,DEVICE WINDOW, DEVICE VIEWPORT

SET VIEWPORT 数値式, 数値式, 数値式, 数値式
SET DEVICE WINDOW 数値式, 数値式, 数値式, 数値式
SET DEVICE VIEWPORT 数値式, 数値式, 数値式, 数値式
ASK VIEWPORT 数値変数, 数値変数, 数値変数, 数値変数
ASK DEVICE WINDOW 数値変数, 数値変数, 数値変数, 数値変数
ASK DEVICE VIEWPORT 数値変数, 数値変数, 数値変数, 数値変数
  上の6個の文の4つの引数は,順に,左端,右端,下端,上端を意味する。
SET CLIP 文字列式
ASK CLIP 文字列変数
  文字列式の値は"ON",または"OFF"
ASK DEVICE SIZE 数値変数, 数値変数, 文字列変数
  数値変数の意味は,順に,幅,高さ。文字列変数には"METERS"が入る。

 DEVICE VIEWPORT,DEVICE SIZEの単位はメートル。
 SET DEVICE VIEWPORTを実行すると,描画装置内(プリンタの場合はプリンタの印字可能領域)にdevice viewportが設定される。初期値は描画装置全体。
 SET DEVICE WINDOW文を実行すると,device viewport内に指定された矩形と相似な最大の矩形が左下詰めで設定される。初期値は,0,1,0,1。
 SET VIEWPORT文は,device windowの座標系で描画対象とする矩形を指定する。SET WINDOW文は,viewportを基準に座標系を定める。viewportの初期値は,0,1,0,1。
 DEVICE WINDOWとVIEWPORTは,0以上1以下の数値を用いて指定する。
 clipがONのときはviewportとdevice windowの共通部分にのみ描画され,OFFのときは,device window内のみに描画される。初期値はON。
 SET DEVICE VIEWPORTおよびSET DEVICE WINDOWを実行すると画面(ウィンドウ内)が消去される。

 これらの文は,描画領域の一部分の長方形を描画対象としたい場合に使う。
特に,SET VIEWPORT文は画面を消去しないので,画面を複数個に分けて使う目的に使える。
例 画面の右上と左下を利用して2つのグラフを描く

100 OPTION ANGLE DEGREES
110 SET VIEWPORT 0.5, 1, 0.5, 1
120 SET WINDOW -4,4,-4,4
130 DRAW GRID
140 FOR x=-4 TO 4 STEP 0.01
150    PLOT LINES:x,x^3-3*x;
160 NEXT x
170 SET VIEWPORT 0,0.5 , 0,0.5
180 SET WINDOW -180,540,-4,4
190 DRAW GRID(90,1)
200 FOR x=-180 TO 540
210    PLOT LINES:x,SIN(x);
220 NEXT x
230 END

 この例のように,VIEWPORTを指定するとき,左下端が(0,0),右上端が(1,1)の座標を用いる。
 ただし,独自拡張命令のSET BITMAP SIZE,または,GLOADを実行して正方形以外の領域を作成した場合,右上端は,長辺の長さを1とし,短辺は比例して縮小した値をもつ座標になる。その値は,ASK DEVICE WINDOW文を実行して知ることができる。

 SET DEVICE WINDOWとSET DEVICE VIEWPORTの使用例は,プリンタとメタファイル