GKSによる2次元グラフィックス

データの可視化: 道具の話

(例の大部分は1993--1994年ごろ選んだもので、今となっては古いですが、 そのままにしています。)

コンピュータグラフィックスの実現方法(利用者界面のソフトウェア)

1. 対話型

キーボードやマウスの操作により、人の意識の上では、言語を媒介にせず、 そのまま画面上の図形を操作しているように感じられるもの。 フリーハンドの線や塗りを重視するpaint系と、 直線や円のような幾何学的図形を重視するdraw系に分けることもある。

例、

2. 専用言語型

文字から構成された指令をソフトウェアに送ると図形が描かれる。

会話型処理のもの、バッチ(一括)処理のもの、両方できるものがある。

言語には、 図形表示装置の機能に密着した指令から、 対象とするデータや統計技法を抽象的に指示する (具体的方法はソフトウェア側に用意されたものを使う)ものまで、 幅がある。

例、

装置の命令を人間が直接指示していたのでは、あまり複雑な作図はできない。 一方、抽象化された機能を呼び出すパッケージでは、パッケージ作成者の意図 からはずれた図の作成はできないことが多い。

3. プログラム言語からのサブルーチン・関数呼び出し

作図機能が分割されて、(Fortran用語で言えば)サブルーチンになっていて、 利用者は、(Fortran用語で言えば) CALL 文を自分のプログラムに含め、 コンパイルしたものにサブルーチンライブラリをリンクして実行する。

GKS (Graphical Kernel System)は、このようなFortranのサブルーチンや Cの関数の集合の規格の1つである。Kernelの名のとおり、これは、線をひく、 点をうつなどの2次元グラフィックスの基本的機能だけを決めている。

GKS準拠の基本機能を呼び出す形の、より複雑な仕事ができるパッケージも 作られている。NCAR Graphics は、GKS と、 それを使って地図や等値線図をかくサブルーチンを含んでいる。

GKSのなかまとして、PHIGS というものがある。あらっぽく言えば、GKSを 3次元グラフィックスに拡張したものと考えることができる。ワーク ステーション教室では、DEC社のPHIGSライブラリを使うこともできる。

GKS以前によく使われていたサブルーチンライブラリとして、Calcomp社の プロッタールーチンや、それと類似の形式のサブルーチンライブラリがある。

図形出力のハードウェア的分類

ハードコピー

積極的に消す動作をしないと消えないものを言う。紙へのプリントなど。

ソフトコピー(必ずしも定着した用語ではない)

消す動作をすればすぐ消えてしまうものを言う。 ブラウン管ディスプレイ(CRT)はその典型で、表示内容がごく短時間しか 持続しないので、計算機側に情報を持ってくり返し送っている。

メタファイル

特定の入出力装置に依存しない形で図形情報をたくわえる計算機上のファイル。

ベクター(vector)グラフィックスとラスター(raster)グラフィックス

図形情報のとらえかたの違い。

ベクター型
順不同な位置にある点と点を結ぶ線分の集まり
ラスター型
等間隔に分割された画素(pixel=picture cell)の集まり

この分類は、もともと図形入出力装置の性格から来ているように思われる。

ベクター型出力装置の典型:
X-Yプロッタ、運動場の石灰線引き
ラスター型出力装置の典型:
液晶ディスプレイ、スポーツ応援の人文字
ベクター型入力装置:
ディジタイザ
ラスター型入力装置:
スキャナ

実際には、ソフトウェアで補う(エミュレーションする)ことにより、 ラスター型の装置をベクター型の装置であるかのように使う、あるいは その逆ができる。

次の図は、<pre>の中で表示される ASCII文字(空白を含む)の横幅が一定であることを 前提として書いてある。
(vL) |~~~~~~~~~~~~~~~~|  |~~~~~~~~~~~~~~~~| (vL)

     |_____|~~~~|_____|  |_____|~~~~|_____|
      _____|~~~~|_____    _____|~~~~|______ (v/r)
(vH) |________________|  |_____------------
                          _____------------
                         |________________| (rH)
この授業でも、どちらかと言えばラスター型装置であるCRTディスプレイを 使って、ベクター型グラフィックスを扱うことにしたい。


2000-04-24; 2005-08-10
増田 耕一
[目次へ]