``

前頁 メニュー 次頁

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

    １．プリンタ・グラフィックスの開始
    　オプション・メニューのグラフィックで，画像出力の形式としてプリンタ を選ぶとグラフィックスはプリンタに出力される。
    　プリンタには描画命令が送られる。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文を実行すると，改頁する。
    (6) SET TEXT BACKGROUNDは無視する。
    (7) SET DRAW MODEは無視される（かもしれない）。
    (8) Linuxでは，クリッピングが実行されない（かもしれない）。

    5．廃止予定の命令
     以下の文は，将来，廃止予定。
      SET AXIS COLOR 数値式
      　軸を描く命令(DRAW GRID, DRAW AXES)で用いる色の色指標を変更する。
      　たとえば，軸を黒で描きたければ
      　SET AXIS COLOR 1
      　を実行する。
     GRAPHICS DEVICE PRINTER
    　プログラム1行目に書いて描画出力先をプリンタに変える。