(57)【要約】【課題】立体断面の描画を高速化すること。【解決手段】直方体近似変換部１２０は、立体を多数の直方体を組み合わせた立体へと近似し、交点算出部１５０は、近似された立体をなす全ての直方体に対し、その各直方体の稜線と、切断面情報取得部１４０が取得した切断面との交点を算出し、立体描画部１６０は、交点算出部１５０が算出した交点の座標から、直方体ごとの断面を描画する処理を、全ての直方体に対して実行し、それらの断面をつなぎ合わせることで立体断面を描画する。このように、最初に直方体近似変換部１２０による処理を実行することで、断面の形状決定に要する処理負荷を軽減し、もって断面を高速に描画することができる。【選択図】        図１
2007140976.tif 000002
【特許請求の範囲】
【請求項１】
立体を多数の直方体を組み合わせた立体に近似する直方体近似手順と、
前記直方体近似手順により近似された立体をなす各直方体の稜線と、切断面との交点を算出し、該交点を頂点とする断面を直方体ごとに描画する断面描画手順と、
をコンピュータに実行させることを特徴とする断面表示プログラム。
【請求項２】
前記直方体近似手順は、八分木法によって立体の近似を行うこと
を特徴とする請求項１に記載の断面表示プログラム。
【請求項３】
立体を多数の直方体を組み合わせた立体に近似する直方体近似手段と、
前記直方体近似手段により近似された立体をなす各直方体の稜線と、切断面との交点を算出し、該交点を頂点とする断面を直方体ごとに描画する断面描画手段と、
を備えることを特徴とする断面表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、断面表示プログラムおよび断面表示装置に関し、特に、断面の形状決定に要する処理負荷を軽減し、もって断面を高速に描画することができる断面表示プログラムおよび断面表示装置に関するものである。
【背景技術】
【０００２】
三次元の立体を表現する手法の一つに、サーフェスモデルがある。このサーフェスモデルは、立体を面の集合として捉え、視点から見える面、すなわち表となる面だけを描画することで立体を表現するものである。このサーフェスモデルは、立体の内部の描画を省略するため、立体内部の情報を持つソリッドモデルと比べると、高速な描画が可能である。
【０００３】
三次元の立体を扱うＣＡＤなどのシステムの中には、立体同士の包括関係を確認するために、立体の切断面を表示する機能を有しているものがある。しかし、サーフェスモデルの場合は、実際には中身の詰まっている立体でも、その表面しか描画せず、立体内部は中空であるものとして処理される。
【０００４】
図７は、サーフェスモデルにおける断面表示の手順を示す図である。同図に示すように、サーフェスモデルによる立体を切断してその断面を表示した場合、その切断面には、本来は存在しない立体内部の中空部分が露出してしまう。このため、立体の断面を矛盾なく表示するには、切断面が立体内部と重なる部分には切断面に沿った平面を新たに描画し、中空部分の露出を無くした閉じた立体として表示する必要がある。
【０００５】
このとき、その切断面に沿った平面を描画する領域、すなわち断面の形状を決定するには、立体表面と切断面とが交差してできる干渉線を算出する必要がある。その干渉線の算出方法は立体表面の形状によって大きく異なり、主に立体表面が平面で構成される場合と、円柱などの２次曲面で構成される場合と、ベジェ曲面、Ｂ−スプライン曲面などの自由曲面で構成される場合との３通りに分類される。例えば非特許文献１では、このような曲面（平面を含む）と平面との干渉線の算出方法について述べられている。
【０００６】
【非特許文献１】鳥谷浩志、千代倉弘明編著  「３次元ＣＡＤの基礎と応用」  共立出版  １９９１年
【発明の開示】
【発明が解決しようとする課題】
【０００７】
立体表面が全て平面で構成されている場合は、その干渉線は直線または折れ線であり、その干渉線は容易に算出できる。しかし、立体表面が曲面で表される場合、その干渉線の算出には複雑な計算を要し、多くの場合は代数的に直接求めることができない。このため、干渉線の算出には解の近似などの再帰的な処理が必要となることから、その算出時には高い処理負荷が掛かり、それに伴い立体の断面の形状決定に要する処理負荷も高くなる。したがって、切断面を変更して断面の再描画を行う場合は、その切断面の変更のたびに干渉線を再計算しなければならず、このため断面の再描画には多大な時間を要するという問題があった。
【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、断面の形状決定に要する処理負荷を軽減し、もって切断面を高速に描画することができる断面表示プログラムおよび断面表示装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、請求項１の発明に係る断面表示プログラムは、立体を多数の直方体を組み合わせた立体に近似する直方体近似手順と、前記直方体近似手順により近似された立体をなす各直方体の稜線と、切断面との交点を算出し、該交点を頂点とする断面を直方体ごとに描画する断面描画手順と、をコンピュータに実行させることを特徴とする。
【００１０】
この請求項１の発明によれば、立体を多数の直方体を組み合わせた立体に近似し、近似した立体をなす各直方体の稜線と、切断面との交点を算出し、交点を頂点とする断面を直方体ごとに描画するよう構成したので、断面の形状決定に要する処理負荷を軽減することができる。
【００１１】
また、請求項２の発明に係る断面表示プログラムは、請求項１の発明において、前記直方体近似手順は、八分木法によって立体の近似を行うことを特徴とする。
【００１２】
この請求項２の発明によれば、八分木法によって立体の近似を行うよう構成したので、生成される直方体の数を抑制しつつ高精度で立体を直方体に近似することができる。
【００１３】
また、請求項３の発明に係る断面表示装置は、立体を多数の直方体を組み合わせた立体に近似する直方体近似手段と、前記直方体近似手段により近似された立体をなす各直方体の稜線と、切断面との交点を算出し、該交点を頂点とする断面を直方体ごとに描画する断面描画手段と、を備えることを特徴とする。
【００１４】
この請求項３の発明によれば、立体を多数の直方体を組み合わせた立体に近似し、近似した立体をなす各直方体の稜線と、切断面との交点を算出し、交点を頂点とする断面を直方体ごとに描画するよう構成したので、断面の形状決定に要する処理負荷を軽減することができる。
【発明の効果】
【００１５】
請求項１および３の発明によれば、断面の形状決定に要する処理負荷を軽減することができるので、断面を高速に描画することができるという効果を奏する。
【００１６】
また、請求項２の発明によれば、生成される直方体の数を抑制しつつ高精度で立体を直方体に近似することができるので、断面を高速に描画することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、この発明に係る断面表示プログラムおよび断面表示装置の好適な実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１８】
まず、本実施例１に係る断面表示装置の構成について説明する。図１は、本実施例に係る断面表示装置の構成を示す機能ブロック図である。同図に示すように、この断面表示装置１００は、立体情報記憶部１１０と、直方体近似変換部１２０と、変換済立体情報記憶部１３０と、切断面情報取得部１４０と、交点算出部１５０と、立体描画部１６０とを有する。
【００１９】
立体情報記憶部１１０は、例えば立体の領域を表す連立不等式のような、立体の境界面を表す情報と、立体の内部と外部を区別する情報とを有する立体情報を記憶する記憶部である。
【００２０】
直方体近似変換部１２０は、立体情報記憶部１１０に記憶された立体情報に対応する立体を、多数の直方体を組み合わせた立体へと近似する直方体近似変換を行う処理部である。この直方体近似変換における近似方法としては、例えばボクセル法、八分木法があるが、本実施例では八分木法を用いる。
【００２１】
図２は、直方体近似変換の例を示す図である。同図において、左側の図形はサーフェスモデルで表示したときの立体であり、右側の図形は直方体近似変換を行った後の立体である。例えば、同図(a)に示す球体に対して直方体近似変換を行うと、球体は多数の直方体を組み合わせた凸な立体へ近似される。また、同図(b)に示すビアホール（via hole）に対して直方体近似変換を行うと、基板を表す水平面についてはほぼ変化は見られないが、円筒形状をなす凹部については多数の直方体を組み合わせた立体へと近似される。
【００２２】
変換済立体情報記憶部１３０は、直方体近似変換部１２０によって近似された立体をなす各直方体の情報を記憶する記憶部である。これらの直方体は立体内部と外部との区別が可能であり、変換済立体情報記憶部１３０には、その各直方体の位置および大きさに関する情報が記憶される。
【００２３】
切断面情報取得部１４０は、利用者から切断面の情報を取得する処理部である。この切断面情報取得部１４０は、切断面を表す平面の方程式などを切断面の情報として取得する。
【００２４】
交点算出部１５０は、変換済立体情報記憶部１３０に記憶された全ての直方体に対し、その各直方体における稜線と、切断面情報取得部１４０が取得した切断面との交点を算出する処理部である。図３は、直方体の稜線と切断面との交点の求め方を示す図である。同図に示す直方体ＡＢＣＤ−ＥＦＧＨは、直方体近似変換によって近似された立体をなす直方体の一つである。交点算出部１５０は、この直方体の各稜線に対し、その稜線と切断面とが交わるか否かを判定し、交わる場合はその交点の座標を求める。
【００２５】
例えば、直方体の稜線ＡＢと切断面とが交わる場合、その切断面の通る１点をＰ、法線ベクトルをＮとすると、その交点Ｓの座標は、次のような手順で求められる。
断面を表す平面の方程式は、
Ｎ・（Ｓ−Ｐ）＝０  ・・（１）
であり、稜線ＡＢを表す直線の方程式は、
Ｓ＝Ａ＋ｔ（Ｂ−Ａ）  ・・（２）
である。この式（１）と式（２）からＳを消去し、ｔについて整理すると、
ｔ＝｛Ｎ・（Ｐ−Ａ）｝÷｛Ｎ・（Ｂ−Ａ）｝  ・・（３）
となる。よって、この式（３）を式（２）に代入すれば、交点Ｓの座標が得られる。
【００２６】
したがって、実際には式（２）と式（３）に対し、３点Ａ，Ｂ，Ｐと法線ベクトルＮの各成分の値を代入するだけで、交点Ｓの座標を求めることができる。また、他の稜線についても同様に、その稜線と切断面とが交わる場合はその交点の座標を求め、その結果を直方体ごとにまとめて立体描画部１６０へ出力する。そして、交点算出部１５０は、このような処理を全ての直方体に対して実行する。
【００２７】
一般に、直方体を平面で切断したときの断面は、頂点数が３〜６の凸多角形となる。この凸多角形における各頂点は直方体の稜線上にあり、その座標は交点算出部１５０で求めた各交点の座標と一致する。また、凸多角形を形成する各頂点の座標が分かれば、その凸多角形の形状はただ一通りに決定される。したがって、その断面の形状は上述した代数的な手法により容易に決定することができる。
【００２８】
立体描画部１６０は、変換済立体情報記憶部１３０に記憶された立体の情報と、交点算出部１５０により算出された各直方体と切断面との交点の座標とから、断面を含む立体を描画する処理部である。
【００２９】
このように、直方体近似変換部１２０が立体を直方体の集合へと近似することで、交点算出部１５０は立体と切断面との交点を容易に算出することができるので、断面の形状決定に要する処理負荷を軽減することができる。
【００３０】
次に、本実施例に係る断面表示処理の処理手順について説明する。図４は、本実施例に係る断面表示装置が実行する断面表示処理の処理手順を示すフローチャートである。同図に示すように、初めに直方体近似変換部１２０は、立体情報記憶部１１０に記憶された立体情報に対し、直方体近似変換処理を実行し、立体を多数の直方体を組み合わせた立体に近似する（ステップＳ１０１）。この直方体近似変換処理の処理結果は、変換済立体情報記憶部１３０に記憶される。
【００３１】
そして、切断面情報取得部１４０は、切断面の情報を取得し（ステップＳ１０２）、交点算出部１５０は、この切断面情報取得部１４０が取得した切断面の情報と、変換済立体情報記憶部１３０に記憶された全直方体に対して、その直方体の稜線と切断面との交点を算出する（ステップＳ１０３）。
【００３２】
この交点算出部１５０は、各直方体における各稜線を１つずつ抽出し、その稜線と切断面とが交わる場合はその交点を求める。このときの交点の算出方法としては、上述した式（２）および（３）に３点と法線ベクトルの各成分の値を代入する。そして、交点算出部１５０は、このようにして得られた各交点の座標を、直方体ごとにまとめて立体描画部１６０へ出力する。
【００３３】
その後、立体描画部１６０は、断面を含む立体を描画する（ステップＳ１０４）。ここで、断面については、立体描画部１６０は、交点算出部１５０が直方体ごとにまとめて出力した交点の座標から、その断面を直方体ごとに描画する。そして、立体描画部１６０は、全ての直方体に対して断面を描画し、それらの断面をつなぎ合わせてできる面が、その立体全体の断面となる。
【００３４】
また、断面を除く立体部分については、立体描画部１６０は、変換済立体情報記憶部１３０に記憶された直方体の情報を用いて描画する。そして、ステップＳ１０４の処理が終了した後は、ステップＳ１０２に戻り、切断面情報取得部１４０が切断面の情報を取得するたびにステップＳ１０２〜ステップＳ１０４の処理を繰り返す。
【００３５】
次に、ステップＳ１０１で実行する直方体近似変換処理の処理手順について説明する。図５は、図４の直方体近似変換処理における処理手順を示すフローチャートである。まず、直方体近似変換部１２０は、立体情報記憶部１１０に記憶された立体を包含する直方体を生成する。そして、その直方体を、各辺の長さが半分となる８つの直方体領域へと分割する（ステップＳ２０１）。
【００３６】
そして、直方体近似変換部１２０は、この８つに分割された直方体領域のうちの１つを抽出し（ステップＳ２０２）、この抽出した直方体領域内における立体の占有率を算出する（ステップＳ２０３）。
【００３７】
ここで、立体の占有率が一定値以上である場合は（ステップＳ２０４，Ｙｅｓ）、直方体近似変換部１２０は、抽出した直方体領域と同じサイズの直方体を生成し、その直方体の情報を変換済立体情報記憶部１３０に記憶させる（ステップＳ２０６）。この処理の終了後、ステップＳ２０８に移る。
【００３８】
また、立体の占有率が０％、すなわち抽出した直方体領域内に立体が存在しない場合は（ステップＳ２０４，Ｎｏ、ステップＳ２０５，Ｙｅｓ）、その抽出した直方体領域に対しては直方体近似変換処理を行わずにステップＳ２０８に移る。
【００３９】
また、立体の占有率が０％より大きく一定値未満である場合は（ステップＳ２０４，Ｎｏ、ステップＳ２０５，Ｎｏ）、直方体近似変換部１２０は、その抽出した直方体領域をさらに８分割するために、直方体近似変換処理を呼び出す（ステップＳ２０７）。そして、直方体近似変換部１２０は、分割された全ての直方体領域内において、立体の占有率が０％または一定値以上となるまで、ステップＳ２０１〜ステップＳ２０８の処理を再帰的に実行する。
【００４０】
その後、直方体近似変換部１２０は、８つに分割された直方体領域全てを抽出したか否かを判定する（ステップＳ２０８）。そして、まだ抽出していない直方体領域が存在する場合は（ステップＳ２０８，Ｎｏ）、ステップＳ２０２に戻る。一方、全ての直方体領域の抽出が完了した場合は（ステップＳ２０８，Ｙｅｓ）、この直方体近似変換処理を終了する。
【００４１】
このように、直方体近似変換部１２０が、八分木法により直方体領域を分割する処理を再帰的に実行することとしたので、生成される直方体の数を抑制しつつ高精度で立体を直方体に近似することができる。
【００４２】
上述してきたように、直方体近似変換部１２０が立体を直方体の集合へと近似することで、交点算出部１５０は立体と切断面との交点を容易に算出することができる。ここで、最初に直方体近似変換部１２０が行う処理自体は高い処理負荷が掛かるものの、この処理は立体描画部１６０による切断面の描画処理の前に一度実行するだけでよい。したがって、最初に直方体近似変換処理を行うことにより、その後の断面の形状決定に要する処理負荷を軽減し、もって断面を高速に描画することができる。
【００４３】
なお、本実施例では、断面表示装置について説明したが、断面表示装置が有する構成をソフトウェアによって実現することで、同様の機能を有する断面表示プログラムを得ることができる。そこで、この断面表示プログラムを実行するコンピュータについて説明する。
【００４４】
図６は、本実施例に係る断面表示プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ２００は、ＲＡＭ２１０と、ＣＰＵ２２０と、ＨＤＤ２３０と、ＬＡＮインタフェース２４０と、入出力インタフェース２５０と、ＤＶＤドライブ２６０とを有する。
【００４５】
ＲＡＭ２１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ２２０は、ＲＡＭ２１０からプログラムを読み出して実行する中央処理装置である。
【００４６】
ＨＤＤ２３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース２４０は、コンピュータ２００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。
【００４７】
入出力インタフェース２５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ２６０は、ＤＶＤの読み書きを行う装置である。
【００４８】
そして、このコンピュータ２００において実行される断面表示プログラム２１１は、ＤＶＤに記憶され、ＤＶＤドライブ２６０によってＤＶＤから読み出されてコンピュータ２００にインストールされる。
【００４９】
あるいは、この断面表示プログラム２１１は、ＬＡＮインタフェース２４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ２００にインストールされる。
【００５０】
そして、インストールされた断面表示プログラム２１１は、ＨＤＤ２３０に記憶され、ＲＡＭ２１０に読み出されてＣＰＵ２２０によって断面表示プロセス２２１として実行される。
【００５１】
なお、本実施例では、直方体近似変換処理では八分木法を用いた場合について説明したが、本発明はこれに限定されるものではなく、他の空間分割モデルの場合にも同様に適用することができる。
【００５２】
（付記１）立体を多数の直方体を組み合わせた立体に近似する直方体近似手順と、
前記直方体近似手順により近似された立体をなす各直方体の稜線と、切断面との交点を算出し、該交点を頂点とする断面を直方体ごとに描画する断面描画手順と、
をコンピュータに実行させることを特徴とする断面表示プログラム。
【００５３】
（付記２）前記直方体近似手順は、八分木法によって立体の近似を行うこと
を特徴とする付記１に記載の断面表示プログラム。
【００５４】
（付記３）立体を多数の直方体を組み合わせた立体に近似する直方体近似手段と、
前記直方体近似手段により近似された立体をなす各直方体の稜線と、切断面との交点を算出し、該交点を頂点とする断面を直方体ごとに描画する断面描画手段と、
を備えることを特徴とする断面表示装置。
【００５５】
（付記４）前記直方体近似手段は、八分木法によって立体の近似を行うこと
を特徴とする付記３に記載の断面表示装置。
【産業上の利用可能性】
【００５６】
以上のように、本発明に係る断面表示プログラムおよび断面表示装置は、断面の描画速度の高速化に有用であり、特に、切断面を頻繁に変更するような立体表示システムに適している。
【図面の簡単な説明】
【００５７】
【図１】本実施例に係る断面表示装置の構成を示す機能ブロック図である。
【図２】直方体近似変換の例を示す図である。
【図３】直方体の稜線と切断面との交点の求め方を示す図である。
【図４】本実施例に係る断面表示装置が実行する断面表示処理の処理手順を示すフローチャートである。
【図５】図４の直方体近似変換処理における処理手順を示すフローチャートである。
【図６】本実施例に係る断面表示プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図７】サーフェスモデルにおける断面表示の手順を示す図である。
【符号の説明】
【００５８】
１００    断面表示装置
１１０    立体情報記憶部
１２０    直方体近似変換部
１３０    変換済立体情報記憶部
１４０    切断面情報取得部
１５０    交点算出部
１６０    立体描画部
２００    コンピュータ
２１０    ＲＡＭ
２１１    断面表示プログラム
２２０    ＣＰＵ
２２１    断面表示プロセス
２３０    ＨＤＤ
２４０    ＬＡＮインタフェース
２５０    入出力インタフェース
２６０    ＤＶＤドライブ
【図１】
2007140976.tif 000003
【図３】
2007140976.tif 000004
【図４】
2007140976.tif 000005
【図５】
2007140976.tif 000006
【図６】
2007140976.tif 000007
【図２】
2007140976.tif 000008
【図７】
2007140976.tif 000009