プリンタとメタファイル

 オプションメニューのグラフィックスの設定で,プリンタドライバに直接描画コマンドを送ったり,メタファイルを作成したりすることができる。

1.プリンタの設定
 プログラムを実行する前にプリンタを設定する。
 オプションメニューから「グラフィックス」を選択し,「プリンタの設定」をクリックし,プリンタと用紙を選択する。

2.描画領域の既定値
 オプションメニューで画像形式に「メタファイル(プリンタ)」または「プリンタ(直接)」を選んだとき,描画領域の既定値は,印刷可能な範囲で,左下端を含む最大の正方形になる。

3.描画領域の変更
(1) 描画領域の縦横比変更
 次のプログラムでは,用紙を縦に用いることを前提として,描画領域の横:縦を3:4に変更している。
140 SET DEVICE WINDOW 0, 3/4, 0, 1
150 SET VIEWPORT 0, 3/4, 0, 1
160 SET WINDOW -3, 3, -4, 4
170 DRAW grid
180 DEF f(x)=x*(x-1)*(x+1)
190 FOR x=-3 TO 3 STEP 0.01
200 PLOT LINES: x,f(x);
210 NEXT x
220 END

解説
 横:縦が3:4の領域を描画に用いるために,140行と150行のように 0, 3/4, 0, 1 をパラメータとするSET DEVICE WINDOW文とSET VIEWPORT文を実行する。
 横長の場合,たとえば,縦:横=3:4にしたいときは,
140 SET DEVICE WINDOW 0, 1, 0, 3/4
150 SET VIEWPORT 0, 1, 0, 3/4
とすればよい。

(2) 余白の追加
 DEVICE VIEWPORTを縮めることで上下左右の余白を増やすことができる。
120 ASK DEVICE VIEWPORT dvleft, dvright, dvbottom, dvtop
130 SET DEVICE VIEWPORT dvleft+0.01, dvright-0.01, dvbottom+0.01, dvtop-0.01
の2行を上のプログラムに追加すると,上下左右の余白が1cmずつ増える。
(Note)プリンタとメタファイルのとき,DEVICE VIEWPORTの単位はm(メートル)。

(3) サイズ指定
 幅w(o),高さh(o)(h<w)の画像を得たいときは,
ASK DEVICE VIEWPORT dvleft, dvright, dvbottom, dvtop
SET DEVICE VIEWPORT dvleft, dvleft + w/1000, dvbottom, dvbottom + h/1000
SET DEVICE WINDOW 0, 1, 0, h/w
SET VIEWPORT 0, 1, 0, h/w
とする。w<hのときは,下の2行を
SET DEVICE WINDOW 0, w/h, 0, 1
SET VIEWPORT 0, w/h, 0, 1
とする。

4.補足
(1) ASK DEVICE SIZE w,h,s$
   w,hは数値変数名,s$は文字列変数名
   印字可能面の幅をwに,高さをhに,"METERS"をs$に代入する。
   幅と高さの単位はメートル。
(2) 次の命令は意味のある数値を返す。単位はピクセル。
 ASK PIXEL SIZE
(3) 次の命令は-1を返す。例外状態にならないので注意。
 ASK PIXEL VALUE
 ASK PIXEL ARRAY
(4) 次の命令を実行すると例外状態になる。
 LOCATE POINT
 GET POINT
(5) 画像出力の形式が「プリンタ(直接)」であるときにCLEAR文を実行すると,改頁する。


5.隠し命令
 以下の命令はJIS規格外であり,将来,文法や動作を変更する可能性がある。

SET AXIS COLOR 数値式
 軸を描く命令(DRAW GRID, DRAW AXES)で用いる色の色指標を変更する。
 たとえば,軸を黒で描きたければ
 SET AXIS COLOR 1
 を実行する。

GRAPHICS DEVICE METAFILE
 メタファイル(プリンタ)モードで翻訳する。
GRAPHICS DEVICE PRINTER
 プリンタ(直接)モードで翻訳する。

参照  グラフィックス-オプション