立体的な幾何モデルは、集合論の見方をすると、二値の論理モデルです。モデルの内側は同じ材料で埋められていますので、実体のある、論理的に言えば真値(1)の集合です。モデルの外側は空集合です。論理的には偽(0)です。外形は、多角形の面で構成しますが、幾何学的には、中身が詰まっているとする充実モデル(solid model)と、多角形の紙状の面が連続して繋がっている、と考えた張りぼてモデル(surface model)とがあります。眼で見る限り、外見では区別ができません。見えているのは面の表であると約束します。紙細工(paper craft)と言う時は、紙の裏も見えるモデルです。紙の裏表の連続性が曖昧な、メビウスの輪のような構造も考えられるのですが、幾何モデリングでは扱いません。充実モデルの内部に空洞があるとき、空洞の内面を張りぼてモデルの扱いにします。空洞は、単独に外形として見れば、表と裏の面の約束が逆です。このことを集合論的に言うと、実体モデルの補集合です。擬似的に二つの充実モデルの干渉処理をプログラミングするときは、張りぼてモデルのデータ構造を使って面の交差を判定し、新しい辺を持った面に変形し、また、相手の内部に入る面を削除する処理をします。この幾何学的な計算処理は、判定しようとする座標点から任意の向きの半直線を引き、張りぼてモデルの面との交差をする点の個数を数えます。偶数個であれば外側、奇数個であれば内側です。空洞の場合は逆の関係です。干渉の計算を論理式で示すと、表4.9のように集合の論理演算で行われます。
表4.9 多面体の干渉処理のコマンド(プログラムGEOMAP)
コマンド名 |
干渉処理の内容 |
概念式 |
論理式を使う表現 |
PUNI |
二つの3Dモデルの和 |
A+B |
A or B |
PSUB |
モデルAからBと重なる部分を引 |
A−B |
¬(A or B) |
PINT |
モデルAとBとの共通部分を求める |
A×B |
¬(A or B) |
科学書刊株式会社:電子版 「橋梁&都市 PROJECT: 2012」 |