SewiGの日記
2006-05-29 [月] [長年日記]
■ [Programming] Postscriptファイルっておもしろいね
単なる印刷用のファイルフォーマットとばかり思ってましたよ。ところが、スタック計算機として利用できるのです。これは面白いです。なんか、PSでHTTPサーバを作った方もいらっしゃるそうで、驚きです。
とりあえず、PSで基本的な描画を行うためのメモを書いておきましょう。
%で始まる行はコメントです。で、PSは%!PSで始めることになっています。
で、ここから図形などを描画していくわけですが、ここで直線や曲線の組合せをパスと呼ぶことだけ覚えててください。図形の描画はパスを作って表示をするという2段階で実現できます。
newpathオペレータで新しいパスを作成します。これでキャンバスみたいなものができたのでこの上に図形を描きます。
strokeオペレータでパスを描画します。
showpageオペレータでディスプレイやプリンタに出力します。これで1ページですね。
あとは、図形の描画ですが、直線にの描き方を説明します。PSでは左下が原点で右方向がx、上方向がyになります。movetoオペレータで基準となる点を指定します。x,y座標を指定する必要があるので、movetoオペレータには2つの引数をスタックにプッシュします。
そして、linetoオペレータで基準の点から指定座標までのパスが引けます。相対的な位置の指定にはrmoveto,rlinetoを使用します。
ほかにも、弧を描くオペレータなどもあります。
closepathで閉じてないパスを閉じたり、setlinewidthで線幅を指定したり、setrgbcolorで色の指定ができます。テキストも表示できますが、フォントの指定が必要です。
とりあえず、まとめ。hoge.psってファイル名にでもして、印刷するなりgvで表示してください。
%!PS-Adobe-3.0 5 setlinewidth newpath 1 0 0 setrgbcolor 10 10 moveto 100 0 rlineto stroke 0 0 1 setrgbcolor 200 350 100 315 225 arc fill closepath stroke showpage