(57)【要約】【課題】  コンピュータシステムを利用し、二次元空間内若しくは三次元空間内に与えられた散乱点群から、高品質な三角形メッシュを簡単且つ高速に生成できるようにした三角形メッシュ生成方法及びプログラムを提供する。【解決手段】ａ１.コンピュータに入力された二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、ａ２.整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成するステップと、ａ３.前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、ａ４.前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、ステップａ３を繰り返すステップとを有する。【選択図】  図５
2005293021.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの演算処理によって、二次元散乱点群データから三角形メッシュを自動生成する方法であって、
ａ１．前記コンピュータに入力された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、
ａ２．整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成するステップと、
ａ３．前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、
ａ４．前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、ステップａ３を繰り返すステップと、
を有することを特徴とする最大角度法を用いた三角形メッシュ生成方法。
【請求項２】
コンピュータの演算処理によって、二次元散乱点群データから三角形メッシュを自動生成する方法であって、
ｂ１．前記コンピュータに入力された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、
ｂ２．前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを生成するステップと、
ｂ３．前記線分リストの順序に従って、対応する線分の両側において、前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、
ｂ４．前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、ステップｂ３を繰り返すステップと、
を有することを特徴とする最大角度法を用いた三角形メッシュ生成方法。
【請求項３】
コンピュータの演算処理によって、三次元散乱点群データから初期三角形メッシュを自動生成する方法であって、
ｃ１．前記コンピュータに入力された前記三次元散乱点群データは、八分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、
ｃ２．前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、第１の線分リストを生成し、空の第２の線分リスト及び空の要素リストを用意するステップと、
ｃ３．前記第１の線分リストの先頭にある線分を選択し、選択した線分の最大角度点を求め、選択した線分及びその両端点と前記最大角度点を結んでできた２線分から構成される３線分のうち、前記第２の線分リストに無いものがあれば、これを前記第２の線分リストへ格納し、また、生成した三角形が前記要素リストになければ、これを前記要素リストへ格納するステップと、
ｃ４．生成した三角形を基準面として、その周囲の散乱点の分布状況をトポロジー判断関数によって交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第１の線分リストから削除し、ステップｃ３に戻り、また、交差生成の可能性がないと判断された場合に、ステップｃ５に進むようにするステップと、
ｃ５．生成した三角形と共有部分をもつ三角形を求め、求めた三角形と生成した三角形との共有関係によって、交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第１の線分リストから削除し、ステップｃ３に戻り、また、交差生成の可能性がないと判断された場合に、既にステップｃ３で前記要素リストに格納されている生成した三角形は確定し、ステップｃ６に進むようにするステップと、
ｃ６．選択した線分からのトポロジー判断を利用することによって分断面を生成し、確定した三角形と逆の方向にある散乱点群に対して、ステップｃ３からステップｃ５までの処理を実行し、もう一つの三角形を生成するステップと、
ｃ７．選択した線分を前記第１の線分リストから削除し、前記第１の線分リストが空であれば、前記初期三角形メッシュが生成され、処理が終了し、また、前記第１の線分リストが空でなければ、ステップｃ３に戻るようにするステップと、
を有することを特徴とする最大角度法を用いた三角形メッシュ生成方法。
【請求項４】
コンピュータの演算処理によって、請求項３の方法によって生成された初期三角形メッシュに存在する折線ループ内に三角形メッシュを自動生成する方法であって、
ｄ１．前記コンピュータに入力された初期三角形メッシュにおいて、未処理の折線ループを選択するステップと、
ｄ２．選択された折線ループ内に三角形メッシュが存在するかどうかを判断し、選択された折線ループ内に三角形メッシュが存在した場合に、内側の折線ループの最短線分を選択すると共に、外側の折線ループの節点から最大角度点を選択し、ステップｄ３に進み、一方、選択された折線ループ内に三角形メッシュが存在しないと判断された場合に、折線ループ内の最短線分を選択し、折線ループの節点から最大角度点を選択し、ステップｄ３に進むようにするステップと、
ｄ３．三角形を生成し、三角形の生成によって新しい折線ループが生成されたかどうかを判断し、新しい折線ループが生成された場合に、ステップｄ２に戻り、一方、新しい折線ループが生成されない場合に、折線ループの処理が終了したかどうかを判断し、折線ループの処理が終了していない場合に、ステップｄ２に戻るようにするステップと、
ｄ４．ステップｄ３で折線ループの処理が終了したと判断された場合に、前記初期三角形メッシュに未処理の折線ループが存在するかどうかを判断し、前記初期三角形メッシュに未処理の折線ループが存在した場合に、ステップｄ１に戻り、一方、前記初期三角形メッシュに未処理の折線ループが存在しない場合に、前記初期三角形メッシュ内の全ての折線ループに三角形メッシュが生成され、三角形メッシュが完成するステップと、
を有することを特徴とする最大角度法を用いた三角形メッシュ生成方法。
【請求項５】
二次元散乱点群データから三角形メッシュを自動生成するためのコンピュータプログラムであって、
ａ１．前記二次元散乱点群データを取得し、取得された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、
ａ２．整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成する手順と、
ａ３．前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納する手順と、
ａ４．前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、手順ａ３を繰り返す手順と、
をコンピュータに実行させるためのプログラム。
【請求項６】
二次元散乱点群データから三角形メッシュを自動生成するためのコンピュータプログラムであって、
ｂ１．前記二次元散乱点群データを取得し、取得された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、
ｂ２．前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを生成する手順と、
ｂ３．前記線分リストの順序に従って、対応する線分の両側において、前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納する手順と、
ｂ４．前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、手順ｂ３を繰り返す手順と、
をコンピュータに実行させるためのプログラム。
【請求項７】
三次元散乱点群データから初期三角形メッシュを自動生成するためのコンピュータプログラムであって、
ｃ１．前記三次元散乱点群データを取得し、取得された前記三次元散乱点群データは、八分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、
ｃ２．前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、第１の線分リストを生成し、空の第２の線分リスト及び空の要素リストを用意する手順と、
ｃ３．前記第１の線分リストの先頭にある線分を選択し、選択した線分の最大角度点を求め、選択した線分及びその両端点と前記最大角度点を結んでできた２線分から構成される３線分のうち、前記第２の線分リストに無いものがあれば、これを前記第２の線分リストへ格納し、また、生成した三角形が前記要素リストになければ、これを前記要素リストへ格納する手順と、
ｃ４．生成した三角形を基準面として、その周囲の散乱点の分布状況をトポロジー判断関数によって交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第１の線分リストから削除し、手順ｃ３に戻り、また、交差生成の可能性がないと判断された場合に、手順ｃ５に進むようにする手順と、
ｃ５．生成した三角形と共有部分をもつ三角形を求め、求めた三角形と生成した三角形との共有関係によって、交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第１の線分リストから削除し、手順ｃ３に戻り、また、交差生成の可能性がないと判断された場合に、既に手順ｃ３で前記要素リストに格納されている生成した三角形は確定し、手順ｃ６に進むようにする手順と、
ｃ６．選択した線分からのトポロジー判断を利用することによって分断面を生成し、確定した三角形と逆の方向にある散乱点群に対して、手順ｃ３から手順ｃ５までの処理を実行し、もう一つの三角形を生成する手順と、
ｃ７．選択した線分を前記第１の線分リストから削除し、前記第１の線分リストが空であれば、前記初期三角形メッシュが生成され、処理が終了し、また、前記第１の線分リストが空でなければ、手順ｃ３に戻るようにする手順と、
をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７のプログラムによって生成された初期三角形メッシュに存在する折線ループ内に三角形メッシュを自動生成するためのコンピュータプログラムであって、
ｄ１．前記初期三角形メッシュを取得し、取得された前記初期三角形メッシュにおいて、未処理の折線ループを選択する手順と、
ｄ２．選択された折線ループ内に三角形メッシュが存在するかどうかを判断し、選択された折線ループ内に三角形メッシュが存在した場合に、内側の折線ループの最短線分を選択すると共に、外側の折線ループの節点から最大角度点を選択し、手順ｄ３に進み、一方、選択された折線ループ内に三角形メッシュが存在しないと判断された場合に、折線ループ内の最短線分を選択し、折線ループの節点から最大角度点を選択し、手順ｄ３に進むようにする手順と、
ｄ３．三角形を生成し、三角形の生成によって新しい折線ループが生成されたかどうかを判断し、新しい折線ループが生成された場合に、手順ｄ２に戻り、一方、新しい折線ループが生成されない場合に、折線ループの処理が終了したかどうかを判断し、折線ループの処理が終了していない場合に、手順ｄ２に戻るようにする手順と、
ｄ４．手順ｄ３で折線ループの処理が終了したと判断された場合に、前記初期三角形メッシュに未処理の折線ループが存在するかどうかを判断し、前記初期三角形メッシュに未処理の折線ループが存在した場合に、手順ｄ１に戻り、一方、前記初期三角形メッシュに未処理の折線ループが存在しない場合に、前記初期三角形メッシュ内の全ての折線ループに三角形メッシュが生成され、三角形メッシュが完成する手順と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工学、医療、地理学などの多くの分野で広く使用される三角形メッシュを生成する三角形メッシュ生成技術に関し、特に、コンピュータシステムを利用し、二次元空間内若しくは三次元空間内に与えられた散乱点群から、高品質な三角形メッシュを簡単且つ高速に生成できるようにした、三角形メッシュ生成方法及びプログラムに関するものである。
【背景技術】
【０００２】
近年、工学、医療、地理学などの多くの分野において、三次元スキャナー等の計測機器で得られた計測データ（つまり、散乱点群）からＣＡＤモデルまたはメッシュモデルを構成し、それに解析に利用するといったことがよく行われている。その際、よく用いられるのが三角メッシュである。そこでは形状の正確な再構成が要求され、また精度のよい解析を行うためには高品質なメッシュ、即ち、正三角形に近くなるようなアスペクト比を有する三角形メッシュが必要とされる。
【０００３】
散乱点群からの三角形メッシュ生成に関しては、過去に多くの研究がなされてきた。二次元の場合には、Voronoi多角形（以下、ボロノイ多角形と称する）を用いたDelaunayの三角形分割法（以下、ドロネー三角形分割法と称する）が良く知られている。また、ローソンは“四角形を作った場合にその内部に点を持たない任意の四点に対して、この四角形の分割が、分割によってできる二つの三角形において、最小の角が大きくなる”という基準を提案した（非特許文献１を参照）。そして後に、“任意の三点で生成した円の中に、他の点がない場合、この三点によって三角形が構成する”という円を用いた基準も提案した（非特許文献２を参照）。ドロネー三角形分割法がローソンらの手法と同値になることは、シブソンによって証明された（非特許文献３を参照）。
【０００４】
さらに、これらの高速化アルゴリズムとしては、現在、次の二つの手法がその効率の良さから幅広く使われている。１つ目として、クラインとレンカは、散乱点群を整列化し、そこにローソンによって提出された手法（非特許文献１を参照）を適用する手法を提案した（非特許文献４を参照）。２つ目として、リー、シャハターとブラウンは、平面を三角形に分割して、各三角形内の点群に対してローソンによって提出された手法（非特許文献２を参照）を利用する手法を提案した（非特許文献５と非特許文献６を参照）。
【０００５】
一方、三次元空間内の散乱点群から曲面三角形メッシュを生成する手法としては、チョウイらがある（非特許文献７を参照）。そこでは分割した各部を射影して二次元化し、そこにドロネー三角形分割法を適用している。この意味でチョウイらの手法は、ドロネー三角形分割法を一般化にした方法である。また、ホープは散乱点群を分割し、各部分に付随する小面分とその法線ベクトルを決定し、それらを調整してメッシュを生成する手法を提案した（非特許文献８を参照）。
【非特許文献１】シー．エル．ローソン（Ｃ.Ｌ.Lawson）著、「ジェネレーション  オブ  ア  トライアンギュラー  グリッド  ウィズ  アプリケーション  トゥー  コンター  プロッティング，ジェット  プロパルション  ラボラトリー  インターナル  テクニカル  メモランダム（Generation  of  a  triangular  grid  with  application  to  contour  plotting,  Jet  Propulsion  Laboratory  Internal  Technical  Memorandum）」、１９７２年,第２９９号
【非特許文献２】シー．エル．ローソン（Ｃ.Ｌ.Lawson）著、「ソフトウェア  フォア  シーワン  サーフィス  インターポーレーション，  イン  マセマティカル  ソフトウェア  スリー，  イー．デー．ジェイ．アール，ライス，  アカデミック  プレス（Software  for  C１  surface  interpolation,  in  Mathematical  Software  III,ed.J.R.Rice,Academic  Press）」、米国,１９７７年,ｐ.１６１
【非特許文献３】アール．シブソン（R.Sibson）著、「ローカリー  イークウィアンギュラー  トライアンギュレーション，  コンピューター  ジャーナル（Locally  equiangular  triangulations,  The  Computer  Journal）」、１９７８年,第１２１巻,第３号,ｐ.２４３
【非特許文献４】エー．ケー．クライン（A.K.Cline）、アール．エール.レンカ（R.L.Renka）共著、「ストーリッジ  エフィシャント  メソッド  フォア  コンストラクション  オブ  サイエッセン  トライアンギュレーション，  ロッキー  マウンテン  ジャーナル  オブ  マセマティックス（A  storage-efficient  method  for  construction  of  a  thiessen  triangulation,  Rocky  Mountain  Journal  of  Mathematics）」、１９８４年,第１４巻,第１号,ｐ.１１９
【非特許文献５】デー．テー．リー（D.T.Lee）、ビー．ジェイ．シャハター（B.J.Schachter）共著、「ツー  アルゴリズム  フォア  コンストラクティング  ドローネ  トライアンギュレーション，  インターナショナル  ジャーナル  オブ  コンピュータ  アンド  インフォーメーション  サイエンス（Two  algorithms  for  constructing  a  Delaunay  Triangulation,  International  Journal  of  Computer  and  Information  Sciences）」、１９８０年,第９巻,第３号,ｐ１６９１
【非特許文献６】ジェイ．エル．ブラウン（J.L.Brown）著、「ヴェクテックス  ベースド  データ  ディペンデント  トライアンギュレーション，  コンピュータ  エイディド  ジオメトリック  デザイン（Vertex  based  data  dependent  triangulation,  Computer  Aided  Geometric  Design）」、１９９１年,第８巻,第３号,ｐ.２３９
【非特許文献７】ビー．ケー．チョウイ（B.K.Choi）、エイチ．ワイ．シン（H.Y.Shin）、ワイ．アイ．ヨーン（Y.I.Yoon）、ジェイ．ダブリュー．リー（J.W.Lee）共著、「トライアンギュレーション  オブ  スキャタード  データ  イン  スリーデー  スペース，  コンピューター  エイディド  デザイン（Triangulation  of  scattered  data  in  ３D  space,  Computer-Aided  Design）」、１９８８年,第２０巻,第５号,ｐ.２３９
【非特許文献８】エイチ．ホープ（H.Hoppe）著、「サーフィス  リコンストラクション  フロム  アンオーガナイズド  ポイント，  ドクトラル  シーシス，  ユニバーシティ  オブ  ワシントン（Surface  reconstruction  from  unorganized  points,  Doctoral  thesis,  University  of  Washington）」、１９９４年
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、チョウイらの手法については、対象物の複雑度が増せばその分対象領域を細かく分割しなければならないといった問題があり、また、領域の分割の仕方も問題になってくる。そして、ホープの手法については、メッシュ生成のためには補助的に莫大な数の点を必要とし、計算時間の面からすると非常にコストがかかってしまうという問題がある。また、ホープの手法については微細な構造の欠損といった問題も報告されている。
【０００７】
本発明は、上述のような事情よりなされたものであり、本発明の目的は、コンピュータシステムを利用し、二次元空間内若しくは三次元空間内に与えられた散乱点群から、高品質な三角形メッシュを簡単且つ高速に生成できるようにした三角形メッシュ生成方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、三角形メッシュ生成方法に関し、本発明の上記目的は、コンピュータの演算処理によって、二次元散乱点群データから三角形メッシュを自動生成する方法であって、
ａ１．前記コンピュータに入力された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、ａ２．整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成するステップと、ａ３．前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、ａ４．前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、ステップａ３を繰り返すステップとを有することにより、或いは、コンピュータの演算処理によって、二次元散乱点群データから三角形メッシュを自動生成する方法であって、ｂ１．前記コンピュータに入力された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、ｂ２．前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを生成するステップと、ｂ３．前記線分リストの順序に従って、対応する線分の両側において、前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納するステップと、ｂ４．前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、ステップｂ３を繰り返すステップとを有することにより、或いは、コンピュータの演算処理によって、三次元散乱点群データから初期三角形メッシュを自動生成する方法であって、ｃ１．前記コンピュータに入力された前記三次元散乱点群データは、八分木アルゴリズムによって木構造が生成され、ポイントリストによって整列されるステップと、ｃ２．前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、第１の線分リストを生成し、空の第２の線分リスト及び空の要素リストを用意するステップと、ｃ３．前記第１の線分リストの先頭にある線分を選択し、選択した線分の最大角度点を求め、選択した線分及びその両端点と前記最大角度点を結んでできた２線分から構成される３線分のうち、前記第２の線分リストに無いものがあれば、これを前記第２の線分リストへ格納し、また、生成した三角形が前記要素リストになければ、これを前記要素リストへ格納するステップと、ｃ４．生成した三角形を基準面として、その周囲の散乱点の分布状況をトポロジー判断関数によって交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第１の線分リストから削除し、ステップｃ３に戻り、また、交差生成の可能性がないと判断された場合に、ステップｃ５に進むようにするステップと、ｃ５．生成した三角形と共有部分をもつ三角形を求め、求めた三角形と生成した三角形との共有関係によって、交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第１の線分リストから削除し、ステップｃ３に戻り、また、交差生成の可能性がないと判断された場合に、既にステップｃ３で前記要素リストに格納されている生成した三角形は確定し、ステップｃ６に進むようにするステップと、ｃ６．選択した線分からのトポロジー判断を利用することによって分断面を生成し、確定した三角形と逆の方向にある散乱点群に対して、ステップｃ３からステップｃ５までの処理を実行し、もう一つの三角形を生成するステップと、ｃ７．選択した線分を前記第１の線分リストから削除し、前記第１の線分リストが空であれば、前記初期三角形メッシュが生成され、処理が終了し、また、前記第１の線分リストが空でなければ、ステップｃ３に戻るようにするステップとを有することにより、或いは、コンピュータの演算処理によって、初期三角形メッシュに存在する折線ループ内に三角形メッシュを自動生成する方法であって、ｄ１．前記コンピュータに入力された初期三角形メッシュにおいて、未処理の折線ループを選択するステップと、ｄ２．選択された折線ループ内に三角形メッシュが存在するかどうかを判断し、選択された折線ループ内に三角形メッシュが存在した場合に、内側の折線ループの最短線分を選択すると共に、外側の折線ループの節点から最大角度点を選択し、ステップｄ３に進み、一方、選択された折線ループ内に三角形メッシュが存在しないと判断された場合に、折線ループ内の最短線分を選択し、折線ループの節点から最大角度点を選択し、ステップｄ３に進むようにするステップと、ｄ３．三角形を生成し、三角形の生成によって新しい折線ループが生成されたかどうかを判断し、新しい折線ループが生成された場合に、ステップｄ２に戻り、一方、新しい折線ループが生成されない場合に、折線ループの処理が終了したかどうかを判断し、折線ループの処理が終了していない場合に、ステップｄ２に戻るようにするステップと、ｄ４．ステップｄ３で折線ループの処理が終了したと判断された場合に、前記初期三角形メッシュに未処理の折線ループが存在するかどうかを判断し、前記初期三角形メッシュに未処理の折線ループが存在した場合に、ステップｄ１に戻り、一方、前記初期三角形メッシュに未処理の折線ループが存在しない場合に、前記初期三角形メッシュ内の全ての折線ループに三角形メッシュが生成され、三角形メッシュが完成するステップとを有することによって効果的に達成される。
【０００９】
また、本発明は、三角形メッシュ生成プログラムに関し、本発明の上記目的は、二次元散乱点群データから三角形メッシュを自動生成するためのコンピュータプログラムであって、ａ１．前記二次元散乱点群データを取得し、取得された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、ａ２．整列された二次元散乱点群データから初期点を選択し、選択した初期点に対する最短線分を生成する手順と、ａ３．前記最短線分に対して前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納する手順と、ａ４．前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、前記線分リストの順序に従って選択した線分を前記最短線分とし、手順ａ３を繰り返す手順とを有することにより、或いは、二次元散乱点群データから三角形メッシュを自動生成するためのコンピュータプログラムであって、ｂ１．前記二次元散乱点群データを取得し、取得された前記二次元散乱点群データは、四分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、ｂ２．前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを生成する手順と、ｂ３．前記線分リストの順序に従って、対応する線分の両側において、前記木構造の中の関係する点から最大角度点を探し、新しい三角形要素と線分を生成すると共に、新しく生成した三角形要素と線分をそれぞれ要素リスト、線分リストへ格納する手順と、ｂ４．前記二次元散乱点群データに属する全ての点が三角形メッシュに含まれるまで、手順ｂ３を繰り返す手順とを有することにより、或いは、三次元散乱点群データから初期三角形メッシュを自動生成するためのコンピュータプログラムであって、ｃ１．前記三次元散乱点群データを取得し、取得された前記三次元散乱点群データは、八分木アルゴリズムによって木構造が生成され、ポイントリストによって整列される手順と、ｃ２．前記木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、第１の線分リストを生成し、空の第２の線分リスト及び空の要素リストを用意する手順と、ｃ３．前記第１の線分リストの先頭にある線分を選択し、選択した線分の最大角度点を求め、選択した線分及びその両端点と前記最大角度点を結んでできた２線分から構成される３線分のうち、前記第２の線分リストに無いものがあれば、これを前記第２の線分リストへ格納し、また、生成した三角形が前記要素リストになければ、これを前記要素リストへ格納する手順と、ｃ４．生成した三角形を基準面として、その周囲の散乱点の分布状況をトポロジー判断関数によって交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第１の線分リストから削除し、手順ｃ３に戻り、また、交差生成の可能性がないと判断された場合に、手順ｃ５に進むようにする手順と、ｃ５．生成した三角形と共有部分をもつ三角形を求め、求めた三角形と生成した三角形との共有関係によって、交差の生成を判断し、交差生成の可能性が大と判断された場合に、生成した三角形を前記要素リストから削除すると共に、選択した線分を前記第１の線分リストから削除し、手順ｃ３に戻り、また、交差生成の可能性がないと判断された場合に、既に手順ｃ３で前記要素リストに格納されている生成した三角形は確定し、手順ｃ６に進むようにする手順と、
ｃ６．選択した線分からのトポロジー判断を利用することによって分断面を生成し、確定した三角形と逆の方向にある散乱点群に対して、手順ｃ３から手順ｃ５までの処理を実行し、もう一つの三角形を生成する手順と、ｃ７．選択した線分を前記第１の線分リストから削除し、前記第１の線分リストが空であれば、前記初期三角形メッシュが生成され、処理が終了し、また、前記第１の線分リストが空でなければ、手順ｃ３に戻るようにする手順とを有することにより、或いは、初期三角形メッシュに存在する折線ループ内に三角形メッシュを自動生成するためのコンピュータプログラムであって、ｄ１．前記初期三角形メッシュを取得し、取得された前記初期三角形メッシュにおいて、未処理の折線ループを選択する手順と、ｄ２．選択された折線ループ内に三角形メッシュが存在するかどうかを判断し、選択された折線ループ内に三角形メッシュが存在した場合に、内側の折線ループの最短線分を選択すると共に、外側の折線ループの節点から最大角度点を選択し、手順ｄ３に進み、一方、選択された折線ループ内に三角形メッシュが存在しないと判断された場合に、折線ループ内の最短線分を選択し、折線ループの節点から最大角度点を選択し、手順ｄ３に進むようにする手順と、ｄ３．三角形を生成し、三角形の生成によって新しい折線ループが生成されたかどうかを判断し、新しい折線ループが生成された場合に、手順ｄ２に戻り、一方、新しい折線ループが生成されない場合に、折線ループの処理が終了したかどうかを判断し、折線ループの処理が終了していない場合に、手順ｄ２に戻るようにする手順と、ｄ４．手順ｄ３で折線ループの処理が終了したと判断された場合に、前記初期三角形メッシュに未処理の折線ループが存在するかどうかを判断し、前記初期三角形メッシュに未処理の折線ループが存在した場合に、手順ｄ１に戻り、一方、前記初期三角形メッシュに未処理の折線ループが存在しない場合に、前記初期三角形メッシュ内の全ての折線ループに三角形メッシュが生成され、三角形メッシュが完成する手順とを有することによって効果的に達成される。
【発明の効果】
【００１０】
本発明に係る二次元空間における最大角度法を用いた三角形メッシュ生成方法によれば、平面上の散乱点群に対しては、ドロネー三角形分割法と同等の機能を有し、かつ計算コストにおいても直接角度の計算をするのではなく、内積の大小によって角度の大小を判断でき、それ以外の条件判断を必要としないので、従来の他の手法に比べて高速な処理が可能になるという優れた効果を奏する。
【００１１】
また、本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成方法によれば、非特許文献７に開示されたチョウイらの手法に用いられる射影平面も使用せず、三次元空間内に与えられた散乱点群に属する全ての点を効率よく利用することが可能であり、複雑なモデルの形状の再構成も、トポロジー判断関数の導入により満足のいく再構成の結果が得られるといった優れた効果を奏する。
【発明を実施するための最良の形態】
【００１２】
平面上の散乱点群から三角形メッシュを生成する最も一般的な方法としてのドロネー三角形分割法においては、必ず各点から最短距離にある点を接続した線分が選択され、また各線分に対する対応角は最大となっている。
【００１３】
本発明では、ドロネー三角形分割法のこの特徴を考慮に入れて、二次元空間内の散乱点群にだけではなく、三次元空間内の散乱点群にも拡張し、初期最短線分群を構成した後に、初期最短線分群に対応して最大角度をとる点から三角形要素（以下、三角形とも略する）を生成することによって、高品質な三角形メッシュを簡単に生成するようにしている。これは本発明の第一の着眼点である。
【００１４】
本発明のもう一つの着眼点とは、三次元空間内の散乱点群から三角形メッシュを生成する際に、発生する三角形要素が交差してしまう現象をいかに克服するかということである。これに対しては、本発明では、後述する＜２−１＞『三次元空間におけるメッシュの交差についての検討』及び＜２−２＞『三次元空間における交差の発見と回避』に詳細に説明されたように、まず、三次元空間における交差現象の原因を究明し、そして、トポロジー判断関数により交差が起きそうな場所を特定し、そのような場所（そこには穴が発生する）については一旦保留し、後にその部分が実際の穴かどうかを判断し、そうでなければ内部に三角形メッシュを生成するという方法を用いて、三次元空間におけるメッシュの交差といった厄介な問題を簡単に解決した。
【００１５】
以下、本発明の実施の形態を図面を参照して説明する。
【００１６】
本発明は、コンピュータシステムを利用し、二次元空間内（平面内）若しくは三次元空間内に与えられた散乱点群から、最大角度法を用いて、高品質な三角形メッシュを高速に生成する三角形メッシュ生成方法及びプログラムに関する。以下では、本発明の三角形メッシュ生成のアルゴリズムを二次元空間と三次元空間の場合に分けて説明する。
【００１７】
なお、以下に説明する本発明に係る三角形メッシュ生成方法及び三角形メッシュ生成アルゴリズムに使用される散乱点群として、例えば、実際に三次元スキャナー等の計測機器で実物の表面形状を計測して得られた点群データ（座標値）を用いることが可能である。また、医療の現場において使用されるＣＴやＭＲＩといった医療機器から得られた病巣部に関する点群データを用いることも可能である。さらに、コンピュータグラフィック（ＣＧ）によって生成した点群データを使用することも勿論可能である。座標値で表す、二次元或いは三次元の点群データであれば、本発明を適用し、高品質な三角形メッシュを簡単に生成することができる。
【００１８】
なお、本発明に係る三角形メッシュ生成アルゴリズムは、ソフトウェアにまたはハードウェアによって実装されることが可能である。勿論、本発明に係る三角形メッシュ生成アルゴリズムは、ソフトウェアとハードウェアの適宜な組み合わせによって実装されることも可能である。
＜１＞二次元空間（平面）における最大角度法を用いた三角形メッシュ生成方法
まず、本発明で用いられる技術用語の説明をする。△ＡＢＣにおいて、∠ＡＣＢを線分ＡＢに対する対応角と呼び、点Ｃの候補が複数存在する場合に、対応角が最大となる点を最大角度点と呼ぶことにする。また、初期散乱点群の中にある点を一つ固定し、その点とその点から最短距離にある点を結んでできる線分をその点に対する最短線分と呼ぶことにする。そして、最短線分を基準に最大角度点を探査し、三角形メッシュを生成する方法を最大角度法と呼ぶ。
【００１９】
本発明では、この最大角度法を用いて三角形メッシュを生成するので、つまり、線分とその対応角による組を基に三角形メッシュを生成しているので、新しくできた三角形要素が今までに生成された三角形要素と交差を起こす可能性について、検討の必要性がある。以下では、まずこのような交差現象について論じることにする。
＜１−１＞二次元空間における三角形要素交差についての検討
まず、図１に示されるように、二つの三角形が線分ＡＢに対して、最大角度点Ｃが選択され、△ＡＢＣが形成されている。即ち、∠a1＞∠b1となっている。このとき、図１において、Ｃと接続する線分ＣＤに対して、最大角度点の選択はＡとなり、三角形要素の交差は発生しない。
【００２０】
また、図２は対象となる線分がＡＤとＤＣというように共有点を持つ場合を示す。図２の場合も同様にして、線分ＡＤに対して生成された△ＡＤＢに対して、線分ＤＣに対して選択される最大角度点もＢとなり、三角形要素の交差を起こさない。
【００２１】
最後に、図３は最初に生成される三角形と次の対象となる線分が共有部分を持たない場合を示す。図３の場合では、それぞれ線分ＡＢに対する最大角度点がＥ、線分ＣＤに対する最大角度点がＦとなっている。このとき定義からそれぞれの外接円内には他の点を含まないが、交差を起こす場合に必ずＥ、Ｆのどちらかが他方の外接円に含まれてしまうので、実際に三角形要素の交差は発生しない。
【００２２】
上述した二次元空間（平面）における最大角度法の性質から、生成された三角形の辺を用いて隣接する三角形を逐次生成する方法が考えられるが、以下では三次元空間への拡張も考えて、２通りの最大角度法を用いた三角形メッシュ生成アルゴリズムを示す。
＜１−２＞二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズム１（以下、単に片側アルゴリズムとも称する）
片側アルゴリズムは以下のようになる。
ステップＡ１：
二次元空間内に与えられた散乱点群に属するすべての点は、四分木法によって木構造を生成し、ポイントリストによって整理される。
ステップＡ２：
ポイントリストの先頭の点を取り、関係する木構造点から、その点の最短線分を生成する。
ステップＡ３：
ステップＡ２で生成された最短線分に対して、木構造の中の関係する点から最大角度点を探し、新しい三角形と線分を生成する。但し、最大角度点となる点が複数存在する場合（例えば、図４に示すように、線分ＡＢに対する最大角度点として、複数の点、つまり、点Ｃ、点Ｄ及び点Ｅが存在する場合）には、最初に選択した点を優先するものとする（図４の場合は、点Ｃを最大角度点とする）。
ステップＡ４：
ステップＡ３で生成された線分を線分リストに入れる。
ステップＡ５：
線分リストの順序に従って、線分毎に、ステップＡ３と同様にして、新しい三角形と線分を生成し、生成された線分について、ステップＡ４と同様にして、線分リストに入れる。
ステップＡ６：
二次元空間内に与えられた散乱点群に属する全ての点が、三角形メッシュ構造に含まれるまで、ステップＡ５を繰り返す。
【００２３】
上述した片側アルゴリズムをフローチャートに示すと、図５になる。
【００２４】
図５に示されるように、片側アルゴリズムに基づいて本発明の三角形メッシュ生成方法では、まず、例えば計測機器で得られた二次元空間内の点群データ（座標値）を入力し（ステップＳ１０１）、入力された点群データは、四分木アルゴリズムによって整列される（ステップＳ１０２）。整列された点群データから初期点を選択し（ステップＳ１０３）、選択された初期点に対する最短線分を生成する（ステップＳ１０４）。最短線分に対して半平面内に点が存在するかどうかを判断する（ステップＳ１０５）。
【００２５】
最短線分に対して半平面内に点が存在しない場合に、逆側の半平面から最大角度点を探索し（ステップＳ１０６）、ステップＳ１０８に進む。一方、最短線分に対して半平面内に点が存在した場合に、半平面内から最大角度点を選択し（ステップＳ１０７）、三角形要素を生成する（ステップＳ１０８）。そして、生成した三角形を要素リストへ格納し（ステップＳ１０９）、新しく生成された線分を線分リストに追加する（ステップＳ１１０）。次に、未チェックの線分が線分リストにあるかどうかを判断する（ステップＳ１１１）。
【００２６】
未チェックの線分が線分リストにある場合に、線分リストに線分を選択し（ステップＳ１１２）、三角形の無い側に点が存在するかどうかを判断する（ステップＳ１１３）。三角形の無い側に点が存在した場合に、ステップＳ１０７に戻る。一方、三角形の無い側に点が存在しない場合に、ステップＳ１１１に戻る。また、ステップＳ１１１において、未チェックの線分が線分リストに無いと判断された場合に、二次元空間内の点群データから三角形メッシュが生成され、処理が終了する。
＜１−３＞二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズム２（以下、単に両側アルゴリズムとも称する）
次に、三次元空間の場合に拡張するために、各辺の両側で三角形を生成する両側アルゴリズムについて述べる。
ステップＢ１：
二次元空間内に与えられた散乱点群に属するすべての点は、四分木法によって木構造を生成し、ポイントリストによって整理される。
ステップＢ２：
ステップＢ１で生成された木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストを作る。
ステップＢ３：
線分リストの順序に従って、対応する線分の両側において、例えば図６に示されるように、木構造の中の関係する点から最大角度点を探し、新しい三角形と線分を生成する。
ステップＢ４：
ステップＢ３で生成された線分を線分リストに入れる。
ステップＢ５：
二次元空間内に与えられた散乱点群に属する全ての点が、三角形メッシュ構造に含まれるまで、ステップＢ３とステップＢ４を繰り返す。
【００２７】
上述した両側アルゴリズムをフローチャートに示すと、図７になる。
【００２８】
図７に示されるように、両側アルゴリズムに基づいて本発明の三角形メッシュ生成方法では、まず、例えば計測機器で得られた二次元空間内の点群データ（座標値）を入力し（ステップＳ２０１）、入力された点群データは、四分木アルゴリズムによって整列される（ステップＳ２０２）。整列された点群データにおいて、各点から最短距離にある点を探索して接続する（ステップＳ２０３）。そして、長さの短い順に並べた線分リストを作成する（ステップＳ２０４）。
【００２９】
次に、線分リストの最初の線分を選択し（ステップＳ２０５）、選択された線分の両側でそれぞれ最大角度点を選択し（ステップＳ２０６）、三角形要素を生成する（ステップＳ２０７）。生成された三角形要素を要素リストへ格納し（ステップＳ２０８）、新しく生成された線分を線分リストに追加する（ステップＳ２０８）。
【００３０】
次に、未チェックの線分が線分リストにあるかどうかを判断する（ステップＳ２１０）。未チェックの線分が線分リストにある場合に、ステップＳ２０５に戻る。一方、未チェックの線分が線分リストに無い場合に、二次元空間内の点群データから三角形メッシュが生成され、処理が終了する。
＜１−４＞片側アルゴリズムと両側アルゴリズムとの比較
上述した片側アルゴリズムと両側アルゴリズムとを比較すると、片側アルゴリズムは、初期線分群の生成とその長さによる線分リストの生成（つまり、両側アルゴリズムのステップＢ２）が無い分、両側アルゴリズムより高速であると考えられる。また、結果として得られる三角形メッシュは、両アルゴリズムにおいて一致する。
＜１−５＞本発明に係る二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムと従来のドロネー三角形分割法との比較
次に、本発明に係る二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムと従来のドロネー三角形分割法とを比較してみる。
【００３１】
先ず、従来のドロネー三角形分割法の概略を述べる。ドロネー三角形分割法において、まず、二次元空間における有限個の点の集合Ｓ＝{Ｐｋ}をとる。各ｋに対して、ｋと異なるｌに対して、｜ＰＰｋ｜≦｜ＰＰｌ｜を満たす点Ｐの集合Ｖｋをボロノイ多角形またはThiessen多角形（以下、ティーセン多角形と称する）と呼ぶ。ボロノイ多角形は、その定義からＰｋを含む閉凸多角形となり、その全体は空間全体を埋め尽くす。このボロノイ多角形による分割をディリクレ分割（Dirichlet  tessellation）と呼ぶ。このボロノイ多角形を用いると、ドロネー三角形分割法による三角形分割は、次のようにして得られる。
【００３２】
即ち、Ｓの点Ｐｋと対応するボロノイ多角形Ｖｋに隣接する各ボロノイ多角形Ｖｌに対応する点Ｐｌとを結ぶ。上記の連結法により、Ｓの点を用いた分割が構成される。このとき、この分割は三角形と凸多角形によって構成されている。Ｐｋを含む凸多角形の境界線は実は、ＰｋとあるＰｌを接続した線分の垂直二等分線となっている。凸多角形は、さらに三角形に容易に分割されるので、これにより全て三角形の分割が得られる。これをドロネー三角形分割法と呼ぶ。図８においては、細線によってドロネー三角形分割を表し、太線によって囲まれた図形が各ボロノイ多角形になっている。
【００３３】
上述したドロネー三角形分割法で得られた三角形メッシュ（以下、ドロネー三角形メッシュとも称する）は、次の性質を有している。まず、ドロネー三角形メッシュにおいて、例えば図９に示されるように、各線分に対する対応角は必ずこの方向に関して最大となる。次に、例えば図１０に示されるように、ドロネー三角形メッシュの任意の節点に対して、その点の最短線分は必ずメッシュの中に存在する。
【００３４】
上述した２つの性質は、本発明の両側アルゴリズムの中でも使われている性質であり、実際、本発明の平面における最大角度法を用いた三角形メッシュ生成アルゴリズムで得られる三角形メッシュとドロネー三角形分割法で得られる三角形メッシュは一致する。
＜１−６＞二次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムの適用例
ここで、本発明に係る片側アルゴリズムを実際の平面散乱点群に適用した例を挙げることにする。図１１の初期散乱点群に対して、図１２は点１から最短距離にある点９を結んで最短線分を生成したものである。次に、この最短線分を基にして最大角度点となる点１０を用いて最初の三角形（これをＡとおく）が生成されたのが図１３である。そして、この三角形を構成する３線分、即ち、点１と点１０を結ぶ線分（これをａとおく）、点９と点１０を結ぶ線分（これをｂとおく）、点１と点９を結ぶ線分が、線分リストに格納される。そこで、線分ａ，ｂに対して、三角形Ａがある側とは反対の側で三角形をそれぞれ生成したのが図１４と図１５である。この処理を繰り返していけば、図１６を経て図１７に示すように三角形メッシュが完成する。
＜２＞三次元空間における最大角度法を用いた三角形メッシュ生成方法
最大角度法を平面上の散乱点群に適用する場合、一部の例外を除いて辺の交差は発生しない。しかし、三次元空間内の散乱点群に関しては、状況が平面の場合に比べて格段に複雑になる。また、元々のモデルを散乱点群から正確に再構築できるかどうかという問題は非常に重要であるが、散乱点群のみの情報だけでは、元の曲面の様子、例えばシャープな形状や微小な穴などを完全に予測することは困難である。
【００３５】
以下では、このような交差現象の排除と形状の正確な再構成という両面からの要請をできるだけ満足するメッシュの構築を実現するためにメッシュ構造の分析を行なう。
＜２−１＞三次元空間におけるメッシュの交差についての検討
三次元空間内でメッシュの交差として考えられるものには、図１８に示すような三つのタイプがある。但し、見易さのために、前面にあるものを一部濃色を用いて表現している。
【００３６】
先ず、タイプＡ（貫通の場合）とは、図１８（ａ）に示すように、文字通りある三角形が他の三角形内を通過してしまう場合である。次に、タイプＢ（面の不整合の場合）とは、図１８（ｂ）に示すように、以後の三角形の生成によって、面が形成されなくなる場合である。そして、タイプＣ（一辺を三つ以上の三角形が共有する場合）とは、ある線分が３つ以上の三角形に共有される場合である。タイプＣの例として、メッシュ内に不要な小さな多面体が生成されるものや、図１８（ｃ）の右端のように、曲面に小片が接続したりするものがある。
【００３７】
ここで、一つの線分ＡＢとその最大角度点Ｐに対して、
2005293021.tif 000003
は一つの閉曲面をなす。この閉曲面によって囲まれた有界な領域を線分ＡＢから最大角度法によって決まる領域と定義する。このとき、定義からこの領域内には点が存在しない。図１９では、線分ＡＢと線分ＣＤそれぞれから最大角度法によって決まる領域を表わしている。
【００３８】
タイプＡの交差が存在するのは、図１９に示すように、対象となる二つの三角形によって決まるそれぞれの平面の交線（図１９では、点Ｅと点Ｆを通る直線）が、二つの三角形の中を同時に通過する場合である。要素数が多い場合、従来の方法では非常に多くの交差判断の計算が必要となるが、本発明の最大角度法では、平面の場合と同様にして、この種の交差を避けることができる。
【００３９】
また、本発明の最大角度法は、線分に対して三角形を生成してゆく手法であるので、タイプＢの交差を持つメッシュに対して、繰り返し最大角度法を適用すれば、境界線のみを持つ三角形が、面を持つ三角形データとして認識され、四面体状の構造へと変化していく。これは、即ち、タイプＢの形状がタイプＣの形状へ帰着されることを意味する。従って、交差に関しては、タイプＣの場合についてのみ検討すればよいが、実は、近接する４点の範囲では、このような交差は発生しない。しかしながら、メッシュ全体から見ると、このような交差は、確かに発生しうる。これは、既に完成した三角形と周囲の点の分布と線分の選択との矛盾によって起こる。
【００４０】
交差生成の原因としては、２つ考えられる。即ち、例えば図２０（ａ）に示されるように、底部の三角形（つまり、図中の△ＢＣＤ）が生成された後に、他の点からやや距離のある点Ａによって生成された三角形（つまり、図中の△ＡＢＣ、△ＡＣＤ、△ＡＢＤ）によって、四面体（つまり、図中の四面体ＡＢＣＤ）が生成してしまうもの（つまり、既存メッシュとの矛盾）と、例えば図２０（ｂ）に示されるように、襞状の構造が発生してしまうもの（つまり、襞状構造の生成）の２種類である。
＜２−２＞三次元空間における交差の発見と回避
本発明では、三次元空間内の散乱点のトポロジー判断、即ち、散乱点群の分布の状況を検査することによって、襞状構造の生成を検出するようにしている。そのために、本発明では、２段階に分けた制御を設けて、襞状構造の生成を検出する。
【００４１】
第１段階の制御とは、図２１に示すような個々の三角形と周囲の点との関係による制御であり、第２段階の制御とは、図２２及び図２３に示すような線分（つまり、辺）若しくは点を共有する二つの三角形の関係から制御するものである。
【００４２】
まず、第１段階の制御では、最大角度法によって生成した三角形を基準面として、周囲の点の分布の特徴を後述する本発明のトポロジー判断関数を利用して判断する。つまり、第１段階の制御では、図２１に示されるように、最大角度法によって生成した三角形の重心Ｄ、当該三角形の周囲にある一つの点Ｐ、及び点Ｐの当該三角形面への正射影Ｉを用いた関数
【００４３】
【数１】
2005293021.tif 000004
によって、当該三角形の周囲の点の分布を判断する。但し、｜ＤＰ｜は点Ｄと点Ｐの距離を表わす。｜ＤＩ｜は点Ｄと点Ｉの距離を表わす。本発明では、上記関数Ｔをトポロジー判断関数と呼ぶ。
【００４４】
例えば、トポロジー判断関数Ｔの最も簡単な例は
【００４５】
【数２】
2005293021.tif 000005
である。この例において、Ｔ＜ａ（但し、ａは１より大きい定数）を考えると、これは点Ｐが同じ頂点を持つ二つの円錐に挟まれた領域に存在することを意味する。上記数２のトポロジー判断関数Ｔを用いると、角部とエッジ部に相当する点に対しては、Ｔの値が非常に大きくなる。上記数２のトポロジー判断関数Ｔに基づいて算出された、周囲の点のＴの値が大きければ、襞状の構造が生成される可能性が高いと判断して、当該三角形（つまり、最大角度法によって生成した三角形）の生成をやめる。
【００４６】
また、トポロジー判断関数Ｔの別な例としては
【００４７】
【数３】
2005293021.tif 000006
がある。ここで、ｂは当該三角形（つまり、最大角度法によって生成した三角形）に関係するパラメータで、ｃは正定数である。但し、｜ＰＤ｜は点Ｐと点Ｄの距離を表わし、｜ＰＩ｜は点Ｐと点Ｉの距離を表わし、｜ＤＩ｜は点Ｄと点Ｉの距離を表わす。同様に、上記数３のトポロジー判断関数Ｔに基づいて算出された、周囲の点のＴの値が大きければ、襞状の構造が生成される可能性が高いと判断して、当該三角形（つまり、最大角度法によって生成した三角形）の生成をやめる。
【００４８】
次に、第２段階の制御では、第１段階の制御で得られた三角形（つまり、第１段階の制御を行ってから残れた、最大角度法によって生成した三角形）とそれに接続する三角形との関係を判断する。同一平面上にない二つの三角形が共通部分を持つとすると、それは、図２２のように１辺のみを共有するか、また図２３のように１点のみを共有するかのいずれかの場合である。
【００４９】
図２２において、角Ａは共有辺の中点を始点とする二つの中線のなす角であるのに対して、図２３において、角Ａは共有点を始点とする二つの中線のなす角である。また、図２２及び図２３において、角Ｂは二つの三角形の法線ベクトルのなす角を表わしている。そして、図２２及び図２３において、もし、角Ａと角Ｂが両方ともある値ｂより小さい場合に、襞状の構造を生成したと判断し、第１段階の制御で得られた三角形の生成をやめる。
【００５０】
次に、基準となる線分（以下、基準線分とも称する）に対して、確定した三角形とは逆の側に三角形を生成する。具体的には、まず、図２４に示すように、基準線分の中点Ｍを中心とする一つの球を生成する。この球は、以下の処理に必要な点数を絞り込むために用いられる。次に、この球に含まれる点を基準線分の二つの端点と接続し、三角形を生成する。生成した三角形の平均法線ベクトルを求め、この基準線分を通過する平均平面を生成する。そして、基準線分の中点Ｍを通過し、且つ平均平面と垂直になる平面（以下、垂直平面とも称する）を生成する。この垂直平面によって、球に含まれる全ての点は二つ異なるグループに分けられる。つまり、球は二つの領域に分けられる。分けられた領域のうち、確定した三角形の無い側で最大角度点を探し、最大角度法によって三角形を生成し、生成された三角形について、上述した２段階の制御を行って交差の判断を行なう。
＜２−３＞三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズム１（以下、単に三次元空間における初期メッシュ生成アルゴリズム、或いは、初期メッシュ生成アルゴリズムと称する）
三次元空間内に与えられた散乱点群から初期三角形メッシュを生成する、初期メッシュ生成アルゴリズムは、以下のようになる。
ステップＣ１：
三次元空間内に与えられた散乱点群に属するすべての点は、八分木法によって木構造を生成し、ポイントリストによって整理される。
ステップＣ２：
ステップＣ１で生成された木構造を用いて、各点から最短距離にある点を結び、これを長さの短い順に並べ、線分リストＡを作る。さらに、空の線分リストＢ及び空の要素リストＣを用意する。
ステップＣ３：
線分リストＡの先頭にある線分、即ち、最小の長さのものｌを選択し、選択した線分の最大角度点Ｍを求める。線分ｌおよびｌの両端点と点Ｍを結んでできた２線分から構成される３線分のうち、線分リストＢに無いものがあれば、これを線分リストＢに加える。また、出来た三角形が要素リストＣになければ、これを要素リストＣへ加える。もし、最大角度点が複数あれば、次のような処理をする。即ち、線分ＡＢを基準にして∠ＡＣＢ＝∠ＡＤＢ＝∠ＡＥＢ＝…となっている場合、もし既に、Ｃ，Ｄ，Ｅ，…の中に△ＡＸＢが要素リストＣの中に存在するような点Ｘがあれば、線分ＡＢはチェック済みとし、そうでないときは、｜∠ＸＡＢ−∠ＸＢＡ｜が最小になる点ＸをＣ，Ｄ，Ｅ，…の中から選ぶ。この段階でも、まだそのような点が複数あれば、任意の一つを既に構成された三角形要素と交差を起こさないように選ぶ。
ステップＣ４：
生成した三角形を基準面として、その周囲の点の分布状況をトポロジー判断関数Ｔによって判断する。周囲の点のＴの値が定数ａより小さい場合は、ステップＣ５へと進み、そうでないならば、生成した三角形を削除すると共に選択した線分を線分リストＡから消去し、ステップＣ３に戻る。
ステップＣ５：
生成した三角形と共有部分（つまり、共有点或いは共有辺のいずれか）をもつ三角形を求め、そして、求めた三角形と生成した三角形との共有関係によって、図２２または図２３のいずれかに示された角度Ａと角度Ｂを計算する。もし、角度Ａと角度Ｂの両方が共に小さい場合には、交差が生成されると判断する。共有点を一つ持つ場合には、生成した三角形を削除する（つまり、新しい三角形の生成をやめる）と共に選択した線分を線分リストＡから消去し、ステップＣ３に戻る。一つの線分（つまり、辺）を共有する場合には、辺を共有する二つの三角形のＴの平均値を求め、より大きい値を持つ方の三角形の生成は行わない。
ステップＣ６：
もし、この三角形の線分が既に二つの三角形に共有されている場合は、この三角形の生成は行なわない。但し、ここでは要素として認識されていない線分のみの三角形も含む。もし、この三角形が既に完成している場合も、新しい三角形は生成しない。
ステップＣ７：
次に、線分からのトポロジー判断法を利用する。分断面を生成し、今生成した方向とは逆の方向にある点群に対して、ステップＣ３からステップＣ６までのステップを実行し、もう一つの三角形を生成する。
ステップＣ８：
線分リストＡから線分ｌを削除する。新しい線分と三角形を線分リストＡと要素リストＣへ添加する。
ステップＣ９：
線分リストＡが空でなければ、ステップＣ３に戻り、もし空であればこの一連の処理を終了する。
【００５１】
上述した初期メッシュ生成アルゴリズムをフローチャートに示すと、図２５になる。
【００５２】
図２５に示されるように、初期メッシュ生成アルゴリズムに基づいて本発明の三角形メッシュ生成方法では、まず、例えば三次元スキャナー等の計測機器で得られた三次元空間内の点群データ（座標値）を入力し（ステップＳ３０１）、入力された点群データは、八分木アルゴリズムによって整列される（ステップＳ３０２）。整列された点群データにおいて、各点から最短距離にある点を探索して接続する（ステップＳ３０３）。そして、長さの短い順に並べた線分リストを作成する（ステップＳ３０４）。
【００５３】
次に、線分リストの最初の線分を選択し（ステップＳ３０５）、選択した線分の中点を中心とした半径Ｒの球を設定する（ステップＳ３０６）。選択した線分に対して球内の点から最大角度点を選択し（ステップＳ３０７）、三角形要素を生成する（ステップＳ３０８）。次に、トポロジー判断関数Ｔを適用する（ステップＳ３０９）。
【００５４】
次に、球内の全ての点に対してＴ＜ａが成立するかどうかを判断する（ステップＳ３１０）。球内の全ての点に対してＴ＜ａが成立しない場合に、生成した三角形要素を削除すると共に（ステップＳ３１１）、選択した線分を線分リストから削除し（ステップＳ３１２）、ステップＳ３０５に戻る。一方、ステップＳ３１０において、球内の全ての点に対してＴ＜ａが成立すると判断された場合に、生成した三角形要素と共有部分を持つ三角形要素を選択する（ステップＳ３１３）。
【００５５】
そして、生成した三角形要素及び選択された共有部分を持つ三角形要素に対しての角Ａと角Ｂが共にｂより小さいかどうかを判断する（ステップＳ３１４）。角Ａと角Ｂが共にｂより小さい場合に、生成した三角形要素を削除すると共に（ステップＳ３１１）、選択した線分を線分リストから削除し（ステップＳ３１２）、ステップＳ３０５に戻る。
【００５６】
一方、ステップＳ３１４において、角Ａ＜ｂと角Ｂ＜ｂが同時に成立しない場合に、生成した三角形要素を要素リストへ格納し（ステップＳ３１５）、新しく生成された線分を線分リストに追加する（ステップＳ３１６）。次に、選択した線分の両側で三角形要素の生成が終了したかどうかを判断する（ステップＳ３１７）。選択した線分の両側で三角形要素の生成が終了していない場合に、選択した線分の両端点と球内の点を結び、三角形を生成する（ステップＳ３１８）。そして、ステップＳ３１８で生成した三角形の法線ベクトルを計算する（ステップＳ３１９）。
【００５７】
次に、球内の全ての点に対して、ステップＳ３１８からステップＳ３１９までの処理が終了したかどうかを判断する（ステップＳ３２０）。球内の全ての点に対して、ステップＳ３１８からステップＳ３１９までの処理が終了していない場合に、ステップＳ３１８に戻り、ステップＳ３１８からステップＳ３１９までの処理を繰り返す。
【００５８】
一方、ステップＳ３２０において、球内の全ての点に対して、ステップＳ３１８からステップＳ３１９までの処理が終了したと判断された場合に、ステップＳ３１９で計算された全ての三角形の法線ベクトルに基づいて、平均法線ベクトルνを計算する（ステップＳ３２１）。そして、選択した線分を含み、且つ、平均法線ベクトルνに垂直な平面πを計算する（ステップＳ３２２）。球面と平面πに囲まれた領域のうち、三角形を含まない方から最大角度点を選択し（ステップＳ３２３）、そして、ステップＳ３０８に戻る。
【００５９】
一方、ステップＳ３１７において、選択した線分の両側で三角形要素の生成が終了したと判断された場合に、未チェックの線分が線分リストにあるかどうかを判断する（ステップＳ３２４）。未チェックの線分が線分リストにある場合に、選択した線分を線分リストから削除し（ステップＳ３２５）、そして、ステップＳ３０５に戻る。一方、未チェックの線分が線分リストに無い場合に、三次元空間内の点群データから初期三角形メッシュが生成され（ステップＳ３２６）、それで初期メッシュ生成アルゴリズムに基づく処理が終了する。
＜２−４＞三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズム２（以下、単に三次元空間におけるループ内三角形メッシュ生成アルゴリズム、或いは、ループ内三角形メッシュ生成アルゴリズムと称する）
本発明では、三次元空間内に与えられた散乱点群から、上述した初期メッシュ生成アルゴリズムによって初期三角形メッシュを生成し、そして、後述するループ内三角形メッシュ生成アルゴリズムによって三角形メッシュを完成する。
【００６０】
初期メッシュ生成アルゴリズムで初期三角形メッシュを生成した時点で、線分リストＡにあった線分は、全て要素リストＣの中のある三角形の一辺になっていて、これで三角形メッシュの一部が出来たことになる。しかしながら、初期メッシュ生成アルゴリズムの段階では、交差が起きそうな部分において、三角形の生成を中止するなどの措置を取ったため、その部分に必要に応じてメッシュを補填しなければならない。そのような部分は穴のあいた状態になっていて、その穴の周囲は、例えば図２６に示すような折線によるループになっている。以下では、そのループ内のメッシュ生成アルゴリズム（つまり、ループ内三角形メッシュ生成アルゴリズム）を述べる。
【００６１】
初期メッシュ生成アルゴリズムで初期メッシュを生成する段階で、できた折線ループ内にメッシュを生成する、ループ内三角形メッシュ生成アルゴリズムは、以下のようになる。
ステップＤ１：
折線ループ内に一部のメッシュがあれば、ステップＤ４に進み、そうでなければ、ステップＤ２に進む。
ステップＤ２（折線ループ内部の三角形分割１）：
折線ループに含まれる線分のうち、最短な線分ｌを一つとり、この線分ｌに対する折線ループ内の最大角度点Ｐを求める。線分ｌの両端点をＱ，Ｒとおく。折線ループで囲まれた部分から△ＰＱＲを取り除けば、例えば図２７に示すように、元々の折線ループは、高々二つの折線ループに分割されたと考えることができる。即ち、図２７（Ａ）では、△ＰＱＲと折線ループの共通部分が一辺（つまり、線分ＱＲ）のみであり、△ＰＱＲの挿入により二つの折線ループが新しく生成される。また、図２７（Ｂ）では、隣接する二辺（つまり、線分ＱＲと線分ＱＰ）が△ＰＱＲと折線ループによって共有され、頂点数が一つ少なくなった折線ループが新しく生成される。
ステップＤ３：
これら新しく生成された折線ループに対して、ステップＤ２に戻って処理をする。対象となる折線ループがなくなれば、処理を全て終了し、そうでなければステップＤ１に戻る。
ステップＤ４（ループ内部の三角形分割２）：
例えば図２８に示すように、内側のループに含まれる線分のうち、最短なものを一つとり、外側のループの頂点から最大角度点を選ぶ。これでできた三角形を要素リストに加えれば、分割されていない部分は、図２８の点線に示されるように一つのループによって囲まれたことになるので、ステップＤ２に進む。
【００６２】
ステップＤ１からステップＤ４までの手順により、ループ内の三角形メッシュが生成される。
【００６３】
なお、図２９から図３４までは、少ない点数（本例では、１２１点）の三次元空間内の散乱点群に対して、上述した初期メッシュ生成アルゴリズムとループ内三角形メッシュ生成アルゴリズムとから構成される、本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムを用いて、三角形メッシュ生成を行なった逐次的結果である。図２９で初期線分群が生成され、図３０から図３３まで逐次的に三角形メッシュが生成され、図３４で三角形メッシュが完結している。
【００６４】
上述したループ内三角形メッシュ生成アルゴリズムをフローチャートに示すと、図３５になる。
【００６５】
図３５に示されるように、ループ内三角形メッシュ生成アルゴリズムに基づいて本発明の三角形メッシュ生成方法では、まず、初期メッシュ生成アルゴリズムに基づいた本発明の三角形メッシュ生成方法によって生成された初期三角形メッシュを入力とし（ステップＳ４０１）、入力された初期三角形メッシュにおいて、未チェックのループＬを選択する（ステップＳ４０２）。選択されたループＬに囲まれた領域にメッシュが存在するかどうかを判断する（ステップＳ４０３）。選択されたループＬに囲まれた領域にメッシュが存在した場合に、内側のループの最短線分を選択すると共に（ステップＳ４０４）、外側のループの節点から最大角度点を選択し（ステップＳ４０５）、そして、後述するステップＳ４０８に進む。
【００６６】
一方、ステップＳ４０３において、選択されたループＬに囲まれた領域にメッシュが存在しないと判断された場合に、ループＬ内の最短線分を選択する（ステップＳ４０６）。そして、ループＬの節点から最大角度点を選択し（ステップＳ４０７）、三角形要素を生成する（ステップＳ４０８）。次に、新しいループが生成されたかどうかを判断する（ステップＳ４０９）。新しいループが生成された場合に、ステップＳ４０３に戻る。一方、ステップＳ４０９において、新しいループが生成されないと判断された場合に、ループＬの処理が終了したかどうかを判断する（ステップＳ４１０）。ループＬの処理が終了していない場合に、ステップＳ４０３に戻る。
【００６７】
一方、ステップＳ４１０において、ループＬの処理が終了したと判断された場合に、初期三角形メッシュに未チェックのループが存在するかどうかを判断する（ステップＳ４１１）。初期三角形メッシュに未チェックのループが存在した場合に、ステップＳ４０２に戻る。一方、ステップＳ４１１において、初期三角形メッシュに未チェックのループが存在しないと判断された場合に、三角形メッシュが完結する（ステップＳ４１２）。
＜２−５＞三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムの適用例
ここで、本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムを実際の三次元空間内の散乱点群に適用した三つの例を挙げることにする。なお、これらの例に用いるデータは、ウェブ上のメッシュデータから散乱点の座標データを抽出して利用したものである。
【００６８】
まず、第１例はモアイ像である。図３６は、モアイ像のモデルに対して、初期散乱点群から各点の最短距離にある点を結んでできる初期線分群を表したものである。ここで、初期散乱点の個数は１０,００２点である。図３７は、図３６に示されたモアイ像に対して、本発明の初期メッシュ生成アルゴリズムを適用した結果である。もし、本発明の初期メッシュ生成アルゴリズムを適用した段階で、交差が起きなければ、そこで三角形メッシュの生成は終わるはずである。
【００６９】
しかし、図３７及び図３７に示されたモアイ像の一部の拡大図である図３８に示されるように、本発明の初期メッシュ生成アルゴリズムを適用した段階で発生した交差によって、実際にはモアイ像に多くの穴が発生していることがよく分かる。そこで、こういった穴、つまり、ループへの対処アルゴリズムである、本発明のループ内三角形メッシュ生成アルゴリズムを適用すれば、図３９に示されるように、モアイ像の表面の復元は終了する。このとき、三角形要素数は２０,０１６個である。
【００７０】
次に、第２例は、図４０及び図４１に示されるスタンフォード・バニーである。図４０及び図４１においては、本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによって、三次元空間内の３５,９４７点の散乱点群から７１,９３９個の三角形要素が生成されているスタンフォード・バニーを示している。図４２に示したものは、図４０及び図４１に示されるスタンフォード・バニーの耳の内側からメッシュを見たものである。このような複雑な形状を持ったモデルに対しては、図４３のオリジナルのメッシュと比べても分かるように、右下に見られるような滑らかでないメッシュが発生してしまう可能性がまだ残っている。
【００７１】
最後に、挙げる第３例は、図４４及び図４５に示されるヴィーナス像である。図４４及び図４５においては、本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによって、三次元空間内の６７,１８０点の散乱点群から１３４,４９５個の三角形要素が生成されているヴィーナス像を示している。図４４及び図４５に示されるヴィーナス像を生成するのにかかった所要時間は、Pentium４（登録商標）、1.6ＧＨｚのマシンで約１時間である。
【００７２】
図４６は、オリジナルデータによるヴィーナス像の一部である口元周辺の拡大図である。但し、メッシュの見易さのため、内側から見た図になっている。それに対して、図４７は本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによって得られたものであり、図４６と同じ部分を表わしている。図４７からはヴィーナス像の口元の傷の部分も詳細に再構成されているのが見て取れる。また、図４６と図４７を三角形メッシュで表現したものは、それぞれ図４８と図４９になる。図４８に示されるように、オリジナルの三角形メッシュが幾分不均一であるのに対して、図４９に示されるように、本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによる生成された三角形メッシュは、均一的なものであることがよく分かる。
＜３＞本発明のまとめ
本発明は、二次元空間内または三次元空間内の与えられた散乱点群から高精度な三角形メッシュを構成するための最大角度法及びそれを用いた三角形メッシュ生成方法に関するものである。本発明とは、散乱点群に属する各散乱点から最短距離にある点を結び、その最短線分に対する最大角度点を探索して、三角形要素を構成するというシンプルな原理（つまり、最大角度法）を基にして、散乱点群から三角形メッシュを生成する方法である。
【００７３】
特に、本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成方法は、射影平面をまったく用いず、三次元空間内の複雑な曲面を直接構成するのに非常に好都合である。本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成方法では、メッシュの交差の解析を行うと共にトポロジー判断関数の導入によって交差が起きそうな部分を予め探知し、それを回避することができるようにし、また、トポロジー判断関数を用いることにより、生成した三角形の妥当性も判断できるようしている。さらに、本発明では、トポロジー判断関数を用いれば、シャープエッジやコーナーなどの鋭角的な部分の特徴をも再現することが可能になる。
【図面の簡単な説明】
【００７４】
【図１】本発明において、二次元空間における三角形要素交差の検討を行うための模式図である。
【図２】本発明において、二次元空間における三角形要素交差の検討を行うための模式図である。
【図３】本発明において、二次元空間における三角形要素交差の検討を行うための模式図である。
【図４】本発明において、ある線分に対して複数の最大角度点が存在するのを説明するための模式図である。
【図５】本発明に係る片側アルゴリズムのフローチャートである。
【図６】本発明に係る両側アルゴリズムにおいて、線分の両側にそれぞれ生成された三角形を説明するための模式図である。
【図７】本発明に係る両側アルゴリズムのフローチャートである。
【図８】従来のドロネー三角形分割法を説明するための模式図である。
【図９】従来のドロネー三角形分割法によって得られた三角形メッシュの性質を説明するための模式図である。
【図１０】従来のドロネー三角形分割法によって得られた三角形メッシュの性質を説明するための模式図である。
【図１１】本発明に係る片側アルゴリズムに用いられる初期平面散乱点群の一例を示す図である。
【図１２】本発明に係る片側アルゴリズムを図１１に示された散乱点群に適用した際に生成された初期線分を示す図である。
【図１３】本発明に係る片側アルゴリズムを図１１に示された散乱点群に適用した際の三角形メッシュ生成過程を示す図である。
【図１４】本発明に係る片側アルゴリズムを図１１に示された散乱点群に適用した際の三角形メッシュ生成過程を示す図である。
【図１５】本発明に係る片側アルゴリズムを図１１に示された散乱点群に適用した際の三角形メッシュ生成過程を示す図である。
【図１６】本発明に係る片側アルゴリズムを図１１に示された散乱点群に適用した際の三角形メッシュ生成過程を示す図である。
【図１７】図１１に示された散乱点群から本発明に係る片側アルゴリズムに基づいて生成された三角形メッシュを示す図である。
【図１８】本発明において、三次元空間における三角形要素交差のタイプを説明するための模式図である。
【図１９】本発明において、三次元空間における線分から最大角度法によって決まる領域を説明するための模式図である。
【図２０】本発明において、三次元空間における三角形要素の交差生成の原因を説明するための模式図である。
【図２１】本発明におけるトポロジー判断関数を説明するための模式図である。
【図２２】１つの共有辺を持つ二つの三角形の関係を説明するための模式図である。
【図２３】１つの共有点を持つ二つの三角形の関係を説明するための模式図である。
【図２４】本発明において、基準線分の中点を中心とする球の生成と平均法線ベクトルを説明するための模式図である。
【図２５】本発明に係る初期メッシュ生成アルゴリズムのフローチャートである。
【図２６】本発明に係る初期メッシュ生成アルゴリズムの段階で発生した折線ループを説明するための模式図である。
【図２７】折線ループ内部の三角形分割を説明するための模式図である。
【図２８】折線ループ内に一部のメッシュが存在する場合のループの三角形分割を説明するための模式図である。
【図２９】本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによって三次元空間内の散乱点群から生成された初期線分群を示す図である。
【図３０】本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムを三次元空間内の散乱点群に適用した際の三角形メッシュ生成過程を示す図である。
【図３１】本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムを三次元空間内の散乱点群に適用した際の三角形メッシュ生成過程を示す図である。
【図３２】本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムを三次元空間内の散乱点群に適用した際の三角形メッシュ生成過程を示す図である。
【図３３】本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムを三次元空間内の散乱点群に適用した際の三角形メッシュ生成過程を示す図である。
【図３４】図２９に示された初期線分群から本発明に係る三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムに基づいて生成された三角形メッシュを示す図である。
【図３５】本発明に係るループ内三角形メッシュ生成アルゴリズムのフローチャートである。
【図３６】三次元初期散乱点群から生成された初期線分群によって表されるモアイ像を示す図である。
【図３７】図３６に示されたモアイ像に対して、本発明に係る初期メッシュ生成アルゴリズムを適用した結果を示す図である。
【図３８】図３７に示されたモアイ像の一部の拡大図である。
【図３９】図３７に示されたモアイ像に対して、本発明に係るループ内三角形メッシュ生成アルゴリズムを適用した結果を示す図である。
【図４０】３５,９４７点の三次元初期散乱点群から本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによって生成された、７１,９３９個の三角形要素から構成される三角形メッシュによって表したスタンフォード・バニーを示す図である。
【図４１】３５,９４７点の三次元初期散乱点群から本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによって生成された、７１,９３９個の三角形要素から構成される三角形メッシュによって表したスタンフォード・バニーを示す図である。
【図４２】図４０及び図４１に示されるスタンフォード・バニーの耳の内側を表す、本発明によって生成された三角形メッシュを示す図である。
【図４３】スタンフォード・バニーのオリジナルの三角形メッシュを示す図である。
【図４４】６７,１８０点の三次元初期散乱点群から本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによって生成された、１３４,４９５個の三角形要素から構成される三角形メッシュによって表したヴィーナス像を示す図である。
【図４５】６７,１８０点の三次元初期散乱点群から本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによって生成された、１３４,４９５個の三角形要素から構成される三角形メッシュによって表したヴィーナス像を示す図である。
【図４６】オリジナルデータによるヴィーナス像の一部である口元周辺の拡大図である。
【図４７】本発明の三次元空間における最大角度法を用いた三角形メッシュ生成アルゴリズムによる、ヴィーナス像の一部である口元周辺の拡大図である。
【図４８】図４６に示されたヴィーナス像の一部である口元周辺のオリジナルの三角形メッシュを示す図である。
【図４９】図４７に示されたヴィーナス像の一部である口元周辺の本発明によって生成された三角形メッシュを示す図である。
【図１】
2005293021.tif 000007
【図２】
2005293021.tif 000008
【図３】
2005293021.tif 000009
【図４】
2005293021.tif 000010
【図５】
2005293021.tif 000011
【図６】
2005293021.tif 000012
【図７】
2005293021.tif 000013
【図８】
2005293021.tif 000014
【図９】
2005293021.tif 000015
【図１０】
2005293021.tif 000016
【図１１】
2005293021.tif 000017
【図１２】
2005293021.tif 000018
【図１３】
2005293021.tif 000019
【図１４】
2005293021.tif 000020
【図１５】
2005293021.tif 000021
【図１６】
2005293021.tif 000022
【図１７】
2005293021.tif 000023
【図１８】
2005293021.tif 000024
【図１９】
2005293021.tif 000025
【図２０】
2005293021.tif 000026
【図２１】
2005293021.tif 000027
【図２２】
2005293021.tif 000028
【図２３】
2005293021.tif 000029
【図２４】
2005293021.tif 000030
【図２５】
2005293021.tif 000031
【図２６】
2005293021.tif 000032
【図２７】
2005293021.tif 000033
【図２８】
2005293021.tif 000034
【図２９】
2005293021.tif 000035
【図３０】
2005293021.tif 000036
【図３１】
2005293021.tif 000037
【図３２】
2005293021.tif 000038
【図３３】
2005293021.tif 000039
【図３４】
2005293021.tif 000040
【図３５】
2005293021.tif 000041
【図３６】
2005293021.tif 000042
【図３７】
2005293021.tif 000043
【図３８】
2005293021.tif 000044
【図３９】
2005293021.tif 000045
【図４０】
2005293021.tif 000046
【図４１】
2005293021.tif 000047
【図４２】
2005293021.tif 000048
【図４３】
2005293021.tif 000049
【図４４】
2005293021.tif 000050
【図４５】
2005293021.tif 000051
【図４６】
2005293021.tif 000052
【図４７】
2005293021.tif 000053
【図４８】
2005293021.tif 000054
【図４９】
2005293021.tif 000055