プリンタを描画装置として使う
1.プリンタ・グラフィックスの開始
オプション・メニューのグラフィックで,画像出力の形式としてプリンタ を選ぶとグラフィックスはプリンタに出力される。
プリンタには描画命令が送られる。Linuxのcups-pdfのようにファイルに出力するプリンタドライバを指定してもよい。
その方法でベクトルグラフィックスの画像が得られる。PDFで出力したファイルは,変換ソフトを用いてPostScript等への変換も可能になる。
2.トラブル・シューティング
プリンタ・ドライバによっては,末尾にセミコロンのないPLOT LINES文
PLOT LINES: x,y
で点を打たないものがあります。末尾にセミコロンを追加して動作を確認してください。
3.描画領域を操作する命令
描画領域を正方形以外にしたいとき,以下の命令が使える。
詳細はJISを参照。
SET VIEWPORT
SET DEVICE WINDOW
SET DEVICE VIEWPORT
ASK VIEWPORT
ASK DEVICE WINDOW
ASK DEVICE VIEWPORT
DEVICE VIEWPORTの単位はメートル。
例
(1) 描画領域の縦横比変更
次のプログラムでは,用紙を縦に用いることを前提として,
描画領域の横:縦を3:4に変更している。
110 GRAPHICS DEVICE PRINTER
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ずつ増える。
(3) サイズ指定
幅w(㎜),高さh(㎜)(h<w)の画像を得たいときは,
GRAPHICS DEVICE PRINTER
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) 次の命令を実行するとextype11140の例外状態になる。
GET POINT
LOCATE POINT
(5) CLEAR文を実行すると,改頁する。
5.廃止予定の命令
以下の文は,将来,廃止予定。
SET AXIS COLOR 数値式
軸を描く命令(DRAW GRID, DRAW AXES)で用いる色の色指標を変更する。
たとえば,軸を黒で描きたければ
SET AXIS COLOR 1
を実行する。
GRAPHICS DEVICE PRINTER
プログラム1行目に書いて描画出力先をプリンタに変える。