JP2005293021A - 最大角度法を用いた三角形メッシュ生成方法及びプログラム - Google Patents
最大角度法を用いた三角形メッシュ生成方法及びプログラム Download PDFInfo
- Publication number
- JP2005293021A JP2005293021A JP2004104732A JP2004104732A JP2005293021A JP 2005293021 A JP2005293021 A JP 2005293021A JP 2004104732 A JP2004104732 A JP 2004104732A JP 2004104732 A JP2004104732 A JP 2004104732A JP 2005293021 A JP2005293021 A JP 2005293021A
- Authority
- JP
- Japan
- Prior art keywords
- line segment
- generated
- list
- triangle
- triangular mesh
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
コンピュータシステムを利用し、二次元空間内若しくは三次元空間内に与えられた散乱点群から、高品質な三角形メッシュを簡単且つ高速に生成できるようにした三角形メッシュ生成方法及びプログラムを提供する。
【解決手段】
a1.コンピュータに入力された二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、a2.整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成するステップと、a3.前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、a4.前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、ステップa3を繰り返すステップとを有する。
【選択図】 図5
Description
シー.エル.ローソン(C.L.Lawson)著、「ジェネレーション オブ ア トライアンギュラー グリッド ウィズ アプリケーション トゥー コンター プロッティング,ジェット プロパルション ラボラトリー インターナル テクニカル メモランダム(Generation of a triangular grid with application to contour plotting, Jet Propulsion Laboratory Internal Technical Memorandum)」、1972年,第299号 シー.エル.ローソン(C.L.Lawson)著、「ソフトウェア フォア シーワン サーフィス インターポーレーション, イン マセマティカル ソフトウェア スリー, イー.デー.ジェイ.アール,ライス, アカデミック プレス(Software for C1 surface interpolation, in Mathematical Software III,ed.J.R.Rice,Academic Press)」、米国,1977年,p.161 アール.シブソン(R.Sibson)著、「ローカリー イークウィアンギュラー トライアンギュレーション, コンピューター ジャーナル(Locally equiangular triangulations, The Computer Journal)」、1978年,第121巻,第3号,p.243 エー.ケー.クライン(A.K.Cline)、アール.エール.レンカ(R.L.Renka)共著、「ストーリッジ エフィシャント メソッド フォア コンストラクション オブ サイエッセン トライアンギュレーション, ロッキー マウンテン ジャーナル オブ マセマティックス(A storage-efficient method for construction of a thiessen triangulation, Rocky Mountain Journal of Mathematics)」、1984年,第14巻,第1号,p.119 デー.テー.リー(D.T.Lee)、ビー.ジェイ.シャハター(B.J.Schachter)共著、「ツー アルゴリズム フォア コンストラクティング ドローネ トライアンギュレーション, インターナショナル ジャーナル オブ コンピュータ アンド インフォーメーション サイエンス(Two algorithms for constructing a Delaunay Triangulation, International Journal of Computer and Information Sciences)」、1980年,第9巻,第3号,p1691 ジェイ.エル.ブラウン(J.L.Brown)著、「ヴェクテックス ベースド データ ディペンデント トライアンギュレーション, コンピュータ エイディド ジオメトリック デザイン(Vertex based data dependent triangulation, Computer Aided Geometric Design)」、1991年,第8巻,第3号,p.239 ビー.ケー.チョウイ(B.K.Choi)、エイチ.ワイ.シン(H.Y.Shin)、ワイ.アイ.ヨーン(Y.I.Yoon)、ジェイ.ダブリュー.リー(J.W.Lee)共著、「トライアンギュレーション オブ スキャタード データ イン スリーデー スペース, コンピューター エイディド デザイン(Triangulation of scattered data in 3D space, Computer-Aided Design)」、1988年,第20巻,第5号,p.239 エイチ.ホープ(H.Hoppe)著、「サーフィス リコンストラクション フロム アンオーガナイズド ポイント, ドクトラル シーシス, ユニバーシティ オブ ワシントン(Surface reconstruction from unorganized points, Doctoral thesis, University of Washington)」、1994年
a1.前記コンピュータに入力された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、a2.整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成するステップと、a3.前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、a4.前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、ステップa3を繰り返すステップとを有することにより、或いは、コンピュータの演算処理によって、二次元散乱点群データから三角形メッシュを自動生成する方法であって、b1.前記コンピュータに入力された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、b2.前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを生成するステップと、b3.前記線分リストの順序に従って、対応する線分の両側において、前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、b4.前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、ステップb3を繰り返すステップとを有することにより、或いは、コンピュータの演算処理によって、三次元散乱点群データから初期三角形メッシュを自動生成する方法であって、c1.前記コンピュータに入力された前記三次元散乱点群データは、八分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、c2.前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、第1の線分リストを生成し、空の第2の線分リスト及び空の要素リストを用意するステップと、c3.前記第1の線分リストの先頭にある線分を選択し、選択した線分の最大角度点を求め、選択した線分及びその両端点と前記最大角度点を結んでできた2線分から構成される3線分のうち、前記第2の線分リストに無いものがあれば、これを前記第2の線分リストへ格納し、また、生成した三角形が前記要素リストになければ、これを前記要素リストへ格納するステップと、c4.生成した三角形を基準面として、その周囲の散乱点の分布状況をトポロジー判断関数によって交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第1の線分リストから削除し、ステップc3に戻り、また、交差生成の可能性がないと判断された場合に、ステップc5に進むようにするステップと、c5.生成した三角形と共有部分をもつ三角形を求め、求めた三角形と生成した三角形との共有関係によって、交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第1の線分リストから削除し、ステップc3に戻り、また、交差生成の可能性がないと判断された場合に、既にステップc3で前記要素リストに格納されている生成した三角形は確定し、ステップc6に進むようにするステップと、c6.選択した線分からのトポロジー判断を利用することによって分断面を生成し、確定した三角形と逆の方向にある散乱点群に対して、ステップc3からステップc5までの処理を実行し、もう一つの三角形を生成するステップと、c7.選択した線分を前記第1の線分リストから削除し、前記第1の線分リストが空であれば、前記初期三角形メッシュが生成され、処理が終了し、また、前記第1の線分リストが空でなければ、ステップc3に戻るようにするステップとを有することにより、或いは、コンピュータの演算処理によって、初期三角形メッシュに存在する折線ループ内に三角形メッシュを自動生成する方法であって、d1.前記コンピュータに入力された初期三角形メッシュにおいて、未処理の折線ループを選択するステップと、d2.選択された折線ループ内に三角形メッシュが存在するかどうかを判断し、選択された折線ループ内に三角形メッシュが存在した場合に、内側の折線ループの最短線分を選択すると共に、外側の折線ループの節点から最大角度点を選択し、ステップd3に進み、一方、選択された折線ループ内に三角形メッシュが存在しないと判断された場合に、折線ループ内の最短線分を選択し、折線ループの節点から最大角度点を選択し、ステップd3に進むようにするステップと、d3.三角形を生成し、三角形の生成によって新しい折線ループが生成されたかどうかを判断し、新しい折線ループが生成された場合に、ステップd2に戻り、一方、新しい折線ループが生成されない場合に、折線ループの処理が終了したかどうかを判断し、折線ループの処理が終了していない場合に、ステップd2に戻るようにするステップと、d4.ステップd3で折線ループの処理が終了したと判断された場合に、前記初期三角形メッシュに未処理の折線ループが存在するかどうかを判断し、前記初期三角形メッシュに未処理の折線ループが存在した場合に、ステップd1に戻り、一方、前記初期三角形メッシュに未処理の折線ループが存在しない場合に、前記初期三角形メッシュ内の全ての折線ループに三角形メッシュが生成され、三角形メッシュが完成するステップとを有することによって効果的に達成される。
c6.選択した線分からのトポロジー判断を利用することによって分断面を生成し、確定した三角形と逆の方向にある散乱点群に対して、手順c3から手順c5までの処理を実行し、もう一つの三角形を生成する手順と、c7.選択した線分を前記第1の線分リストから削除し、前記第1の線分リストが空であれば、前記初期三角形メッシュが生成され、処理が終了し、また、前記第1の線分リストが空でなければ、手順c3に戻るようにする手順とを有することにより、或いは、初期三角形メッシュに存在する折線ループ内に三角形メッシュを自動生成するためのコンピュータプログラムであって、d1.前記初期三角形メッシュを取得し、取得された前記初期三角形メッシュにおいて、未処理の折線ループを選択する手順と、d2.選択された折線ループ内に三角形メッシュが存在するかどうかを判断し、選択された折線ループ内に三角形メッシュが存在した場合に、内側の折線ループの最短線分を選択すると共に、外側の折線ループの節点から最大角度点を選択し、手順d3に進み、一方、選択された折線ループ内に三角形メッシュが存在しないと判断された場合に、折線ループ内の最短線分を選択し、折線ループの節点から最大角度点を選択し、手順d3に進むようにする手順と、d3.三角形を生成し、三角形の生成によって新しい折線ループが生成されたかどうかを判断し、新しい折線ループが生成された場合に、手順d2に戻り、一方、新しい折線ループが生成されない場合に、折線ループの処理が終了したかどうかを判断し、折線ループの処理が終了していない場合に、手順d2に戻るようにする手順と、d4.手順d3で折線ループの処理が終了したと判断された場合に、前記初期三角形メッシュに未処理の折線ループが存在するかどうかを判断し、前記初期三角形メッシュに未処理の折線ループが存在した場合に、手順d1に戻り、一方、前記初期三角形メッシュに未処理の折線ループが存在しない場合に、前記初期三角形メッシュ内の全ての折線ループに三角形メッシュが生成され、三角形メッシュが完成する手順とを有することによって効果的に達成される。
<1>二次元空間(平面)における最大角度法を用いた三角形メッシュ生成方法
まず、本発明で用いられる技術用語の説明をする。△ABCにおいて、∠ACBを線分ABに対する対応角と呼び、点Cの候補が複数存在する場合に、対応角が最大となる点を最大角度点と呼ぶことにする。また、初期散乱点群の中にある点を一つ固定し、その点とその点から最短距離にある点を結んでできる線分をその点に対する最短線分と呼ぶことにする。そして、最短線分を基準に最大角度点を探査し、三角形メッシュを生成する方法を最大角度法と呼ぶ。
<1−1>二次元空間における三角形要素交差についての検討
まず、図1に示されるように、二つの三角形が線分ABに対して、最大角度点Cが選択され、△ABCが形成されている。即ち、∠a1>∠b1となっている。このとき、図1において、Cと接続する線分CDに対して、最大角度点の選択はAとなり、三角形要素の交差は発生しない。
<1−2>二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズム1(以下、単に片側アルゴリズムとも称する)
片側アルゴリズムは以下のようになる。
ステップA1:
二次元空間内に与えられた散乱点群に属するすべての点は、四分木法によって木構造を生成し、ポイントリストによって整理される。
ステップA2:
ポイントリストの先頭の点を取り、関係する木構造点から、その点の最短線分を生成する。
ステップA3:
ステップA2で生成された最短線分に対して、木構造の中の関係する点から最大角度点を探し、新しい三角形と線分を生成する。但し、最大角度点となる点が複数存在する場合(例えば、図4に示すように、線分ABに対する最大角度点として、複数の点、つまり、点C、点D及び点Eが存在する場合)には、最初に選択した点を優先するものとする(図4の場合は、点Cを最大角度点とする)。
ステップA4:
ステップA3で生成された線分を線分リストに入れる。
ステップA5:
線分リストの順序に従って、線分毎に、ステップA3と同様にして、新しい三角形と線分を生成し、生成された線分について、ステップA4と同様にして、線分リストに入れる。
ステップA6:
二次元空間内に与えられた散乱点群に属する全ての点が、三角形メッシュ構造に含まれるまで、ステップA5を繰り返す。
<1−3>二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズム2(以下、単に両側アルゴリズムとも称する)
次に、三次元空間の場合に拡張するために、各辺の両側で三角形を生成する両側アルゴリズムについて述べる。
ステップB1:
二次元空間内に与えられた散乱点群に属するすべての点は、四分木法によって木構造を生成し、ポイントリストによって整理される。
ステップB2:
ステップB1で生成された木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを作る。
ステップB3:
線分リストの順序に従って、対応する線分の両側において、例えば図6に示されるように、木構造の中の関係する点から最大角度点を探し、新しい三角形と線分を生成する。
ステップB4:
ステップB3で生成された線分を線分リストに入れる。
ステップB5:
二次元空間内に与えられた散乱点群に属する全ての点が、三角形メッシュ構造に含まれるまで、ステップB3とステップB4を繰り返す。
<1−4>片側アルゴリズムと両側アルゴリズムとの比較
上述した片側アルゴリズムと両側アルゴリズムとを比較すると、片側アルゴリズムは、初期線分群の生成とその長さによる線分リストの生成(つまり、両側アルゴリズムのステップB2)が無い分、両側アルゴリズムより高速であると考えられる。また、結果として得られる三角形メッシュは、両アルゴリズムにおいて一致する。
<1−5>本発明に係る二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムと従来のドロネー三角形分割法との比較
次に、本発明に係る二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムと従来のドロネー三角形分割法とを比較してみる。
<1−6>二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムの適用例
ここで、本発明に係る片側アルゴリズムを実際の平面散乱点群に適用した例を挙げることにする。図11の初期散乱点群に対して、図12は点1から最短距離にある点9を結んで最短線分を生成したものである。次に、この最短線分を基にして最大角度点となる点10を用いて最初の三角形(これをAとおく)が生成されたのが図13である。そして、この三角形を構成する3線分、即ち、点1と点10を結ぶ線分(これをaとおく)、点9と点10を結ぶ線分(これをbとおく)、点1と点9を結ぶ線分が、線分リストに格納される。そこで、線分a,bに対して、三角形Aがある側とは反対の側で三角形をそれぞれ生成したのが図14と図15である。この処理を繰り返していけば、図16を経て図17に示すように三角形メッシュが完成する。
<2>三次元空間における最大角度法を用いた三角形メッシュ生成方法
最大角度法を平面上の散乱点群に適用する場合、一部の例外を除いて辺の交差は発生しない。しかし、三次元空間内の散乱点群に関しては、状況が平面の場合に比べて格段に複雑になる。また、元々のモデルを散乱点群から正確に再構築できるかどうかという問題は非常に重要であるが、散乱点群のみの情報だけでは、元の曲面の様子、例えばシャープな形状や微小な穴などを完全に予測することは困難である。
<2−1>三次元空間におけるメッシュの交差についての検討
三次元空間内でメッシュの交差として考えられるものには、図18に示すような三つのタイプがある。但し、見易さのために、前面にあるものを一部濃色を用いて表現している。
は一つの閉曲面をなす。この閉曲面によって囲まれた有界な領域を線分ABから最大角度法によって決まる領域と定義する。このとき、定義からこの領域内には点が存在しない。図19では、線分ABと線分CDそれぞれから最大角度法によって決まる領域を表わしている。
<2−2>三次元空間における交差の発見と回避
本発明では、三次元空間内の散乱点のトポロジー判断、即ち、散乱点群の分布の状況を検査することによって、襞状構造の生成を検出するようにしている。そのために、本発明では、2段階に分けた制御を設けて、襞状構造の生成を検出する。
<2−3>三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズム1(以下、単に三次元空間における初期メッシュ生成アルゴリズム、或いは、初期メッシュ生成アルゴリズムと称する)
三次元空間内に与えられた散乱点群から初期三角形メッシュを生成する、初期メッシュ生成アルゴリズムは、以下のようになる。
ステップC1:
三次元空間内に与えられた散乱点群に属するすべての点は、八分木法によって木構造を生成し、ポイントリストによって整理される。
ステップC2:
ステップC1で生成された木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストAを作る。さらに、空の線分リストB及び空の要素リストCを用意する。
ステップC3:
線分リストAの先頭にある線分、即ち、最小の長さのものlを選択し、選択した線分の最大角度点Mを求める。線分lおよびlの両端点と点Mを結んでできた2線分から構成される3線分のうち、線分リストBに無いものがあれば、これを線分リストBに加える。また、出来た三角形が要素リストCになければ、これを要素リストCへ加える。もし、最大角度点が複数あれば、次のような処理をする。即ち、線分ABを基準にして∠ACB=∠ADB=∠AEB=…となっている場合、もし既に、C,D,E,…の中に△AXBが要素リストCの中に存在するような点Xがあれば、線分ABはチェック済みとし、そうでないときは、|∠XAB−∠XBA|が最小になる点XをC,D,E,…の中から選ぶ。この段階でも、まだそのような点が複数あれば、任意の一つを既に構成された三角形要素と交差を起こさないように選ぶ。
ステップC4:
生成した三角形を基準面として、その周囲の点の分布状況をトポロジー判断関数Tによって判断する。周囲の点のTの値が定数aより小さい場合は、ステップC5へと進み、そうでないならば、生成した三角形を削除すると共に選択した線分を線分リストAから消去し、ステップC3に戻る。
ステップC5:
生成した三角形と共有部分(つまり、共有点或いは共有辺のいずれか)をもつ三角形を求め、そして、求めた三角形と生成した三角形との共有関係によって、図22または図23のいずれかに示された角度Aと角度Bを計算する。もし、角度Aと角度Bの両方が共に小さい場合には、交差が生成されると判断する。共有点を一つ持つ場合には、生成した三角形を削除する(つまり、新しい三角形の生成をやめる)と共に選択した線分を線分リストAから消去し、ステップC3に戻る。一つの線分(つまり、辺)を共有する場合には、辺を共有する二つの三角形のTの平均値を求め、より大きい値を持つ方の三角形の生成は行わない。
ステップC6:
もし、この三角形の線分が既に二つの三角形に共有されている場合は、この三角形の生成は行なわない。但し、ここでは要素として認識されていない線分のみの三角形も含む。もし、この三角形が既に完成している場合も、新しい三角形は生成しない。
ステップC7:
次に、線分からのトポロジー判断法を利用する。分断面を生成し、今生成した方向とは逆の方向にある点群に対して、ステップC3からステップC6までのステップを実行し、もう一つの三角形を生成する。
ステップC8:
線分リストAから線分lを削除する。新しい線分と三角形を線分リストAと要素リストCへ添加する。
ステップC9:
線分リストAが空でなければ、ステップC3に戻り、もし空であればこの一連の処理を終了する。
<2−4>三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズム2(以下、単に三次元空間におけるループ内三角形メッシュ生成アルゴリズム、或いは、ループ内三角形メッシュ生成アルゴリズムと称する)
本発明では、三次元空間内に与えられた散乱点群から、上述した初期メッシュ生成アルゴリズムによって初期三角形メッシュを生成し、そして、後述するループ内三角形メッシュ生成アルゴリズムによって三角形メッシュを完成する。
ステップD1:
折線ループ内に一部のメッシュがあれば、ステップD4に進み、そうでなければ、ステップD2に進む。
ステップD2(折線ループ内部の三角形分割1):
折線ループに含まれる線分のうち、最短な線分lを一つとり、この線分lに対する折線ループ内の最大角度点Pを求める。線分lの両端点をQ,Rとおく。折線ループで囲まれた部分から△PQRを取り除けば、例えば図27に示すように、元々の折線ループは、高々二つの折線ループに分割されたと考えることができる。即ち、図27(A)では、△PQRと折線ループの共通部分が一辺(つまり、線分QR)のみであり、△PQRの挿入により二つの折線ループが新しく生成される。また、図27(B)では、隣接する二辺(つまり、線分QRと線分QP)が△PQRと折線ループによって共有され、頂点数が一つ少なくなった折線ループが新しく生成される。
ステップD3:
これら新しく生成された折線ループに対して、ステップD2に戻って処理をする。対象となる折線ループがなくなれば、処理を全て終了し、そうでなければステップD1に戻る。
ステップD4(ループ内部の三角形分割2):
例えば図28に示すように、内側のループに含まれる線分のうち、最短なものを一つとり、外側のループの頂点から最大角度点を選ぶ。これでできた三角形を要素リストに加えれば、分割されていない部分は、図28の点線に示されるように一つのループによって囲まれたことになるので、ステップD2に進む。
<2−5>三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムの適用例
ここで、本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムを実際の三次元空間内の散乱点群に適用した三つの例を挙げることにする。なお、これらの例に用いるデータは、ウェブ上のメッシュデータから散乱点の座標データを抽出して利用したものである。
<3>本発明のまとめ
本発明は、二次元空間内または三次元空間内の与えられた散乱点群から高精度な三角形メッシュを構成するための最大角度法及びそれを用いた三角形メッシュ生成方法に関するものである。本発明とは、散乱点群に属する各散乱点から最短距離にある点を結び、その最短線分に対する最大角度点を探索して、三角形要素を構成するというシンプルな原理(つまり、最大角度法)を基にして、散乱点群から三角形メッシュを生成する方法である。
Claims (8)
- コンピュータの演算処理によって、二次元散乱点群データから三角形メッシュを自動生成する方法であって、
a1.前記コンピュータに入力された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、
a2.整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成するステップと、
a3.前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、
a4.前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、ステップa3を繰り返すステップと、
を有することを特徴とする最大角度法を用いた三角形メッシュ生成方法。 - コンピュータの演算処理によって、二次元散乱点群データから三角形メッシュを自動生成する方法であって、
b1.前記コンピュータに入力された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、
b2.前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを生成するステップと、
b3.前記線分リストの順序に従って、対応する線分の両側において、前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、
b4.前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、ステップb3を繰り返すステップと、
を有することを特徴とする最大角度法を用いた三角形メッシュ生成方法。 - コンピュータの演算処理によって、三次元散乱点群データから初期三角形メッシュを自動生成する方法であって、
c1.前記コンピュータに入力された前記三次元散乱点群データは、八分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、
c2.前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、第1の線分リストを生成し、空の第2の線分リスト及び空の要素リストを用意するステップと、
c3.前記第1の線分リストの先頭にある線分を選択し、選択した線分の最大角度点を求め、選択した線分及びその両端点と前記最大角度点を結んでできた2線分から構成される3線分のうち、前記第2の線分リストに無いものがあれば、これを前記第2の線分リストへ格納し、また、生成した三角形が前記要素リストになければ、これを前記要素リストへ格納するステップと、
c4.生成した三角形を基準面として、その周囲の散乱点の分布状況をトポロジー判断関数によって交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第1の線分リストから削除し、ステップc3に戻り、また、交差生成の可能性がないと判断された場合に、ステップc5に進むようにするステップと、
c5.生成した三角形と共有部分をもつ三角形を求め、求めた三角形と生成した三角形との共有関係によって、交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第1の線分リストから削除し、ステップc3に戻り、また、交差生成の可能性がないと判断された場合に、既にステップc3で前記要素リストに格納されている生成した三角形は確定し、ステップc6に進むようにするステップと、
c6.選択した線分からのトポロジー判断を利用することによって分断面を生成し、確定した三角形と逆の方向にある散乱点群に対して、ステップc3からステップc5までの処理を実行し、もう一つの三角形を生成するステップと、
c7.選択した線分を前記第1の線分リストから削除し、前記第1の線分リストが空であれば、前記初期三角形メッシュが生成され、処理が終了し、また、前記第1の線分リストが空でなければ、ステップc3に戻るようにするステップと、
を有することを特徴とする最大角度法を用いた三角形メッシュ生成方法。 - コンピュータの演算処理によって、請求項3の方法によって生成された初期三角形メッシュに存在する折線ループ内に三角形メッシュを自動生成する方法であって、
d1.前記コンピュータに入力された初期三角形メッシュにおいて、未処理の折線ループを選択するステップと、
d2.選択された折線ループ内に三角形メッシュが存在するかどうかを判断し、選択された折線ループ内に三角形メッシュが存在した場合に、内側の折線ループの最短線分を選択すると共に、外側の折線ループの節点から最大角度点を選択し、ステップd3に進み、一方、選択された折線ループ内に三角形メッシュが存在しないと判断された場合に、折線ループ内の最短線分を選択し、折線ループの節点から最大角度点を選択し、ステップd3に進むようにするステップと、
d3.三角形を生成し、三角形の生成によって新しい折線ループが生成されたかどうかを判断し、新しい折線ループが生成された場合に、ステップd2に戻り、一方、新しい折線ループが生成されない場合に、折線ループの処理が終了したかどうかを判断し、折線ループの処理が終了していない場合に、ステップd2に戻るようにするステップと、
d4.ステップd3で折線ループの処理が終了したと判断された場合に、前記初期三角形メッシュに未処理の折線ループが存在するかどうかを判断し、前記初期三角形メッシュに未処理の折線ループが存在した場合に、ステップd1に戻り、一方、前記初期三角形メッシュに未処理の折線ループが存在しない場合に、前記初期三角形メッシュ内の全ての折線ループに三角形メッシュが生成され、三角形メッシュが完成するステップと、
を有することを特徴とする最大角度法を用いた三角形メッシュ生成方法。 - 二次元散乱点群データから三角形メッシュを自動生成するためのコンピュータプログラムであって、
a1.前記二次元散乱点群データを取得し、取得された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、
a2.整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成する手順と、
a3.前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納する手順と、
a4.前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、手順a3を繰り返す手順と、
をコンピュータに実行させるためのプログラム。 - 二次元散乱点群データから三角形メッシュを自動生成するためのコンピュータプログラムであって、
b1.前記二次元散乱点群データを取得し、取得された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、
b2.前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを生成する手順と、
b3.前記線分リストの順序に従って、対応する線分の両側において、前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納する手順と、
b4.前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、手順b3を繰り返す手順と、
をコンピュータに実行させるためのプログラム。 - 三次元散乱点群データから初期三角形メッシュを自動生成するためのコンピュータプログラムであって、
c1.前記三次元散乱点群データを取得し、取得された前記三次元散乱点群データは、八分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、
c2.前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、第1の線分リストを生成し、空の第2の線分リスト及び空の要素リストを用意する手順と、
c3.前記第1の線分リストの先頭にある線分を選択し、選択した線分の最大角度点を求め、選択した線分及びその両端点と前記最大角度点を結んでできた2線分から構成される3線分のうち、前記第2の線分リストに無いものがあれば、これを前記第2の線分リストへ格納し、また、生成した三角形が前記要素リストになければ、これを前記要素リストへ格納する手順と、
c4.生成した三角形を基準面として、その周囲の散乱点の分布状況をトポロジー判断関数によって交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第1の線分リストから削除し、手順c3に戻り、また、交差生成の可能性がないと判断された場合に、手順c5に進むようにする手順と、
c5.生成した三角形と共有部分をもつ三角形を求め、求めた三角形と生成した三角形との共有関係によって、交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第1の線分リストから削除し、手順c3に戻り、また、交差生成の可能性がないと判断された場合に、既に手順c3で前記要素リストに格納されている生成した三角形は確定し、手順c6に進むようにする手順と、
c6.選択した線分からのトポロジー判断を利用することによって分断面を生成し、確定した三角形と逆の方向にある散乱点群に対して、手順c3から手順c5までの処理を実行し、もう一つの三角形を生成する手順と、
c7.選択した線分を前記第1の線分リストから削除し、前記第1の線分リストが空であれば、前記初期三角形メッシュが生成され、処理が終了し、また、前記第1の線分リストが空でなければ、手順c3に戻るようにする手順と、
をコンピュータに実行させるためのプログラム。 - 請求項7のプログラムによって生成された初期三角形メッシュに存在する折線ループ内に三角形メッシュを自動生成するためのコンピュータプログラムであって、
d1.前記初期三角形メッシュを取得し、取得された前記初期三角形メッシュにおいて、未処理の折線ループを選択する手順と、
d2.選択された折線ループ内に三角形メッシュが存在するかどうかを判断し、選択された折線ループ内に三角形メッシュが存在した場合に、内側の折線ループの最短線分を選択すると共に、外側の折線ループの節点から最大角度点を選択し、手順d3に進み、一方、選択された折線ループ内に三角形メッシュが存在しないと判断された場合に、折線ループ内の最短線分を選択し、折線ループの節点から最大角度点を選択し、手順d3に進むようにする手順と、
d3.三角形を生成し、三角形の生成によって新しい折線ループが生成されたかどうかを判断し、新しい折線ループが生成された場合に、手順d2に戻り、一方、新しい折線ループが生成されない場合に、折線ループの処理が終了したかどうかを判断し、折線ループの処理が終了していない場合に、手順d2に戻るようにする手順と、
d4.手順d3で折線ループの処理が終了したと判断された場合に、前記初期三角形メッシュに未処理の折線ループが存在するかどうかを判断し、前記初期三角形メッシュに未処理の折線ループが存在した場合に、手順d1に戻り、一方、前記初期三角形メッシュに未処理の折線ループが存在しない場合に、前記初期三角形メッシュ内の全ての折線ループに三角形メッシュが生成され、三角形メッシュが完成する手順と、
をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004104732A JP3928016B2 (ja) | 2004-03-31 | 2004-03-31 | 最大角度法を用いた三角形メッシュ生成方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004104732A JP3928016B2 (ja) | 2004-03-31 | 2004-03-31 | 最大角度法を用いた三角形メッシュ生成方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005293021A true JP2005293021A (ja) | 2005-10-20 |
JP3928016B2 JP3928016B2 (ja) | 2007-06-13 |
Family
ID=35325912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004104732A Expired - Fee Related JP3928016B2 (ja) | 2004-03-31 | 2004-03-31 | 最大角度法を用いた三角形メッシュ生成方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3928016B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100937795B1 (ko) | 2007-04-30 | 2010-01-20 | (주) 코이시스 | 컴퓨터를 이용한 3차원 이미지의 형상화 처리방법 |
CN101537585B (zh) * | 2009-03-26 | 2012-04-25 | 山东理工大学 | 产品的数控加工实时切削仿真方法 |
CN104134207A (zh) * | 2014-07-16 | 2014-11-05 | 西安电子科技大学 | 几何建模中表面模型完整包络的自动检测方法 |
CN104392030A (zh) * | 2014-11-12 | 2015-03-04 | 常州工学院 | 一种基于stl三维模型的曲面加工方法 |
CN104525668A (zh) * | 2014-11-12 | 2015-04-22 | 常州工学院 | 一种多点成形加工曲面的冲头调形方法 |
JP2018097519A (ja) * | 2016-12-12 | 2018-06-21 | エーティーラボ株式会社 | メッシュ作成装置、メッシュ作成方法およびメッシュ作成プログラム |
JP6742561B1 (ja) * | 2019-10-08 | 2020-08-19 | 三菱電機株式会社 | 自律分散制御システム |
CN114882189A (zh) * | 2022-05-26 | 2022-08-09 | 广州市城市规划勘测设计研究院 | 一种三维场景灾变可视化展示方法 |
-
2004
- 2004-03-31 JP JP2004104732A patent/JP3928016B2/ja not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100937795B1 (ko) | 2007-04-30 | 2010-01-20 | (주) 코이시스 | 컴퓨터를 이용한 3차원 이미지의 형상화 처리방법 |
CN101537585B (zh) * | 2009-03-26 | 2012-04-25 | 山东理工大学 | 产品的数控加工实时切削仿真方法 |
CN104134207A (zh) * | 2014-07-16 | 2014-11-05 | 西安电子科技大学 | 几何建模中表面模型完整包络的自动检测方法 |
CN104134207B (zh) * | 2014-07-16 | 2017-01-18 | 西安电子科技大学 | 几何建模中表面模型完整包络的自动检测方法 |
CN104392030A (zh) * | 2014-11-12 | 2015-03-04 | 常州工学院 | 一种基于stl三维模型的曲面加工方法 |
CN104525668A (zh) * | 2014-11-12 | 2015-04-22 | 常州工学院 | 一种多点成形加工曲面的冲头调形方法 |
CN104392030B (zh) * | 2014-11-12 | 2017-05-03 | 常州工学院 | 一种基于stl三维模型的曲面加工方法 |
JP2018097519A (ja) * | 2016-12-12 | 2018-06-21 | エーティーラボ株式会社 | メッシュ作成装置、メッシュ作成方法およびメッシュ作成プログラム |
JP6742561B1 (ja) * | 2019-10-08 | 2020-08-19 | 三菱電機株式会社 | 自律分散制御システム |
WO2021070239A1 (ja) * | 2019-10-08 | 2021-04-15 | 三菱電機株式会社 | 自律分散制御システム |
CN114882189A (zh) * | 2022-05-26 | 2022-08-09 | 广州市城市规划勘测设计研究院 | 一种三维场景灾变可视化展示方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3928016B2 (ja) | 2007-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11361503B2 (en) | Systems and methods for generating volumetric models | |
Dimas et al. | 3D geometric modelling based on NURBS: a review | |
JP4999522B2 (ja) | 解析メッシュ生成装置 | |
JP4894369B2 (ja) | 3次元モデルの画像処理装置 | |
Tierny et al. | Interactive quadrangulation with Reeb atlases and connectivity textures | |
Wang et al. | Thickening freeform surfaces for solid fabrication | |
JP2013507679A (ja) | 三次元物体モデルの3dプリントが可能な方法及びシステム | |
JP2005038219A (ja) | 境界表現データからボリュームデータを生成する方法及びそのプログラム | |
JP2011018328A (ja) | 三次元モデル分割方法、三次元モデル分割装置及び三次元モデル分割装置を含む画像処理システム | |
GB2460411A (en) | Variable mesh resolution in medical image generation | |
Coelho et al. | Intersecting and trimming parametric meshes on finite element shells | |
Athanasiadis et al. | Feature-based 3D morphing based on geometrically constrained spherical parameterization | |
JP3928016B2 (ja) | 最大角度法を用いた三角形メッシュ生成方法及びプログラム | |
Li et al. | On surface reconstruction: A priority driven approach | |
Boada et al. | Approximations of 2d and 3d generalized voronoi diagrams | |
Charton et al. | Mesh repairing using topology graphs | |
CN113971718A (zh) | 一种对三维点云模型进行布尔运算的方法 | |
JP4175536B2 (ja) | 境界データの内外判定方法とそのプログラム | |
Li et al. | Efficient ray casting polygonized isosurface of binary volumes | |
JP2006277712A (ja) | 3次元モデルのフィッティング装置、方法及びプログラム | |
Hjelmervik et al. | GPU-accelerated shape simplification for mechanical-based applications | |
Phothong et al. | Quality improvement of 3D models reconstructed from silhouettes of multiple images | |
CN115087983A (zh) | 使用几何面片进行混合建模的方法和*** | |
Tse et al. | Tin meets CAD-extending the TIN concept in GIS | |
JP6915237B2 (ja) | 情報処理装置、シミュレータ結果表示方法、及びシミュレータ結果表示プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061010 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061207 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070205 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100316 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110316 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120316 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130316 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130316 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140316 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |