研究概要 |
一般に3次元形状の内部外部判定にはレイトレーシングと呼ばれる方法、すなわち「内部外部判定の対象となる点が立体と交差する直線を描いて求められる直線と立体の交差回数を利用する方法」が知られている。しかし有限要素法などに例を見るように「立体を細かくメッシュ化したものとして認識する場合、メッシュ化された個々の構成成分に対する直線の交差状況を調べることが必要となり、膨大な量の連立方程式を解くことが要求される。本年度の研究では、以下に示す方法を提案して、このような問題の解決を試みた。 与えられた3次元立体をMとして、{ΔAnBnCn;n=1,...,N}をMの表面Sを構成する十分細かく小さい3角形の集合とする。なお、点Anと点Bnと点Cnの入寮順番に関しては、ベクトルAnBnとベクトルAnCnとから計算される外積ベクトルが、Mの外部に向かうように入力されているものとする。今、内部外部判定の対象となる点の集合としての平面をPが与えられた時、Pによって2分割される半空間をそれぞれH1とH2とする。Pが原点を含むと仮定して一般性を失わないため、原点を始点としH1内部に終点を持つ単位ベクトルを、それぞれv1とv2とし、Sを構成する小三角形ΔAnBnCnの平面Pへの距離射影点をΔA'nB'nC'nとする。ここで、平面P上で定義される関数f_P(・)を以下のように定義する。次の判定条件を用いる。 (1).内部外部判定アルゴリズムについて (1).n=0として、P上の全ての点pに対して、f(p)=0と初期設定する。 (2).nをn+1とする。 (2-1).三角形(An,Bn,Cn)が、H1に属する場合 「ベクトルAnBnとベクトルAnCnの外積」とv1との内積>0ならば、ΔA'nB'nC'nの領域にある各点での値に1を加算する。 「ベクトルAnBnとベクトルAnCnの外積」とv1との内積<0ならば、ΔA'nB'nC'nの領域にある各点での値に-1を加算する。 (2-2).三角形(An,Bn,Cn)が、H2に属する場合 「ベクトルAnBnとベクトルAnCnの外積」とv2との内積>0ならば、ΔA'nB'nC'nの領域にある各点での値に-1を加算する。 「ベクトルAnBnとベクトルAnCnの外積」とv2との内積<0ならば、ΔA'nB'nC'nの領域にある各点での値に1を加算する。 (3).n<Nならば、(2)へ戻る。n=Nならば終了する。 (2).判定条件について ∪{ΔA'nB'nC'n;n=1,...,N)は、立体Mを平面P上へ射影することにより得られる像であることに注意する。このとき、 上記アルゴリズムを経て構成された、平面P上の関数f_P(・)に関して、次のような関係式が成立する。 (5).∪{ΔA'nB'nC'n;n=1,....,N)に含まれる点pに対して、「f_P(p)=2ならばMの内部」と判定し「f_P(p)=0ならばMの外部」と判定
|