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

2. 図形要素の代数的表現

2.1 幾何学要素の数値表現


2.1.3 幾何学的要素を表す型を考えること

 二つ上の段落で引用した文章表現では、文字A, B, C,…は、「点を区別する記号に使う」と宣言しています。この宣言に先立って「点とはどういうものか」の定義を必要としています。コンピュータに理解させる手順は、型の約束(定義)をあらかじめ決めておいて、型宣言文を使って、「この変数名はこの型で使います」とコンピュータに教えます。普通のコンピュータ言語で数を扱うときは、数を型で分類します。数学の分類では単純に整数、実数程度の区別で済ませますが、コンピュータの場合には数を表現するビットの使い方によって、1バイト型、2バイト型、4バイト型、8バイト型などの種類があり、C言語では、さらに符号付・符号無しの区別もあります。文字を使った代数式に、型の違う数を代入すると、計算結果が変わることがありますので、型と計算の約束を対にして理解しなければなりません。やや高度の数として、FORTRANは、複素数型を使うことができます。この中身は二つの実数ですが、幾何学的な二次元の点の性質を持っていながら、代数式では一つの変数名で使うことができます。複素数型の考え方を拡張して、筆者は、計算幾何学でも、直線や平面を含めて、文字変数で扱うように、型と計算の約束を決めたコンピュータ言語GBASIC、を提案することにしました(表2.1)。例えば、点と直線について言えば、平面幾何と立体幾何とでは、別の型を考えます。これらの型は、整数・実数・文字を除き、すべて、図に描いて示すことができる図形要素として定義しました。

型番号

型の名前

寸法

内    容

型宣言文

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

備考:ここでの寸法とは、実数が何個で構成されているかの数を云います。実数1個の記憶単位は、8バイです。なお、CPUが16ビット時代のパソコンでは4バイト単位でした。

2008.2 橋梁&都市PROJECT

前ページ  次ページ