3.10 関係演算子と論理演算子の評価方法

前のページ次のページ

 平面幾何学で直線の型を説明した3.2節では、ある点の座標値を直線の式に代入すれば、その点が直線に対して正側・直線上・負側にあることを、距離の正負で判定できると説明しました。距離を求めるには、G-BASICの組み込み関数として DIS(A,B) を用意してあります。この引き数に図形要素の型を持った二つの変数を使います。直線と点との距離を計算させる場合には距離に符号が付きます。点と直線との位置関係だけを求めるだけの代数式は、表3.2の関係演算子を使います。例えば、一つの平面直線の型を表す変数をL、点の型を持つ変数をPとして、(P>L)の代数式は、その点が直線に対して左側にあるとき「真」、それ以外は「偽」を返します。演算子(>,=<)は、位相幾何学的な性質としての(左・中・右)(上・中・下)(外・境・内)(表・中・裏)の区別を表します。

 直線と点との距離を求めるときには数値を生で使うことができますが、関係演算子を使う場合には距離が表に出てきません。そのため、実用上の精度εを決めて、距離が±εの範囲であれば点が直線上にあると判定させる必要があります。精度εは世界座標の考え方などと関係があって微妙ですが、現在では暫定的に0.0001としてあります。

 図形要素の論理演算子には、「@」と「&」の二つを論理和と論理積の記号としました。この理由は、どのコンピュータキーボードでも普通に使える記号を選んだためです。記号&にはandの意味がありますので、論理積を連想するのは容易だと思います。記号@の方の意味付けはちょっと苦しいのですが、二つの変数型を繋ぐという意味で捉えます。したがって、この演算の結果生じる図形要素は、大部分が線分の型で得られます。

 論理否定に相当する処理は図形要素では定義しません。これに代わるのが、向きを持った図形要素において、その向きの定義を反転させる処理です。最も代表的な例は、平面直線の型L=(a,b,c)です。成分の符号を付け替えた形L'=(-a,-b,-c)は、図形としては同じ直線で、直線の向きの定義が逆になります。これを求めるには関数REVを使って、L'=REV}(L) とします。一方、この直線に(-1)を乗じたL"=-L の方は、原点に対して点対称の位置に直線を回転させます。そうすると、成分は(-a,-b,c)に変わります。

次のページ