目次ページ  前ページ   次ページ

11. グラフィックス言語の解説

11.3 グラフィックスの言語設計


11.3.6 標準化したグラフィックス言語の提案は難しい

図11.1 三角形の外接円を描かせるGBASICのプログラム

10 REM  三辺の長さを与えて三角形を作図する
20 DPERAS
30 LET L1,L2,L3=150,200,250
40 DEF2PT P
50 DEF2CR R
60 DEF2ED E
70 PA=-120:PB=PA+L3
80 LET X,Y=PA: DPTEXT X,Y,"PA"
90 LET X,Y=PB: DPTEXT X,Y,"PB"
100 LET R1,R2=PA,L2,PB,L1
110 R1=R1:R2=R2:REM circle drawing
120 PC=R1&R2
130 LET X,Y=PC: DPTEXT X,Y,"PC"
140 E1=PA@PB:E2=PB@PC:E3=PC@PA
150 DPTEXT -100,250,"三辺を与えて"
160 DPTEXT -100,225,"三角形の作図"
170 PRINT "PC= ";PC
 
 一般論として、装置が変わっても、プログラム本体の変更が最小で済むようにする、標準言語GKS (Graphical Kernel System)の提案がISOで試みられ(1978)、JIS化もされました。しかし、現実には実用化には発展しませんでした。理由は幾つかあります。コンピュータグラフィックスは、利用したい対象や専門に応用するときは、コンピュータグラフィックスに掛ける手間を程々に抑えます。図11.1に見るように、ここではグラフィックスに関係するコマンドが、直接目に見えないようにして、ユーザがプログラム文を書く手間を省くようにしました。OSがWindowsのようなGUI環境になって、グラフィックスの利用がシステムとしても必要になったことで、システム自体がグラフィックス装置の機能を持つようになりました。この場合でも、フォームを始め、幾つかの図形オブジェクトを表示しますが、その作図命令をユーザが扱わなくても済みます。この機能に対応させる場合でも、筆者は、内部的に自前の中間言語の中身を変えるだけの最小の変更で済ますようにしました。Windowsの環境では、差し当たって抽象的なグラフィックス装置を考えます。具体的に外部のグラフィックス装置を使うときには、ファイルにデータを書き出してからそのファイルから別作業として描き出し処理を行わせます。システムが利用しているグラフィックスモニタも、外部オブジェクト扱いです。これを使うときは、画面を準備して、描きだすプログラム単位(モジュール)を作成します。これをクラスモジュールと呼ぶようになりました。グラフィックスモニタの解像度も種々の選択がありますので、ここにデバイスドライバを介します。これは、システムから間接的に呼びますので、ユーザが直接関与しなくても済みます。要するに、標準化を試みると、何段階かの擬似的な装置を介するプログラミングをします。この考え方全体をオブジェクト指向プログラミングと総称します。具体的に汎用のプログラミング言語を使うのはプロ級のプログラマの環境ですが、基本的なグラフィックス機能だけを使う保守的な態度が望ましくなります。
2010.11 橋梁&都市PROJECT

前ページ  次ページ