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

    １．プリンタ・グラフィックスの開始
    　オプション・メニューのグラフィックで，画像出力の形式としてプリンタ を選ぶとグラフィックスはプリンタに出力される。
    　プリンタには描画命令が送られる。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
    とします。

    ４．補足
    (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行目に書いて描画出力先をプリンタに変える。