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

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

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


11.3.5 図形要素としての型の提案

 幾何学的な性質を考えに入れて図形を描くときは、例えば、或る点から直線に垂線を引くとするとき、垂線と直線とが交わる交点の座標計算が必要です。ここで、幾つかの図形要素に数学的な算法と関連つけるように型の定義を決めることにしました(表11.2)。考え方としては、前項で説明した複素数の扱いを拡張して、複数の数の集合を一つの変数名として、見掛け上の代数計算式に使うようにしたものです。ここでの代数式使う演算子は、普通の代数式で使う加減乗除記号の他に、論理積・論理和、さらには二つの図形要素間に直線を引く演算なども定義しました。これらの演算子に行わせる演算は、幾何学的な意味合いを持たせました。二次元、三次元の型の変数は、代入文で左辺に使われたとき、その変数の作図コマンドとなるようにG-Basicを設計してありますので、作図用のコマンドは表11.1以外には特に増やす必要がないようにしてあります。次のページに例示した図11.1は、三角形の外接円を求めるプログラムと、その結果の作図を例示したものです。短い文ですので、論理を追いかけることは簡単であると思います。

表11.2 図形要素を変数扱いをするときのG-Basicの型

番 号

型 の 名 前

寸 法

内    容

型宣言文

1

整数

1

8 バイト長

DEFINT

2

実数

1

8 バイト長

DEFSNG

3

文字列

2

16 バイトの固定長

DEFSTR

11

二次元の点

2

x,y(点の座標)

DEF2PT

12

二次元の直線

3

a,b,c (直線式 ax+by+c=0)

DEF2LN

13

二次元の円

3

x,y,r (円の中心と半径)

DEF2CR

14

二次元の矩形

4

x0,y0,a,b (2a×2bの寸法)

DEF2BX

15

二次元の線分

4

x1,y1,x2,y2 (始点終点の座標)

DEF2ED

16

二次元の変換行列

6

2×3 のマトリックス

DEF2TR

21

三次元の点

3

x,y,z (点の座標)

DEF3PT

22

三次元の直線

6

x0,y0,z0,u,v,w(点の座標と向き)

DEF3LN

23

三次元の平面

4

a,b,c,d(面方程式 ax+by+cz+d=0)

DEF3PL

24

三次元の球

4

x0,y0,z0,r>(球の中心と半径)

DEF3SP

25

三次元の直方体

6

x0,y0,z0,a,b,c (2a×2b×2c)

DEF3BX

26

三次元の線分

6

x1,y1,z1,x2,y2,z2 (始点と終点)

DEF3ED

27

三次元の変換行列

12

3×4 のマトリックス

DEF3TR

備考:寸法とは、実数が何個で構成されているかの数を云います。実数一個の記憶単位は、標準で倍精度を扱う8バイトを指します。

2010.11 橋梁&都市PROJECT

前ページ  次ページ