掴んだ物(技術)はちゃんと食べる記録帳

興味を持ったものに対する足跡を残していくために作成しました。勉強しながら書いているので、間違いや短絡もあると思います。ご指摘いただけると喜びます。

Let's PostScript(10) ユーザー空間とデバイス空間

ようやく、座標系の話にたどり着きました。Page描画まであと少しです。

ユーザー空間

PostScriptユーザが描画を行う際にPostScriptは「何に対して描画するか」を意識させない仕様になっています。

それが、15インチの640dot×480dotの古いブラウン管のディスプレイであったとしても、それが2400dpi×2400dpiの超高精細で印刷されるA1サイズのポスターであったとしても。 同じ画像の形であれば、全く同じコマンドで描画します。そのコマンドは出力先に依存しません。

この、ユーザーが描画を指示する際に使用する描画領域の空間をユーザー空間と呼びます。 ユーザー空間は出力先に依存しないため、論理上無限の広さを持っています。 座標空間はの一単位をどの程度の長さとするかは、ユーザーが自由に決めることができます。 デフォルトでは1座標単位 = 1/72インチです。一般的には72dpiといったほうがわかりやすいでしょうか。 これは、一般に広く使用されている、DTPポイントとほぼ同様です。というか、PostScriptが1座標単位 = 1/72インチとしたからこそ、その単位がDTPポイントして一般化したというのが正しいかもしれません。

デフォルトのユーザー空間ではその原点は、左下隅に設定されます。そこから上と右に向かって値が増えていきます。折れ線グラフ等の目盛りをイメージしていただくとわかりやすいと思います。

これは大事なことですが、ユーザー空間の座標の値は実数で表現しますユーザー空間は論理的な空間のため、解像度、dot、ピクセルの概念から解放されているためです。

バイス空間

バイス空間はユーザー空間で指示した画像を、実際に出力する物理デバイスに合わせて調整した描画領域です。 この、デバイスに合わせて調整した描画領域のことをバイス空間と呼びます。

この物理的な描画領域というのは、例えば15インチの640×480dotの古いブラウン管の画面出会ったり、プリンタの300dpiのA4での印刷領域であったり、 2400dpiのLetterサイズのJpeg画像であったりします。

ユーザー座標とデバイス座標の関係を示した図を以下に記します。出典はPDF Referenceからとなります。 f:id:hlsme:20201005223325p:plain

ユーザー空間から、デバイス空間への矢印のところにCTMと書かれています。これが座標変換に用いるパラメータでPostScriptの中でも最重要の要素となります。

次回はユーザー空間からデバイス空間への変換を一例にCTMについて押さえていきたいと思います。