[目次へもどる] [前へ] [次へ]

座標系の設定

Postscriptで使われる座標系は,インタプリタ起動直後のデフォルトの状態で, 原点が紙がPortrait(縦長)の状態の左下端で、単位はポイント (1pt = 約0.35mm)になっています.しかし,ポイント単位で図形を書くのは, メートル法やインチべったりの我々には難しく,また,紙をLandscape(横長) で使いたい時にはこのデフォルトの座標系のままでは不便です. そこで,ここでは座標系の設定を変える方法を紹介します.

スケールを変える

まずポイント単位からおさらばしましょう."scale"というオペレータ は座標のスケールを倍率を指定して変更します.例えば,x方向へ3倍,y方向へ 5.5倍のスケールにする時は,
3 5.5 scale
で変更できます.ですから,単位をmmにしたいときは,
2.8571429 2.8571429 scale
で変更できます.また,
2.8571429 2.8571429 scale
10 10 scale
とすれば,pt→mm→cmと変更できます.

原点の位置を変える

原点の位置が左下にあるというのも都合の悪い場合があります. そもそも,紙の端ぎりぎりの所はプリントされないことも多いので, 自分の描きたいグラフの原点などへ座標系の原点を移動することを お勧めします."translate"オペレーターは原点の位置を指定した場所へ 移動するオペレータです.例えば,原点をx方向へ100,y方向へ300移動 するときは,
100 300 translate
で移動できます.

座標を回転する

紙を横長に使いたい時など,座標軸を回転させた方が楽な場合があります. "rotate"オペレータは指定した角度(単位は度,反時計周りが正の向き) だけ座標軸を回転させます.例えば,座標軸を45度回転するときは,
45 rotate
です.

座標情報を保存する

座標をいじくった後,やっぱり元に戻したいという時もあります. その時は,座標を変更する前に,現在の座標情報を保存しておいて, 元の座標系に戻したい時に保存しておいた座標情報を呼び出します. 座標情報を保存するオペレータは"gsave"で,呼び出すオペレータは "grestore"です.また,ここでは触れませんが"gsave"は座標情報以外にも 線の太さや色といった図形の設定も保存します.
gsave     %座標系を保存
1.4 0.2 scale 10 -20 translate 45 rotate
grestore  %座標系を呼び出す

座標系の変更の応用例

応用例として次のようなPostscriptを示します.

  1. 紙を横長においた時の左下を原点とする
  2. 原点からx方向に30mm,y方向に50mmの位置に"Landscape"という文字列を描く
  3. 座標系を始めの状態にもどしx方向に30pt,y方向に50ptの位置に, "Portrait"という文字列を描く

land_port.ps
001 %!PS-Adobe-3.0
002
003 /Helvetica findfont 45 scalefont setfont
004 
005 gsave            % 座標系の保存
006 
007 576 0 translate  % A4用紙の右下端へ原点を移動
008 90 rotate        % 座標軸を90度回転
009 
010 2.8571429 2.8571429 scale  % 単位をmmへ変更
011 
012 50 30 moveto (Landscape) show % 文字列の作画
013 
014 grestore         % 座標系の復元
015 
016 50 30 moveto (Portrait) show % 文字列の作画
017 
018 showpage
019 

出力結果は以下のとおりです.座標スケールを変更したので, 文字の大きさも変っています.

land_port.jpg
30dpiでA4用紙に出力

[目次へもどる] [前へ] [次へ]