前頁  メニュー  次頁


プリンタを描画装置として使う

現在,この機能(GRAPHICS DEVICE PRINTER)は正しく動作しません。

1.プリンタ・グラフィックスの開始
プログラムで,
GRAPHICS DEVICE PRINTER
を実行すると,以後,グラフィックスはプリンタに出力される。
この文を実行すると,図形機能は初期化される。
描画領域の初期値は,印刷可能な範囲で,左下端を含む最大の正方形。
(注)この命令はJIS規格外。
(JISでは,図形表示装置を選択する方法は処理系定義とされている。)

2.追加された命令
次のFull BASIC命令を追加した。詳細はJISを参照。
SET VIEWPORT
SET DEVICE WINDOW
SET DEVICE VIEWPORT
ASK VIEWPORT
ASK DEVICE WINDOW
ASK DEVICE VIEWPORT
DEVICE VIEWPORTの単位はメートル。

3.例
(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(o),高さh(o)(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) 次の命令を実行すると例外状態になる。
  GET POINT
  LOCATE POINT
(5) CLEAR文を実行すると,改頁する。


6.隠し命令
  SET AXIS COLOR 数値式
  軸を描く命令(DRAW GRID, DRAW AXES)で用いる色の色指標を変更する。
  たとえば,軸を黒で描きたければ
  SET AXIS COLOR 1
  を実行する。
(Note)この文は,将来,文法を変更する可能性がある。

7.トラブル・シューティング
プリンタ・ドライバによっては,末尾にセミコロンのないPLOT LINES文 
PLOT LINES: x,y 
で点を打たないものがあります。末尾にセミコロンを追加して動作を確認してください。 
折れ線で接続したくないときは, 
SET POINT STYLE 1 
PLOT POINTS: x,y 
で置き換えてください。 

8.参考
 プリンタは,PDFWriterのようにファイルを生成するものも選べます。
 PostScript プリンタドライバを利用してEPSファイルを生成することもできます。