(57)【要約】【課題】  真の沿面経路に収束する範囲の広い、高速な沿面経路探索技術を提供する。【解決手段】  各面が三角形のパッチで構成された多面体に設定された、始点と終点とを結ぶ沿面経路を探索する情報処理方法であって、前記始点と前記終点とを結ぶ初期経路を設定する設定工程と、前記初期経路に近接すると判断された、前記多面体の頂点のそれぞれについて、当該頂点を共有する前記パッチの展開図を作成し、当該展開図上での最短経路を第１近似解とする頂点探索工程と、前記第１近似解を１以上の単純経路に分解し、当該単純経路のそれぞれについて、当該単純経路が通過する前記パッチの展開図を作成し、当該展開図上での最短経路を第２近似解とする単純経路探索工程と、前記第２近似解が所定の条件を満たすまで、前記第２近似解を前記初期経路に設定して、前記頂点探索工程と、前記単純経路探索工程とを繰り返し実行するように制御する制御工程と、を備える。【選択図】  図１
2006309598.tif 000002
【特許請求の範囲】
【請求項１】
各面が三角形のパッチで構成された多面体に設定された、始点と終点とを結ぶ沿面経路を探索する情報処理方法であって、
前記始点と前記終点とを結ぶ初期経路を設定する設定工程と、
前記始点及び前記終点を除いた、前記初期経路上の、及び、当該初期経路に近接すると判断された、前記多面体の頂点のそれぞれについて、当該頂点を共有する前記パッチの展開図を作成し、当該展開図上での最短経路を探索し、探索して得られた経路を第１近似解とする頂点探索工程と、
前記第１近似解を、前記始点及び前記終点を除いた、前記第１近似解上の前記頂点に基づいて、１以上の単純経路に分解し、当該単純経路のそれぞれについて、当該単純経路が通過する前記パッチの展開図を作成し、当該展開図上での最短経路を探索し、探索して得られた経路を第２近似解とする単純経路探索工程と、
前記第２近似解が所定の条件を満たすまで、前記第２近似解を前記初期経路に設定して、前記頂点探索工程と、前記単純経路探索工程とを繰り返し実行するように制御する制御工程と、を備えることを特徴とする情報処理方法。
【請求項２】
前記頂点探索工程において、前記初期経路と前記パッチの稜線との交点と、当該稜線の端点としての前記頂点との距離の、当該稜線の長さに対する割合が所定の値に満たない場合、当該初期経路と当該頂点とは近接すると判断することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記頂点探索工程において、前記頂点を共有する前記パッチの展開図上において、
前記展開図上の外縁部と前記初期経路との２つの交点を両端とする、線分を前記展開図上に作成することが可能な場合は、当該線分に対応する経路を、可能でない場合は、該交点のうち一方と前記頂点とを両端とする線分と、前記頂点と外交点のうち他方とを両端とする線分とから構成される折れ線に対応する経路を、それぞれ前記展開図上の最短経路とすることを特徴とする請求項１又は２に記載の情報処理方法。
【請求項４】
単純経路探索工程において、前記頂点を共有する前記パッチの展開図上において、
前記展開図上の外縁部と前記第１近似解との２つの交点を両端とする、線分を前記展開図上に作成することが可能な場合は、当該線分に対応する経路を、可能でない場合は、該２つの交点を両端に持つ線分列であって、前記パッチの前記頂点を結ぶ線分列のうち、最も経路長が短いものを、それぞれ前記展開図上の最短経路とすることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理方法。
【請求項５】
前記設定工程は、前記多面体の形状についての形状情報に基づいてノード及びアークから構成されるグラフ構造を生成し、前記始点に対応する該ノードと、前記終点に対応する該ノードと、を最短の距離で結ぶ最短経路を導出する導出工程を更に備え、
前記初期経路は、導出された前記最短経路として設定されることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理方法。
【請求項６】
前記初期経路は、前記設定工程において複数取得され、
複数の前記初期経路それぞれについて、前記頂点探索工程及び前記単純経路探索工程を制御工程における制御に基づいて繰り返し実行し、取得された前記第２近似解のうち最良のものを前記沿面経路の第２近似解として取得することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理方法。
【請求項７】
前記形状情報に基づいてノード及びアークから構成されるグラフ構造を生成し、前記始点に対応する該ノードと、前記終点に対応する該ノードと、を結ぶ経路のうち、最短のものから所定数の経路を導出する導出工程を更に備え、
前記複数の初期経路情報は、導出された前記経路にそれぞれ対応する情報として取得されることを特徴とする請求項６に記載の情報処理方法。
【請求項８】
前記所定の条件は、前記頂点探索工程における前記初期経路と、当該初期経路に基づいて前記頂点探索工程及び前記単純経路探索工程を行った結果得られた前記第２近似解と、を比較して、その改善値が所定に閾値以下である場合に、満たされていると判断することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理方法。
【請求項９】
各面が三角形のパッチで構成された多面体に設定された、始点と終点とを結ぶ沿面経路を探索する情報処理装置であって、
前記始点と前記終点とを結ぶ初期経路を設定する設定手段と、
前記始点及び前記終点を除いた、前記初期経路上の、及び、当該初期経路に近接すると判断された、前記多面体の頂点のそれぞれについて、当該頂点を共有する前記パッチの展開図を作成し、当該展開図上での最短経路を探索し、探索して得られた経路を第１近似解とする頂点探索手段と、
前記第１近似解を、前記始点及び前記終点を除いた、前記第１近似解上の前記頂点に基づいて、１以上の単純経路に分解し、当該単純経路のそれぞれについて、当該単純経路が通過する前記パッチの展開図を作成し、当該展開図上での最短経路を探索し、探索して得られた経路を第２近似解とする単純経路探索手段と、
前記第２近似解が所定の条件を満たすまで、前記第２近似解を前記初期経路に設定して、前記頂点探索手段における処理と、前記単純経路探索手段における処理とを繰り返し実行するように制御する制御手段と、を備えることを特徴とする情報処理装置。
【請求項１０】
請求項１乃至８のいずれか１項に記載の情報処理方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は多面体表面の沿面経路を探索する技術に関する。
【背景技術】
【０００２】
製品設計などの過程で、製品の形状情報に基づいた処理として、製品表面に沿った二点間の最短距離（沿面距離と呼ぶ）を算出することがしばしば必要となる。そのような処理が必要な具体的な例として、製品の絶縁検証がある。絶縁検証とは製品上の各電気回路間に規格で定められた十分な絶縁距離が確保されているかを検証する作業のことである。このような検証を行うためには製品表面に沿った部品間の最短経路、即ち、沿面経路を算出する必要がある。
【０００３】
多面体上の沿面経路を求めるアルゴリズムは、計算幾何学の分野で数多くの研究がなされている。そのような沿面経路を求めるアルゴリズムには厳密な解を求めるものと近似的な解を高速に求めるものがある。
【０００４】
厳密な解を求めるアルゴリズムは一般に解の算出に時間がかかり、製品組立品等の製品形状の複雑度が高い立体表面に対して適用しても現実的な時間で沿面経路を求めることは難しい。
【０００５】
従来より、現実的な時間で近似解を求める方法として以下の技術が知られている。
【０００６】
非特許文献１には、多面体表面に沿った経路モデルを離散的な重み付きグラフを使って近似的に表現し、その最短経路を求めることにより近似的な沿面経路を求める手法が開示されている。更に、沿面経路の近似解を厳密解に近づけるために、いったん求めた経路の近辺により詳細なグラフを作成し、そのグラフにおける最短経路を求めるという処理を、経路の改善値が所定の閾値以下になるまで繰り返す手法も開示されている。
【０００７】
非特許文献２においても、経路を近似した重み付きグラフの探索により沿面経路の近似解を求め、経路の近似解を厳密解に近づける手法が開示されている。非特許文献２に開示された手法は、経路の精度を向上する手法が非特許文献１に開示された手法と異なる。非特許文献２では、経路が通過する連続した三角形パッチ内の最短経路を求めることにより経路の精度を上げる手法が開示されている。ただし、この文献には、その具体的な手順については開示されていない。
【０００８】
非特許文献３においても、経路を近似した重み付きグラフの探索により沿面経路の近似解を求め、経路の近似解を厳密解に近づける手法が開示されている。非特許文献３では、経路の精度を向上するために、経路と、多面体の稜線又は頂点とが交差する、通過点ごとの局所的な展開面を利用することにより経路の精度を向上する。具体的には、通過点が存在する多面体のパッチを二次元上に展開して、この局所的な展開面上でのショートカット（最短経路）を求め、元の経路の展開面上の部分経路を、ショートカットに置き換えることにより、より短い沿面経路を得る手法が開示されている。この処理を通過点毎に繰り返し行うことにより非特許文献１や非特許文献２の手法では見つけることのできないより厳密解に近い沿面経路の近似値を見つけることができる。
【非特許文献１】Ｔ．Ｋａｎａｉ  ａｎｄ  Ｈ．  Ｓｕｚｕｋｉ，  ”Ａｐｐｒｏｘｉｍａｔｅ  ｓｈｏｒｔｅｓｔ  ｐａｔｈ  ｏｎ  ａ  ｐｏｌｙｈｅｄｅｒａｌ  ｓｕｒｆａｃｅ  ａｎｄ  ｉｔｓ  ａｐｐｌｉｃａｔｉｏｎ，”  Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ，  ｖｏｌ．  ３３，  ｐｐ．  ８０１−８１１，  ２００１．
【非特許文献２】Ｍ．  Ｌａｎｔｈｉｅｒ，  Ａ．  Ｍａｈｅｓｈｗａｒｉ，  ａｎｄ  Ｊ．−Ｒ．  Ｓａｃｋ，  ”Ａｐｐｒｏｘｉｍａｔｉｎｇ  Ｗｅｉｇｈｔｅｄ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈｓ  ｏｎ  Ｐｏｌｙｈｅｄｒａｌ  Ｓｕｒｆａｃｅ，”  ｐｒｅｓｅｎｔｅｄ  ａｔ  Ｓｉｘｔｈ  ＡＣＭ  ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｇｅｏｍｅｔｒｙ，  １９９７．
【非特許文献３】Ｍ．Ｋａｇｅｕｒａ  ａｎｄ  Ｋ．Ｓｈｉｍａｄａ，”  Ｆｉｎｄｉｎｇ  Ｔｈｅ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  ｆｏｒ  Ｑｕａｌｉｔｙ  Ａｓｓｕｒａｎｃｅ  ｏｆ  Ｅｌｅｃｔｒｉｃ  Ｃｏｍｐｏｎｅｎｔｓ，”  ｐｒｅｓｅｎｔｅｄ  ａｔ  ＡＳＭＥ  ＤＥＴＣ２００２／ＤＡＣ−３４１１７．
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら従来の手法では、重み付きグラフにおける最短経路が本来の沿面距離と十分近くないとき、精度の高い経路を得にくいという共通の問題があった。
【００１０】
非特許文献１に開示された手法では、経路の改善手法として、既に得られた経路の周囲に詳細な重み付きグラフを作成してその最短経路を得ることにより、より精度の高い経路を求めるというプロセスを繰り返すが、図２２、図２３のように初期の重み付きグラフを探索して得られた最短経路が本来の沿面経路と大きくはずれている場合、真の沿面経路に収束しない、或いは、精度のよい沿面経路を得られないことがあった。
【００１１】
非特許文献２に開示された手法では、経路の改善手法として、経路が通過する連続した三角形パッチ内の最短経路を求めることにより経路の精度を上げているが、初期の重み付きグラフにおける最短経路が通過する三角形パッチ列を本来の沿面経路が通過しない場合、真の沿面経路に収束しない、或いは、精度のよい沿面経路を得られないことがあった。  非特許文献３に開示された手法では、経路の改善手法として、非特許文献１に開示されたグラフの詳細化による経路の改善手法に加えて、経路と、多面体の稜線又は頂点とが交差する通過点ごとの局所的な展開面を利用することにより経路の精度を上げている。この手法によれば、非特許文献１、非特許文献２に開示された手法に比べて、本来の沿面経路に収束する範囲を広げることができるが、多面体のメッシュ形状によっては収束性が非常に遅くなるという問題があった。また、図２３のように、初期の重み付きグラフにおける最短経路が沿面経路から大きく外れている場合は、依然として、真の沿面経路に収束しない、或いは、精度のよい沿面経路を得られないことがあった。
【００１２】
本発明は上記問題に鑑みなされたものであり、真の沿面経路に収束する範囲の広い、高速な沿面経路探索技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明による情報処理方法は以下の構成を備える。即ち、
各面が三角形のパッチで構成された多面体に設定された、始点と終点とを結ぶ沿面経路を探索する情報処理方法であって、
前記始点と前記終点とを結ぶ初期経路を設定する設定工程と、
前記始点及び前記終点を除いた、前記初期経路上の、及び、当該初期経路に近接すると判断された、前記多面体の頂点のそれぞれについて、当該頂点を共有する前記パッチの展開図を作成し、当該展開図上での最短経路を探索し、探索して得られた経路を第１近似解とする頂点探索工程と、
前記第１近似解を、前記始点及び前記終点を除いた、前記第１近似解上の前記頂点に基づいて、１以上の単純経路に分解し、当該単純経路のそれぞれについて、当該単純経路が通過する前記パッチの展開図を作成し、当該展開図上での最短経路を探索し、探索して得られた経路を第２近似解とする単純経路探索工程と、
前記第２近似解が所定の条件を満たすまで、前記第２近似解を前記初期経路に設定して、前記頂点探索工程と、前記単純経路探索工程とを繰り返し実行するように制御する制御工程と、を備える。
【発明の効果】
【００１４】
本発明によれば、真の沿面経路に収束する範囲の広い、高速な沿面経路探索技術を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。本発明の主旨の範囲において適宜、変形組み合わせが可能であることはいうまでもない。
【００１６】
本実施形態では、例えば、図９のような部品等の、多面体の表面を通る最短経路、いわゆる沿面距離を探索する処理について説明する。図９は、多面体の一例として、部品の形状に基づいて作成された多面体を例示的に示した図である。多面体の一例として、部品の形状に基づいて作成された多面体を例示的に示した図である。ここで、各多面体形状は三角形メッシュで表現されている三角形多面体（または三角形メッシュモデル）であるとする。つまり、構成面はすべて三角形パッチであり、各三角形パッチ間の隣接情報や各三角形パッチの頂点の位置情報（座標情報等）は予め情報処理装置に入力されており、所定の記憶手段に記憶されているものとする。各三角形パッチの稜線は二つのパッチにより共有されているので、隣接情報が設定されていれば、稜線を指定することによりその稜線を共有する、互いに隣り合う三角形パッチを同定することができる。また、三角形パッチの頂点も、その頂点を含む三角形パッチ間で共有されている。
【００１７】
一般に構成面（立体の表面）の形状は、平面、円筒面、球面、円錐面、トーラス面、Ｃｏｏｎｓ曲面、Ｂｅｚｉｅｒ曲面、Ｒａｔｉｏｎａｌ  Ｂｅｚｉｅｒ曲面、Ｂ−Ｓｐｌｉｎｅ曲面、ＮＵＲＢＳ曲面、などの自由曲面等の幾何形状および、その幾何形状が表現する領域のうちどの部分が構成面になっているかを表現するループ情報などの境界情報より表現される。しかし、構成面を、上記のような曲面を含む構成面として表現するよりも、三角形多面体として表現した方が、形状の表現及びそれについての処理の負荷が小さい。このため、本実施形態では、例示的に三角形多面体上の沿面経路を探索する手法について述べる。
【００１８】
ただし、多面体の各構成面は多角形となるが、図１０のように多角形は三角形に分割することができるので、各構成面である多角形を分割してすべての構成面を三角形パッチに変換することにより三角形多面体に変換することができる。図１０は、多角形を三角形に分割する様子を例示的に示した図である。従って、多面体であればどのような立体形状に対しても本実施形態の手法が適用可能である。また、曲面等を含む構成面からなる立体も、その構成面の形状を多面体に近似した後、三角形多面体に変換することにより、図１１のように曲面モデルを三角形多面体に変換することができる。実際、市販の３Ｄ  ＣＡＤの多くはＶＲＭＬやＳＴＬなどの形式の近似多面体を出力することができる。従って、曲面モデルに対しても本実施形態の手法により近似的な沿面経路を求めることが可能となる。
【００１９】
＜情報処理装置の構成＞
まず、本実施形態で説明する処理を実行する情報処理装置の構成について説明する。情報処理装置は、例えば、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）、携帯情報端末（ＰＤＡ）等で実現される。
【００２０】
図２は、沿面経路を算出する処理を実行する情報処理装置の構成の一例を示したブロック図である。図２のように、情報処理装置は、装置内のデータ及びネットワーク（不図示）を介して接続されている外部装置（不図示）とのやりとりを行うデータバス１、装置全体の動作を制御し所定の処理を実行するＣＰＵ２、処理を行う手順を記述した処理プログラム３ａを含む情報を記憶した、読み出し専用メモリとしてのＲＯＭ３、処理対象のデータ等を一時的に保持し、ワーキングメモリとしての高速な記憶装置であるＲＡＭ４（例えば、図形要素を格納する図形要素格納領域４ａ、図形の属性情報を格納する属性情報領域４ｂ、図形の検索条件を格納する検索条件領域４ｃを含む）、キーボード、ポインティングデバイス（マウス）等の入力装置６、及び、その入力インタフェース５、ＣＲＴや液晶ディスプレイ等の表示装置８ａやプリンタ、プロッタ等の記録装置を含む出力装置８ｂに代表される表示・出力装置８、及び、その出力インタフェース７、処理の対象および結果となるデータを格納、保存するハードディスク等の記憶装置１０、及び、その外部記憶装置インタフェース９等を備えている。尚、記憶装置１０は、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等の記憶装置によって構成されてもよい。また、処理プログラム３ａは、基本Ｉ／Ｏプログラム等のプログラム等のアプリケーションに依存しない基本的なプログラムとして構成してもよいし、オペレーティングシステムや、或いは、多角形の沿面経路を探索する処理の手続きが記載されたプログラムとしてもよい。
【００２１】
始・終点の設定等、ユーザの必要な指示は、入力装置６を介して行われ、途中の処理状況や最終的な結果の通知・出力は出力装置７を介して行われる。処理上必要なデータは、例えば、ネットワーク上の外部装置からデータバス１を介して、或いは、入力装置６から入力インタフェース５を介して、或いは、記憶装置１０から外部記憶装置インターフェース９を介して、ＲＡＭ４に入力・格納される。ＣＰＵ１は、ＲＯＭ３に格納された処理プログラム３ａの手順に基づいて、ＲＡＭ４に格納されたデータを用いて所定の処理を行う。処理の段階に応じて、一時的に必要とされたデータや、出力されたデータは、ＲＡＭ４や記憶装置１０から読み出したり、格納したりする。本実施形態においては、最終的な出力（処理結果）を、データバス１を通じてネットワーク上の外部装置（サーバ）に送出するものとする。
【００２２】
処理対象の三角形多面体などの図形データやその属性データ等、処理をするにあたって必要なデータは、記憶装置１０に事前に格納されており、処理を実行する上で必要なときに、ＣＰＵ１の制御に基づいて、インタフェース９及びバス１を介してＲＡＭ４に送出・格納され、ＣＰＵ１により取り出されて所定の処理に用いられる。本実施形態における沿面経路探索処理の手順を示すプログラムはＲＯＭ３または記憶装置１０に格納されている。以下、記憶装置１０に格納されているものとして説明する。
【００２３】
記憶装置１０に格納されているプログラムは必要により処理データ同様インタフェース９、データバス１を経由してＲＡＭ４に格納され、ＣＰＵ２が参照して所定の処理が行われる。ＲＯＭ３に格納されている処理プログラム３ａも同様にバス１を通じてＣＰＵ２に送出され処理が行われる。上記でも説明したように始・終点の設定や初期パスの数Ｋ、閾値など処理をする上でユーザが入力、指示する必要のあるもの（これらについては後述する）は、キーボード、マウス等の入力装置６およびその入力インタフェース５、データバス１を経由してＣＰＵ２に供給され、後の処理でも必要なものはＲＡＭ４等に保存される。図形データや沿面経路などの結果を示すグラフイックデータは、モニタやプリンタなど表示装置８で表示できるデータにＣＰＵ２の制御に基づいて変換、処理され、出力インタフェース７を通り表示装置８に表示される。
【００２４】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【００２５】
＜沿面経路探索処理の概要＞
次に、本実施形態において情報処理装置が実行する、多面体の沿面経路を探索する処理（以下、沿面経路探索処理と呼ぶ）の、概要について説明する。図１は本実施形態における沿面経路探索処理の主要な処理の流れを示したフローチャートである。
【００２６】
図１のように、本実施形態における沿面経路探索処理は、最適化を行うための初期経路を探索する処理（初期経路の探索処理）１０１と、初期経路を最適化する処理（経路の最適化処理）１０２とから構成される。初期経路の探索処理１０１は、物体表面上に重みつきグラフを作成するステップＳ１と、重みつきグラフの最短経路を取得するステップＳ２とから構成される。経路の最適化処理１０２は、各頂点通過点回りの局所的最適化を行うステップＳ３と、各単純経路での局所的最適化を行うステップＳ４と、沿面経路の解析を更に継続するか否か判定するステップＳ５とから構成される。
【００２７】
各ステップの処理の詳細について説明する前に、具体例を挙げて処理の概要を説明する。まず、処理対象の多面体の一例として、立方体について沿面経路探索処理を実行した場合について述べる。図３は、処理対象の多面体の一例である立方体上に重み付きグラフを作成した様子を示した図である。
【００２８】
ステップＳ１においては、多面体の形状に対応した重み付きグラフを作成する。図３のように、三角形多面体（立方体）の稜線上に内挿点を設定し、この内挿点と各頂点をグラフのノード（節点）とする。内挿点の決定方法は後述するが、図３の例では、各稜線の中点に内挿点を設定している。また、内挿点は、処理の途中で新たに稜線上に定義される場合もあり得る。そして、各ノードを結ぶ線分をアーク（リンク、エッジ、枝）、ノード間の距離、即ち、アークの長さをそのアークの重みとする。グラフのノードには、沿面経路の始点と終点とが含まれるようにする。
【００２９】
次に、ステップＳ２では、経路探索アルゴリズムを用いて始点と終点を結ぶ経路のうち、重みの合計が最小になる経路を求める。経路探索アルゴリズムはどのようなものを用いてもよい。本実施形態においては、公知のアルゴリズムの何れかを用いるものとする。ステップＳ２で得られる経路を初期経路と呼ぶ。
【００３０】
次に、ステップＳ３では、初期経路上が通過する、又は、近辺を通過する各頂点に着目し、その頂点回りの部分経路に対して、現在の部分経路より短い経路（ショートカットと呼ぶ）が存在しないか探索する。具体的には、注目する頂点の周囲における多面体の展開図を求め、その展開図上でショートカットを探索する。ショートカットが存在する場合はその経路を新たな経路とすることで局所的に経路の最適化を行う。この処理により、初期経路が横切る稜線列とは異なる稜線列を横切る経路を得ることができる。
【００３１】
次に、ステップＳ４では、経路を単純経路に分解して、各単純経路での最適化を図る（単純最短経路を求める）。ここで単純経路とは、（三角形）多面体の頂点を両端とする部分経路である。単純経路は両端点以外は内挿点のみを通過する。また、経路が通過する多面体の頂点を頂点通過点と呼ぶ。両端点以外に頂点通過点を通過し、複数の単純経路に分割可能な経路を複合経路と呼ぶ。複合経路は、頂点通過点と、多面体上の稜線とを通過する。予め定義された内挿点に加えて、経路と稜線とが交わる交点をも内挿点と呼ぶ。経路が通過する稜線上の内挿点を内挿通過点と呼ぶ。
【００３２】
ステップＳ４において、複合経路を単純経路に分解するときには、複合経路が通過する頂点（頂点通過点）と、稜線との交点である内挿点（内挿通過点）と、の順列である稜線列を求める必要がある。稜線列は、通過点が頂点通過点のときは対応する頂点をそのまま取り出して稜線列に加え、通過点が内挿点のときは直前の通過点がその内挿点と同一の稜線にない場合だけ、その内挿点の存在する稜線上の内挿通過点を稜線列に加えるという手順で求めることができる。
【００３３】
ステップＳ３，Ｓ４の処理の概要について、図４（ａ）乃至図４（ｅ）を参照して説明する。図４は、ステップＳ３の処理（各頂点通過点回りの局所的最適化），及び、Ｓ４の処理（各単純経路での局所的最適化）によって経路が改善されていく様子を模式的に示した図である。但し、図４の例は、図３に例示した沿面経路探索処理とは関係がない。
【００３４】
図４（ａ）では、ステップＳ１及びＳ２の処理によって取得された、ある重み付きグラフの探索結果の初期経路の例を示している。この経路は、図４に示すように始・終点以外に頂点通過点Ｙ１，Ｙ２および内挿通過点Ｘ１〜Ｘ７を通る。図４（ｂ）は、図４（ａ）に例示した初期経路に対して、ステップＳ３の処理、即ち、頂点回りの経路の局所的改善が行われた結果を示している。図４（ｂ）の例では、Ｙ１、Ｙ２の頂点回りに経路の改善が行われ、Ｙ１がなくなり内挿通過点Ｘ８が新たに挿入されている。この例では、Ｙ２の頂点回りにはショートカットが存在しなかったものとする。
【００３５】
図４（ｃ）（ｄ）（ｅ）は、図４（ｂ）の経路に対してステップＳ４の処理を施すことで、経路が変化していく様子を示している。図４（ｃ）は、図４（ｂ）の複合経路を単純経路に分解した結果を示す。図４（ｄ）は、図４（ｃ）で示された各単純経路Ｅ１、Ｅ２のそれぞれに対して、最適化処理を行った結果得られた経路（Ｅ１’、Ｅ２’）を示している。ここでは、各内挿通過点の更新、削除、新たな頂点、内挿通過点の挿入などが行われている。図４（ｅ）は図４（ｄ）で最適化された経路Ｅ１’，Ｅ２’を統合した結果を示している。
【００３６】
図５は、ステップＳ３における頂点回りの経路の最適化処理と、ステップＳ４における単純経路の最適化処理とが、多面体の展開図上でどのように進行していくかを模式的に示した図である。
【００３７】
図５（ａ）は、ステップＳ３において実行する、頂点Ｙ回りの局所的な経路の改善の様子を示している。図５（ａ）のように、頂点回りの三角形パッチの展開図を作成し、始点と終点を結ぶより短い経路（図５（ａ）の例では、始点と終点を結ぶ線分）を導出している。
【００３８】
図５（ｂ）は、ステップＳ４において実行する、単純経路が横切る稜線列（単純稜線列と呼ぶ）に沿って通過するパッチ（単純通過パッチ列と呼ぶ）を平面上に展開した展開図を作成し、その展開図上で最短経路を探索する様子を示している。
【００３９】
このように、ステップＳ３における各頂点通過点回りの局所的最適化処理も、ステップＳ４における各単純経路での局所的最適化処理も、改善したい経路のある部分経路が通過するパッチの局所的な展開面を作成し、その部分経路の展開面上での最短経路を探索して、求めた展開面上の最短経路を元の多面体上の部分経路として復元するというプロセスを行う。経路の最適化処理１０２においては、このような処理を繰り返し実行することで経路の最適性を上げていく（より短い経路を求める）ことができる。
【００４０】
詳細は後述するが、ステップＳ３、Ｓ４による経路の最適化はおおむね以上のように進行する。上記のように、本実施形態においては、初期経路を離散的な手法である、重み付きグラフを用いて経路を探索するため、計算時間が短く記憶容量をあまり必要としない。
【００４１】
ステップＳ５ではステップＳ３、Ｓ４の、沿面経路の解析を更に継続するか否かを判定する。この判定は、例えば、ステップＳ３，Ｓ４で最適化された経路の経路長と、最適化される前の経路長を比較して、改善値が所定の閾値以下であるか否かを判定することにより行う。判定方法としてこのような方法を採用した構成においては、経路長が所定の閾値の場合（ステップＳ５でＹＥＳ）は経路を探索するのを終了し、その時点における経路を沿面経路として出力する。改善値が所定の閾値を超えている場合（ステップＳ５でＮＯ）は、ステップＳ３に戻り経路の最適化を繰り返す。
【００４２】
＜沿面経路探索の例＞
次に、上記の沿面経路探索処理を立方体の２頂点間の沿面経路探索に適用した例について図６を参照して説明する。図６（ａ）乃至図６（ｃ）は、上記手法により立方体上の経路に関して沿面経路を求める例を示した図である。
【００４３】
図６（ａ）は、ステップＳ１及びＳ２の処理により、面上に作成した重み付きグラフを探索して初期経路を得た様子を示している。図のように、始点から、内挿通過点Ｉ１、頂点Ｖ、内挿通過点Ｉ２を通って終点に到達する経路が探索されている。
【００４４】
図６（ｂ）は、ステップＳ３の処理により、初期経路が通過する頂点Ｖの回りに形成されている三角パッチＴ２、Ｔ３、Ｔ４，Ｔ５を展開し、この展開面を利用して内挿通過点Ｉ１から終点までの最短経路を探索することによって経路の改善を行っている様子を示している。図６（ｂ）に示した例の場合、三角パッチＴ２と三角パッチＴ３とが共有する辺と新たに探索された最短経路とが交差する点に新たな内挿通過点Ｉ３が、また、三角パッチＴ３と三角パッチＴ４とが共有する辺と新たに探索された最短経路とが交差する点に新たな内挿通過点Ｉ４が形成されている。図６（ｂ）に示されるように、新たに探索された最短経路は、新たな内挿通過点Ｉ３，Ｉ４を通りＶを通らない経路として得られている。この例の場合、始点から終点を結ぶ経路が始点や終点を除いて頂点を経路中に含まない、単純経路となっているので経路の分解を更に行う必要はない。
【００４５】
図６（ｃ）は、ステップＳ４の処理により、ステップＳ３において新たに探索された経路の横切る単純通過パッチ列Ｔ１，Ｔ２，Ｔ３，Ｔ４を平面上に展開して、展開面上でこの単純通過パッチ列の内部を通る最短経路を得て更なる最短経路を得る様子を示している。ここでは、三角パッチＴ１と三角パッチＴ２とが共有する辺と更なる最短経路との交差点をＩ１’、更なる最短経路と三角パッチＴ２と三角パッチＴ３とが共有する辺との交点をＩ３’、三角パッチＴ３と三角パッチＴ４とが共有する辺との交点をＩ４’としている。つまり、内挿通過点Ｉ１、Ｉ３，Ｉ４をそれぞれ更新したＩ１’，Ｉ２’，Ｉ３’，Ｉ４’を得ている。
【００４６】
本例の場合は図６（ｃ）の実線で示した経路が沿面経路となっている。
【００４７】
上記のように構成したことで、探索の初期経路が横切る稜線列と異なる稜線列を横切る経路に最適化でき、しかも二次元の展開面を基に最適化を行うので安定的に高速な計算が行うことができる。
【００４８】
＜初期経路を複数取った構成＞
上記の処理では、初期経路として重み付きグラフの最短経路をとっていたが、三角形パッチの形状によっては、真の最短経路（沿面経路）を得られないことがある。図７は、重み付きグラフの最短経路を初期経路とした場合に真の沿面経路が得られない場合を例示した図である。
【００４９】
図７においては、経路Ａがグラフにおける最短経路になっているが、この経路を初期経路とすると真の沿面経路を導くことができない（初期経路をＢとすると真の沿面経路に収束する）。このような問題は、十分に内挿点を挿入することにより、回避できる可能性があるが、内挿点の増加は必要とする記憶容量および計算時間を著しく増加させてしまうので望ましくない。
【００５０】
本実施形態ではこの問題に対処するために、初期経路として重み付きグラフの経路を短い順に所定の数Ｋだけとれるようにしている。図８は、このように初期経路を複数とったときの最短経路を求める処理のフローチャートである。
【００５１】
Ｋは、例えば、入力装置６を介してユーザが指定したり、或いは、多角形の形状等に基づいて情報処理装置が自動的に決定するものとする。
【００５２】
ステップＳ８１では、今までの処理と同様に物体の表面上に経路モデルを近似する重み付きグラフを作成する。次に、ステップＳ８２では、重み付きグラフの経路のうち短い順に所定の数Ｋだけ探索する。経路探索は、例えば、既存の経路探索アルゴリズムを用いるものとする。探索した経路はＲＡＭ４等の記憶装置に一時的に保持する。
【００５３】
次に、ステップＳ８３では探索処理の初期化としてグラフのインデックス番号を示す変数Ｉを１に初期化する。以下、上記で取り出したＫ個の重み付きグラフの最短経路それぞれについてステップＳ８４からステップＳ８９までの処理を行い、沿面経路を探索する。なお、変数Ｉは、ＲＡＭ４等の記憶装置に一時的に保持する。
【００５４】
ステップＳ８４ではＩ番目の重み付きグラフに対応する最短経路を最適化の初期経路として取り出す。次に、ステップＳ８５では図１のステップＳ３−Ｓ５と同様の処理でグラフから取り出した経路を初期経路として最適化を図る。この最適化した結果が、１〜（Ｉ−１）番目の最短経路を初期経路として得られた、沿面経路の近似解より短い経路であるとステップＳ８６で判断されれば（ステップＳ８６でＹＥＳ）ステップＳ８７において沿面経路を更新する。即ち、現時点における最良の近似解を、ＲＡＭ４等の記憶装置に一時的に保持する。沿面経路の近似解が改善されなければ（ステップＳ８６でＮＯ）ステップＳ８８へ進む。
【００５５】
ステップＳ８８では現在の初期経路番号がＫであるかどうか判定して、Ｋであれば（ステップＳ８８でＹＥＳ）最初に取り出した初期経路すべてに対して探索を行ったことに相当するため処理を終了する。ＩがＫ未満ならば（ステップＳ８８でＮＯ）、まだ探索すべき初期経路があるので、ステップＳ８９において初期経路番号Ｉをインクリメントし、ステップＳ８４に戻る。
【００５６】
このように、Ｋ個の各初期経路に対してステップＳ８４からステップＳ８７までの最適化処理を繰り返すことにより、一つの初期経路を最適化するより、より真の沿面経路に近い経路を取得することができる。また、初期経路を複数とることにより、単一の複数経路を最適化するだけでは得られない、より大域的に最適な沿面経路を得ることができる。また、複数の初期経路を重み付きグラフ上の探索結果に基づいて選択することにより、大域的な最適解に収束する可能性の高い複数の経路を効率よく求めることができる。
【００５７】
以上で本実施形態の概要の説明を終わり、図１のステップＳ１からステップＳ５の各手順について、より詳細な説明を行う。
【００５８】
＜重み付きグラフ作成処理＞
最初にステップＳ１の物体表面上の重み付きグラフ作成処理について説明する。この処理により図３のように物体表面上に物体表面の経路モデルを近似する重み付きグラフを作成する（図３中太い実戦で表された経路）。なお、上記のように物体表面形状は三角形多面体で表現されているものとする。
【００５９】
この重み付きグラフを作成するためにまず物体表面形状の各稜線に内挿点を挿入する。この内挿点および三角形多面体の頂点が重み付きグラフのノードとなる。内挿点は均一なグラフを作成するために各稜線上に一定の間隔になるように配置することが望ましい。例えば内挿点を挿入する稜線の長さをｌ、内挿点の基準配置間隔をｄとすると、
ｍ＝ｃｅｉｌ（１／ｄ）−１
としたときｍ個の内挿点を稜線上で等間隔になるように配置する。ただし、ｃｅｉｌ（ｘ）はｘ以上の最小の整数を返す関数である。ｄは、例えば、入力装置６を介してユーザが指定したり、或いは、多角形の形状、三角形パッチの大きさの全体における大きさに対する比率等に基づいて情報処理装置が自動的に決定するものとする。
【００６０】
グラフのアークは図１２のように、三角形多面体を構成する三角形パッチごとに次の規則でノードを結んで作成する。
（１）  同一稜線上の隣り合うノード間にアーク（稜線アークと呼ぶ）を作成する。
（２）  同一稜線上にないノード間にアーク（面上アークと呼ぶ）を作成する。
またアークの重みはアークの端点となるノード間の距離とする。
【００６１】
＜グラフの最短経路探索処理＞
ステップＳ１で重み付きグラフが作成されたら、ステップＳ２で重み付きグラフの最短経路探索を行う。即ち、経路探索アルゴリズムを用いて始点と終点を結ぶ経路のうち、重みの合計が最小になる経路を求める。経路探索アルゴリズムはどのようなものを用いてもよい。本実施形態においては、公知のアルゴリズムの何れかを用いるものとする。
【００６２】
＜頂点通過点に着目した局所的最適化処理＞
ステップＳ１、Ｓ２で最適化を行うための初期経路が得られたら、次にステップＳ３、Ｓ４でその最適化を行う。
【００６３】
ステップＳ３では、上述のように経路の各頂点通過点、又は、多面体頂点に近接する内挿通過点において、図５（ａ）のような頂点回りの多面体の展開面を作ることによりこの展開面内を通過するショートカットを探索して最適化を図る。ここで内挿通過点が頂点に近接しているかどうかの判定は、内挿通過点の存在する稜線の長さをｌ、内挿通過点と稜線の端点の頂点との距離をｄ、所定の誤差比率をｅｐｓとしたとき、
ｄ／ｌ＜ｅｐｓ
なら近接していると判定する。ただし、誤差比率ｅｐｓは、例えば、入力装置６を介してユーザが指定したり、或いは、予め情報処理装置に設定されているものとする。
【００６４】
頂点通過点だけでなく、頂点に近接する内挿通過点についても、頂点回りの最適化を行う理由は、頂点通過点についてのみ最適化を行ったのでは、ショートカットがあるのに見つけられない場合があるからである。図１３は、頂点通過点についてのみ最適化を行ったのでは、ショートカットを発見できない場合を例示的に示した図である。図１３では、部分経路が頂点通過点を通過しないため、頂点通過点についてのみ最適化を行ったのでは、ショートカットを発見することができない。
【００６５】
このように構成することで、経路の通過点に近接する多面体の頂点を数値的な誤差を考慮して、多面体の大きさによらず統一的な基準で探索することができ、誤差を考慮しないと見つけられないような頂点回りの経路の改善が行われる、または経路の改善が行われる可能性のある頂点の回りだけで経路の改善を行うため計算の効率がよい。
【００６６】
頂点通過点に着目した局所的最適化処理の詳細について、図１４乃至１７を参照して説明する。図１４は、頂点通過点に着目した局所的最適化処理の流れを示したフローチャートである。図１５は、頂点通過点に着目した局所的最適化処理によって展開図上において経路が最適化されていく様子を模式的に示した図である。
【００６７】
まず、ステップＳ１４１で着目している頂点を共有している三角形パッチを探索してすべて取り出す（頂点回りのパッチを取得するステップ）。図１５（ａ）は、頂点Ｖに着目し、頂点Ｖ回りの三角パッチＴ１〜Ｔ５を半時計回り順に取得している様子を示している。
【００６８】
次に、ステップＳ１４２において、始点と終点とを結ぶ経路（初期経路、又は、それを改善したもの）と、取得したパッチ群の外縁部と、が交差する２点であって、経路上始点に近い方の点を開始点Ｉｓ、終点に近いほうの点を終了点Ｉｔとする。（部分経路の開始・終了通過点を取得するステップ）。図１５（ａ）乃至（ｄ）のように、Ｉｓ、Ｉｔはそれぞれ開始点、終了点となる。
【００６９】
次にステップＳ１４３では、図１５（ｂ）のように、着目頂点Ｖと開始点Ｉｓとを結ぶ線分（開始線分）から着目頂点Ｖと終了点Ｉｔとを結ぶ方向（終了線分）まで、ステップＳ１４１で取り出したパッチ群を、着目頂点Ｖを中心として、時計回りおよび反時計回りに二次元平面上に放射上に展開し、その展開図上にショートカットが存在するか否かを判定する。
【００７０】
この判定は、図１５（ｂ）のように、開始線分から終了線分および、展開方向（時計回り、又は、反時計回り）が与えられたとき、その間にはさまれる稜線をとりだし、開始線分と終了線分とがなす角度、又は、稜線間の角度の総和がπより小さいか否かで判定できる。図１５（ｂ）左図のように、上記の角度の総和がπより小さい場合（ステップＳ１４３でＹＥＳ）は、展開面上で上記開始点から終了点までパッチを通過する線分が引けるので、最適化前の線分列より短いショートカットを得ることができる（半時計回り、時計回りに開始点、終了点、着目頂点回りのパッチを振り分けるステップ）。
【００７１】
図１５（ｂ）右図のように、角度の総和がπを超える場合（ステップＳ１４３でＮＯ）は、パッチ内を通過するショートカットは存在しないので、開始点、着目通過点、終了点を結ぶ線分列が一番短い経路ということになる。但し、図１５（ｂ）の場合は、反時計回りに展開した場合にショートカットが存在する。
【００７２】
図１６は図１５（ｂ）の反時計回りの展開図を、より詳細に説明するための図である。開始線分（内挿点Ｉｓと頂点Ｖとを結ぶ線分）から終了線分（内挿点Ｉｔと頂点Ｖとを結ぶ線分）までの間に挟まれている稜線はＥ１とＥ２である。この場合、隣り合う線分または稜線間の角度はそれぞれα１、α２、α３である。従ってその総計であるα＝α１＋α２＋α３がπより小さいか否かでショートカットが存在するか否かを判定できる。ここで注意することはαの値は開始線分、終了線分、及び、その間にはさまれる稜線さえ取り出せれば、３Ｄ空間上でも計算できるので、情報処理装置上の演算においては、ショートカットが存在するかどうかの判定には展開面を取り出す必要がないということである。
【００７３】
このようにして各回り向きごとにショートカットが存在するかどうかを判定した結果、反時計回り、時計回りともにショートカットが存在しないと判定された場合（ステップＳ１４３でＮＯ）は、ステップＳ１４７において、開始通過点、着目通過点、終了通過点を結ぶ線分列を、局所的な最短経路（最適化経路）とする（開始通過点、着目頂点、終了通過点を結ぶ経路を局所最適化経路とするステップ）。そして処理を終了する。
【００７４】
時計回り、又は、反時計回りの何れかにショートカットが存在すると判定された場合（ステップＳ１４３でＹＥＳ）は、ステップＳ１４４において、ショートカットが存在すると判定された回り向きごとに図１５（ｂ）、図１６のような展開図を作成する（ショートカットの存在する回り向きごとに展開図を作成するステップ）。
【００７５】
展開図の作成は、上記の着目通過点を持つ三角形パッチが同一平面上に整列するように、隣り合うパッチの共有稜線を軸としてパッチを回転し、平面上の各頂点の座標を算出する操作を繰り返すことによっても行えるが、この方法では計算コストが高く、展開するときの誤差が集積していくという問題がある。また三次元の座標変換計算が必要なので計算コストも高い。
【００７６】
このため、本実施形態では、上記の開始線分、終了線分およびその間にはさまれる稜線の長さと隣り合う線分または稜線の角度等の、計算コストの低いデータを用いて演算する。例えば、図１６のように、開始線分をＸ軸方向に配置すれば、他の稜線および終了線分は長さと開始線分とのなす角度がすべてわかるので二次元上に容易に配置することができる。
【００７７】
このように構成することで、経路が通過する三角形パッチの局所的な幾何情報のみを使って展開図を得るので、三次元の座標変換等を使う方法に比べ、安定的で精度よく高速に頂点回りの展開図が得ることができる。
【００７８】
次に、ステップＳ１４５では、上述したように、展開面で開始点と終了点を結ぶ線分を作ることによりショートカットを作成する（各展開面でショートカットを作成するステップ）。また、このショートカットを経路とするためには、図１５（ｂ）の星印の点のように、各稜線との交点を求めて通過点（内挿通過点）を求める必要がある。これも二次元上で簡単に計算することができる。
【００７９】
次に、ステップＳ１４６では求めたショートカットの経路を三角形多面体上の経路に復元する（短い方のショートカットを多面体上に復元して局所最適化経路とするステップ）。図１７は展開面上の通過点を多面体上に復元する方法を説明する図である。
【００８０】
展開図上の内挿点を三角形多面体上の内挿点に変換する処理は、図１７のように、その内挿点を含む稜線の長さ（図１７のｌ）に対する、始点と内挿点との距離（図１７のｄ）をｔ（＝ｄ／ｌ）とすると、
Ｉ＝Ｖ１＋ｔ×（Ｖ２−Ｖ１）
の演算を行うことにより行うことができる。ただし、上の式におけるＩ、Ｖ１、Ｖ２は、それぞれ内挿点、稜線の両端点の、位置ベクトルである。図１７において、Ｖ１とＶ１’、Ｖ２とＶ２’は多面体上の頂点と対応する展開面上の頂点との組み合わせである。
【００８１】
以上のような、頂点回りの最適化処理を各頂点について実行することにより、低い計算コストで経路を最適化することができる。
【００８２】
また、二次元の展開図を使って頂点回りの経路の最適化を行うため、精度よく、安定的で高速な計算が行うことができる。
【００８３】
＜単純経路に着目した局所的最適化処理＞
上述のようにステップＳ４では、経路を単純経路に分解して、各単純経路での最適化を図る（最短単純経路を求める）。概要については上記で説明しているので、ここでは各単純経路の最適化の詳細について図１８乃至２１を参照して説明する。
【００８４】
図１８は、単純経路に着目した局所的最適化処理（単純稜線列の最適化処理）の流れを示したフローチャートである。図１９は、単純稜線列の最適化処理によって、展開図上において経路が最適化されていく様子を模式的に示した図である。図２０は、単純稜線列に沿った展開面作成の方法を説明する図である。図２１は、最短の線分列から最短経路を求める様子を模式的に示した図である。
【００８５】
まず、ステップＳ１９１において、着目している単純経路に内挿通過点が含まれるか否かを判定する。単純経路は頂点通過点を開始点、終了点とし、その間に内挿通過点があるという構造をしているが、間に内挿通過点がない場合は、最適化をするまでもなく開始、終了点を結ぶ線分（稜線になっている）が最短である。従って、注目している単純経路に内挿通過点が含まれない場合（ステップＳ１９１でＮＯ）は、ステップＳ１９６へ進み、この線分を最短経路としてセットして、処理を終了する。このように、経路の通過点情報から稜線列を求めるため、効率的に処理を行うことができる。
【００８６】
ステップＳ１９１で通過稜線（内挿通過点）があると判定された場合（ステップＳ１９１でＹＥＳ）は、ステップＳ１９２へ進む。ステップＳ１９２では、図１９（ｂ）のように、この通過稜線にそって経路が通過する通過パッチ（三角形パッチ）を二次元上に展開する。ここで展開の方法は、ステップＳ１４５において説明したように、計算コストが高く誤差が集積する、隣り合うパッチの共有稜線を軸として同一平面になるようにパッチを回転していく方法にはよらず、多面体の局所的な幾何データのみを使うことにより展開図を作成することによって行う。
【００８７】
多面体の局所的な幾何データについて、図２０を参照して説明する。図２０は、展開図を作成するためのデータの、図形的な位置関係を示した図である。
【００８８】
展開図を作成するために用いるデータは、開始点を通る稜線のいずれか（例えば図１９（ａ）のＥｓ）、及び、通過稜線（図１９（ａ）のＥ１，Ｅ２，Ｅ３，Ｅ４）の、それぞれ、長さ、隣り合う稜線のなす角度、隣り合う稜線がその二つの稜線を持つ三角形パッチでどのような位置関係になっているか等の情報である。即ち、経路の通過する稜線の順番に従って、ある稜線を着目稜線、次の稜線を次着目稜線としたとき、着目稜線、次着目稜線の長さ、着目稜線と次着目稜線のなす角度（図２０のθ）、着目稜線と次着目稜線の両方を稜線として持つ着目パッチにおいて、次着目稜線が着目稜線の時計回り側にあるか（図２０の左側の図）、反時計回り側にあるかの情報（図２０の右側の図）である。これらの情報をＲＡＭ４等の記憶手段に一時的に保持する。
【００８９】
これらの情報があれば、例えば最初の稜線（図１９（ａ）のＥｓ）の長さの稜線を二次元のＸ軸方向に配置することから始めて、展開面上に順番に通過パッチ列を再現していくことができる。通過パッチ列を２次元平面上に展開する処理が終了すると、ステップＳ１９３へ進む。
【００９０】
このように、経路が通過する三角形パッチの局所的な幾何情報のみを使って展開図を得るので、三次元の座標変換等を使う方法に比べ、安定的で精度よく高速に単純稜線列が横切る三角形パッチ列の展開図が得ることができる。
【００９１】
ステップＳ１９３においては、開始点と終了点を結び通過パッチ列の内部を通る最短線分列を求める。図１９（ｂ）の改善後の太い線分が最短線分列になる。比較のため、図１９（ｂ）では最適化を行う前の経路の展開図上でのイメージを点線で表示している。ステップＳ１９３では、開始点と終了点とを結ぶ線分が三角形パッチ群に含まれる場合は、その線分を最短線分列とし、含まれない場合は、開始点と終了点とを両端に持つ線分列であって、三角形パッチの頂点を結ぶ線分列のうち、最も経路長が短いものを選択する。ただし、線分列を構成する各線分は稜線である必要はない。
【００９２】
次に、ステップＳ１９４において、ステップＳ１９３で求めた線分列を経路表現に変換する処理を行う。線分列を経路表現するためには、線分列を構成する各線分と交差する稜線との交点を求める。
【００９３】
図２１の例では、Ｉ１、Ｉ２の内挿点を求める処理になる。各線分と交差する稜線は、各線分の開始点を含むパッチのうち最後に展開されるパッチ（図２１の例では、Ｖｓを開始点とするとＴ１、Ｖｍを開始点とするとＴ６）から、各線分の終点を持つパッチのうち最初に展開されるパッチ（図２１においてＶｍを終点とするとＴ３、Ｖｅを終点とするとＴ６）を辿っていくときに、線分が通過するパッチ間の共有稜線である。図２１の場合、線分列を構成する２つの線分（Ｖｓ−Ｖｍ、Ｖｍ−Ｖｅ）のうち、Ｖｓを始点としてＶｍを終点とする線分Ｖｓ−Ｖｍについては、Ｔ１からＴ３を通過する際に２つの共有稜線Ｅ１、Ｅ２と交差する。Ｖｍを始点としてＶｅを終点とする線分Ｖｍ−Ｖｅについては、開始、終了パッチともにＴ６なので出現する共有線分はなく、従って、交差する稜線は存在しない。
【００９４】
このように、二次元の展開図を使って単純稜線列を横切る最短経路を求めるため、精度よく、安定的で高速な計算が行うことができる。また、上記のように処理を行うことで、通過パッチ列内の２頂点を結ぶ最短線分列が交差する三角形パッチ列の稜線との交点列を、三角形パッチの展開していく順番を利用して効率よく求めることができる。
【００９５】
次に、ステップＳ１９５では、頂点回り回りの経路の最適化（頂点通過点に着目した局所的最適化処理）の、ステップＳ１４６について説明した方法と同様の方法で、展開面上の最短経路を多面体上に復元する。
【００９６】
以上の処理を、各単純経路毎に実行する。
【００９７】
上記のように構成することで、二次元の展開図上で得られた最短経路の局所的な幾何情報のみをもちいて容易に三次元上の沿面距離が得られるため、三次元の座標変換等を使う方法に比べ、安定的で精度よく高速に計算が行うことができる。
【００９８】
＜処理終了の判定処理＞
ステップＳ５においては、ステップＳ１乃至Ｓ４の処理の結果得られた沿面経路の解析値について、さらに処理を継続するか否かを判定する。処理を継続すると判定した場合（ステップＳ５でＮＯ）はステップＳ３に戻り、処理を継続すると判定しなかった場合（ステップＳ５でＹＥＳ）は解析結果を出力して処理を終了する。
【００９９】
尚、判定は、先に述べたように、例えば、ステップＳ３，Ｓ４で最適化された経路の経路長と、最適化される前の経路長を比較して、改善値が所定の閾値以下であるか否かを判定することにより行う。この場合、所定の閾値は、例えば、入力装置６を介してユーザが指定したり、或いは、多角形の形状等に基づいて情報処理装置が自動的に決定するものとする。
【０１００】
或いは、ステップＳ３、Ｓ４の処理を必ず２回以上行うように構成し、前回の処理の結果得られた沿面経路の解析値の経路長と、今回の処理の結果得られた沿面経路の解析値の経路長とを比較して、経路長の差分や、経路長の変化率等が所定の閾値以下の場合、処理を終了するというような構成にしてもよい。
【０１０１】
以上説明したように、本実施形態によれば、離散的な重み付きグラフの最短経路探索により初期経路を求める手法と多面体の展開面を利用した探索手法を組み合わせることにより、全体として計算コストが低く精度の高い沿面経路を求めることができる。
【図面の簡単な説明】
【０１０２】
【図１】本実施形態における沿面経路探索処理の主要な処理の流れを示したフローチャートである。
【図２】沿面経路を算出する処理を実行する情報処理装置の構成の一例を示したブロック図である。
【図３】処理対象の多面体の一例である立方体上に重み付きグラフを作成した様子を示した図である。
【図４】各頂点通過点回りの局所的最適化，及び、各単純経路での局所的最適化によって経路が改善されていく様子を模式的に示した図である。
【図５】頂点回りの経路の最適化処理と、単純経路の最適化処理とが、多面体の展開図上でどのように進行していくかを模式的に示した図である。
【図６】沿面経路探索処理により立方体上の経路に関して沿面経路を求める例を示した図である。
【図７】重み付きグラフの最短経路を初期経路とした場合に真の沿面経路が得られない場合を例示した図である。
【図８】初期経路を複数とったときの最短経路を求める処理のフローチャートである。
【図９】多面体の一例として、部品の形状に基づいて作成された多面体を例示的に示した図である。
【図１０】多角形を三角形に分割する様子を例示的に示した図である。
【図１１】曲面モデルを三角形多面体に変換する様子を模式的に示した図である。
【図１２】三角形パッチにおいてノードとアークを設定する様子を模式的に示した図である。
【図１３】頂点通過点についてのみ最適化を行ったのでは、ショートカットを発見できない場合を例示的に示した図である。
【図１４】頂点通過点に着目した局所的最適化処理の流れを示したフローチャートである。
【図１５】頂点通過点に着目した局所的最適化処理によって展開図上において経路が最適化されていく様子を模式的に示した図である。
【図１６】頂点通過点に着目した局所的最適化処理において作成される、反時計回りの展開図を詳細に説明する図である。
【図１７】展開面上の通過点を多面体上に復元する方法を説明する図である。
【図１８】単純経路に着目した局所的最適化処理の流れを示したフローチャートである。
【図１９】単純稜線列の最適化処理によって、展開図上において経路が最適化されていく様子を模式的に示した図である。
【図２０】単純稜線列に沿った展開面作成の方法を説明する図である。
【図２１】最短の線分列から最短経路を求める様子を模式的に示した図である。
【図２２】初期経路が本来の沿面経路と大きくはずれている場合、精度のよい沿面経路を得られない様子を模式的に示した図である。
【図２３】初期経路が本来の沿面経路と大きくはずれている場合、精度のよい沿面経路を得られない様子を模式的に示した図である。
【図１】
2006309598.tif 000003
【図２】
2006309598.tif 000004
【図３】
2006309598.tif 000005
【図４】
2006309598.tif 000006
【図５】
2006309598.tif 000007
【図６】
2006309598.tif 000008
【図７】
2006309598.tif 000009
【図８】
2006309598.tif 000010
【図９】
2006309598.tif 000011
【図１０】
2006309598.tif 000012
【図１１】
2006309598.tif 000013
【図１２】
2006309598.tif 000014
【図１３】
2006309598.tif 000015
【図１４】
2006309598.tif 000016
【図１５】
2006309598.tif 000017
【図１６】
2006309598.tif 000018
【図１７】
2006309598.tif 000019
【図１８】
2006309598.tif 000020
【図１９】
2006309598.tif 000021
【図２０】
2006309598.tif 000022
【図２１】
2006309598.tif 000023
【図２２】
2006309598.tif 000024
【図２３】
2006309598.tif 000025