(57)【特許請求の範囲】
【請求項１】
３次元ＣＡＤシステムにおける自由曲面をポリゴンで近似したときに生成される点列から複数個の穴を持つポリゴンを穴のないポリゴン群へ分割する有穴ポリゴンのブリッジ生成システムにおいて、各穴に対するバウンディングボックスを生成するバウンディングボックス生成手段と、前記バウンディングボックス生成手段により生成された各バウンディングボックスと前記ポリゴンの各外部境界点との距離を算出し、距離が最小となる外部境界点（第１最近接点という）とバウンディングボックスとを求め、この求めたバウンディングボックスに対する穴上の点のうちで、前記第１最近接点と最も近い点（第２最近接点という）を決定する最近接点決定手段と、前記第１最近接点と前記第２最近接点との間にブリッジを生成するブリッジ生成手段とを備えて、前記穴がなくなるまで前記最近接点決定手段および前記ブリッジ生成手段を繰り返し適用して、複数の穴を持つ有穴ポリゴンを無穴ポリゴン群へ分割することを特徴とする有穴ポリゴンのブリッジ生成システム。
【請求項２】
請求項１記載の有穴ポリゴンのブリッジ生成システムにおいて、前記ブリッジ生成手段は、独立したバウンディングボックスを有する有穴ポリゴンに対してのみブリッジを生成するようにしたことを特徴とする有穴ポリゴンのブリッジ生成システム。
【請求項３】
３次元ＣＡＤシステムにおける自由曲面をポリゴンで近似したときに生成される点列から複数個の穴を持つポリゴンを穴のないポリゴン群へ分割する有穴ポリゴンのブリッジ生成方法において、独立したバウンディングボックスを有する有穴ポリゴンに対して、各穴に対するバウンディングボックスを生成し、前記各バウンディングボックスと前記ポリゴンの各外部境界点との距離を算出し、距離が最小となる外部境界点（第１最近接点という）とバウンディングボックスとを求め、この求めたバウンディングボックスに対する穴上の点のうちで、前記第１最近接点と最も近い点（第２最近接点という）を決定し、前記第１最近接点と前記第２最近接点との間にブリッジを生成し、前記第１最近接点および前記第２最近接点を求めて、これらの最近接点間にブリッジを生成することを前記穴がなくなるまで繰り返して、複数の穴を持つ有穴ポリゴンを無穴ポリゴン群へ分割することを特徴とする有穴ポリゴンのブリッジ生成方法。
【請求項４】
３次元ＣＡＤシステムにおける自由曲面をポリゴンで近似したときに生成される点列を用い、独立したバウンディングボックスを有する有穴ポリゴンに対して、各穴に対するバウンディングボックスを生成し、前記各バウンディングボックスと前記ポリゴンの各外部境界点との距離を算出し、距離が最小となる外部境界点（第１最近接点という）とバウンディングボックスとを求め、この求めたバウンディングボックスに対する穴上の点のうちで、前記第１最近接点と最も近い点（第２最近接点という）を決定し、前記第１最近接点と前記第２最近接点との間にブリッジを生成し、前記第１最近接点および前記第２最近接点を求めて、これらの最近接点間にブリッジを生成することを前記穴がなくなるまで繰り返して、複数の穴を持つ有穴ポリゴンを無穴ポリゴン群へ分割するプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の穴があるポリゴンを分割するときのブリッジ生成技術に関する。
【０００２】
【従来の技術】
一般的にＣＡＤのモデリングを考えたとき、有穴自由曲面をも含めた任意の自由曲面形状の処理を行わなければならないが、そのためにこの自由曲面をポリゴンによって近似して処理することが多い。その場合には与えられた穴のあるポリゴンを穴のないポリゴン群に分割する必要がある。
【０００３】
従来、穴のあるポリゴンを分割するには、外部境界と穴の間にブリッジを生成して、そのブリッジを媒介として分割を行っている。複数の穴が存在する場合には、外部境界と穴の間あるいは穴と穴の間のどちらかにブリッジを生成する。
【０００４】
【発明が解決しようとする課題】
このようなアルゴリズムとして従来は、ブリッジの生成位置を決定するために最短距離を計算しているが、各穴上の点と外部境界上の点とを総当りで距離を計算してから決定していたため、穴が多くなると計算量が指数関数的に増大することになってしまっていた。その結果、穴が多い曲面のポリゴンを分割するには時間がかかることになってしまった。
【０００５】
このような問題点を解決するために本発明では、簡単な計算式で且つ計算量の少ない効率的なブリッジ生成方式を提案することを目的としている。
【０００６】
【課題を解決するための手段】
請求項１の有穴ポリゴンのブリッジ生成システムは、３次元ＣＡＤシステムにおける自由曲面をポリゴンで近似したときに生成される点列から複数個の穴を持つポリゴンを穴のないポリゴン群へ分割する有穴ポリゴンのブリッジ生成システムにおいて、各穴に対するバウンディングボックスを生成するバウンディングボックス生成手段と、前記バウンディングボックス手段により生成された各バウンディングボックスと前記ポリゴンの各外部境界点との距離を算出し、距離が最小となる外部境界点（第１最近接点という）とバウンディングボックスとを求め、この求めたバウンディングボックスに対する穴上の点のうちで、前記第１最近接点と最も近い点（第２最近接点という）を決定する最近接点決定手段と、前記第１最近接点と前記第２最近接点との間にブリッジを生成するブリッジ生成手段とを備えて、前記穴がなくなるまで前記最近接点決定手段および前記ブリッジ生成手段を繰り返し適用して、複数の穴を持つ有穴ポリゴンを無穴ポリゴン群へ分割することを特徴とする。
【０００７】
請求項２の有穴ポリゴンのブリッジ生成システムは、請求項１記載の有穴ポリゴンのブリッジ生成システムにおいて、前記ブリッジ生成手段は、独立したバウンディングボックスを有する有穴ポリゴンに対してのみブリッジを生成するようにしたことを特徴とする。
【０００８】
請求項３の有穴ポリゴンのブリッジ生成方法は、３次元ＣＡＤシステムにおける自由曲面をポリゴンで近似したときに生成される点列から複数個の穴を持つポリゴンを穴のないポリゴン群へ分割する有穴ポリゴンのブリッジ生成方法において、独立したバウンディングボックスを有する有穴ポリゴンに対して、各穴に対するバウンディングボックスを生成し、前記各バウンディングボックスと前記ポリゴンの各外部境界点との距離を算出し、距離が最小となる外部境界点（第１最近接点という）とバウンディングボックスとを求め、この求めたバウンディングボックスに対する穴上の点のうちで、前記第１最近接点と最も近い点（第２最近接点という）を決定し、前記第１最近接点と前記第２最近接点との間にブリッジを生成し、前記第１最近接点および前記第２最近接点を求めて、これらの最近接点間にブリッジを生成することを前記穴がなくなるまで繰り返して、複数の穴を持つ有穴ポリゴンを無穴ポリゴン群へ分割することを特徴とする。
【０００９】
請求項４のプログラムを記録したコンピュータ読み取り可能な記録媒体は、３次元ＣＡＤシステムにおける自由曲面をポリゴンで近似したときに生成される点列を用い、独立したバウンディングボックスを有する有穴ポリゴンに対して、各穴に対するバウンディングボックスを生成し、前記各バウンディングボックスと前記ポリゴンの各外部境界点との距離を算出し、距離が最小となる外部境界点（第１最近接点という）とバウンディングボックスとを求め、この求めたバウンディングボックスに対する穴上の点のうちで、前記第１最近接点と最も近い点（第２最近接点という）を決定し、前記第１最近接点と前記第２最近接点との間にブリッジを生成し、前記第１最近接点および前記第２最近接点を求めて、これらの最近接点間にブリッジを生成することを前記穴がなくなるまで繰り返して、複数の穴を持つ有穴ポリゴンを無穴ポリゴン群へ分割するプログラムを記録したことを特徴とする。
【００１０】
【発明の実施の形態】
以下、２つの実施例を用いて、本発明の構成および動作原理について説明する。
【００１１】
１．実施例１
本発明の第１の実施例について図１〜１３を用いて説明する。
（１）全体構成
図１は、本実施例の有穴ポリゴンのブリッジ生成システム（以下、本システムという）の全体構成を示す図で、１は入力手段、２は表示手段、３はＣＰＵ、４はメモリ、５は記憶手段である。入力手段１はキーボード、マウス、タッチパネル等により構成され、本システムへの情報の入力に使用される。表示手段２は、本システムからの出力情報や入力手段１からの入力された情報などを表示させるものである。ＣＰＵ３は、本システムの各構成手段のプログラムを動作させる。メモリ４には、本システムの各構成手段がＣＰＵ３によって実行されるときに一時的に作成される情報や各構成手段のプログラム等が保持される。記憶手段５は、ＣＡＤシステムの形状等のデータベースや本システムの各構成手段のプログラム等を保持している。
【００１２】
図２は、本システムの機能構成を示す図で、図中、１０はバウンディング生成手段、２０は最近接点決定手段、３０はブリッジ生成手段を示し、バウンディングボックス生成手段１０は、有穴ポリゴンで近似してえられた点列を入力として、各穴に対するバウンディングボックスを生成する。このときの点列は次のような２つのテーブルによって管理することにする。
・パラメータ値情報テーブル２００（図３参照）
・境界情報テーブル３００（図４参照）
【００１３】
以下、説明の都合上
はじめの外部境界上の点のＩＤを
Ｐ１，Ｐ２，…，Ｐｍ（ｍは外部境界上の点の数）
穴のＩＤを
Ｈ１，Ｈ２，…，Ｈｌ（ｌは穴の数）
これと対応するバウンディングボックスのＩＤを
Ｂ１，Ｂ２，…，Ｂｌ
穴Hi上の点のＩＤを
Ｖｉ１，Ｖｉ２，…，Ｖｉｎ（ｎは点の数）
のように呼ぶことにする。
【００１４】
図３はパラメータ値情報テーブル２００を示したものであり、少なくとも有穴ポリゴンで近似してえられた各点に対して、
点を表すＩＤ（これは配列のインデックスやポインタとすれば省略できる）
点の３次元座標値（ｘ，ｙ，ｚ）
を持ったテーブルである。
【００１５】
図４はこの境界情報テーブル３００を示したものであり、各ポリゴンについて、外部境界と各穴を形成する点列をグループに分けて管理するテーブルである。
最初に外部境界を表す点列の点の座標を示すためにパラメータ値情報テーブル２００への点のＩＤを列挙している。この点列の順番は反時計回りで格納される。
次に、各穴を表す点列の点の座標を示すためにパラメータ値情報テーブル２００への点のＩＤを列挙している。この点列の順番は時計回りで格納される。
この外部境界の点列のグループから穴の点列のグループへ、更に穴の点列のグループから他の穴の点列のグループへとリンクして、有穴ポリゴンの境界を表すようにしている。
又、ここには後述する各穴に対するバウンディングボックスを形成するための座標値（各軸の最小値と最大値）も保持される。
【００１６】
最近接点決定手段２０は、生成された各バウンディングボックスとポリゴンの外部境界上の点のうち最近接点（Ｐｋとする）を探す。さらに、この外部境界上の点Ｐｋとバウンディングボックスに対する穴を形成する点のうちで一番近い点（Ｖｉｊとする）を決定する。
【００１７】
ブリッジ生成手段３０は、これら２点と穴を形成している点列とを新たな外部境界として追加する。
このブリッジの生成は、境界情報テーブル３００の外部境界の点列に対して次のような手順で行われる。
・点Ｐｋから穴Hiへのブリッジとして、点Ｐｋのあとへ点Ｖｉｊを追加する。
・そのあとへ時計回りで点Ｖｉｊ＋１，Ｖｉｊ＋２，…，Ｖｉｎ，Ｖｉ１，Ｖｉ２，…，Ｖｉｊ−１を追加する。
・穴の終点Ｖｉｊから外部境界上の点Ｐｋへのブリッジを作成するために点Ｐｋを追加する。
・最後に、この穴のグループを削除して、境界情報テーブル３００の穴のグループを示すリンクを更新する。
このようにして、新しい外部境界の点列は次のようになる。
Ｐ１，Ｐ２，…，Ｐｋ，Ｖｉｊ，Ｖｉｊ＋１，…Ｖｉｎ，Ｖｉ１，…，
Ｖｉｊ−１，Ｖｉｊ，Ｐｋ，Ｐｋ＋１，…，Ｐｍ
【００１８】
（２）処理の流れ
以下に、本システムの処理の流れを図５のフローチャートと図６〜１３の図を使って説明する。
ここでは２次元空間における有穴ポリゴン（図６参照）を対象にして説明するが、３次元空間に対しても同様に適用できる。バウンディングボックスは、２次元空間では４つの線分によって囲まれるが、３次元空間では６つの平面によって囲まれることになり、この各穴に対応した６つの平面と外部境界上の点との最短距離を持つ対を探すことになる。
【００１９】
ステップＳ１００：
有穴ポリゴンを表す境界情報テーブル３００の各穴を示す点列のグループに対して、バウンディングボックスを生成する。
例えば、各穴の点列の各点の各座標の最小値と最大値を求め、それぞれの値を持つ２次元の各軸に平行な４つの線分で囲まれたボックスを作成し、これをバウンディングボックスとする（図７破線参照）。
これらの各座標の最小値と最大値は境界情報テーブル３００へ格納される。
【００２０】
ステップＳ１１０：
外部境界上の点列のうちの点と上記で求めたバウンディングボックスのすべての距離を計算し、そのうち最も距離が最小となるバウンディングボックスを選択する。ここで見つけた外部境界上の点をＰｋ、バウンディングボックスＢｉとする。
穴が１しかないときには、この穴のバウンディングボックスと最短距離にある外部境界上の点を見つける。
図８の例では、外部境界上の点Ｐ４と穴２のバウンディングボックスが一番近いと判断された。
【００２１】
ステップＳ１２０：
ステップＳ１１０で見つけた穴Ｈｉを形成する点列と見つけた外部境界上の点（Ｐｋ）との間の距離を計算し、その距離が最小となる点（Ｖｉｊ）を選択する。
図８の例では、この穴２を形成する点列のうち外部境界上の点Ｐ４との最短距離を持つ点を見つけ、Ｖ２５が最近接点と判断された。
【００２２】
ステップＳ１３０：
ステップＳ１２０で見つけた外部境界上の点（Ｐｋ）と穴上の点（Ｖｉｊ）とを結んでブリッジを生成する。
これは前述したように、境界情報テーブル３００の外部境界の点列のうちステップＳ１２０で見つけた点（Ｐｋ）をコピーし、その間に穴Ｈｉの点列をＶｉｊを始点として並び替え、最後に点Ｖｉｊを追加して挿入移動するようにして穴Ｈｉを削除する。
図８の例では、境界情報テーブル３００は図９のように更新される。
・ブリッジを生成する前の外部境界：
Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６，Ｐ７，Ｐ８
・ブリッジを生成する前の穴２：
Ｖ２１，Ｖ２２，Ｖ２３，Ｖ２４，Ｖ２５，Ｖ２６
・ブリッジを生成した後の外部境界：
Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｖ２５，Ｖ２６，Ｖ２１，Ｖ２２，Ｖ２３，Ｖ２４，Ｖ２５，Ｐ４，Ｐ５，Ｐ６，Ｐ７，Ｐ８
・ブリッジを生成した後の穴２：
削除され、境界情報テーブル３００は穴のグループを示すリンクは、穴１から穴３へリンクするように更新される。
【００２３】
ステップＳ１４０：
ステップＳ１３０で更新された境界情報テーブル３００をもとに、残りの穴があればステップＳ１１０へ戻って繰り返す。
残りの穴がなければ、穴のないポリゴンが完成したことになるので終了する（図１０〜１３参照）。
【００２４】
２．実施例２（プログラムとしての実施例）
なお、本発明の有穴ポリゴンのブリッジ生成システムは上記の実施形態のみに限定されたものではない。
例えば、図２に示した有穴ポリゴンのブリッジ生成システムを構成するバウンディングボックス生成手段１０、最近接点決定手段２０、ブリッジ生成手段３０の各機能をプログラム化し、予めＣＤ−ＲＯＭ等の記録媒体に書き込んでおき、このＣＤ−ＲＯＭをＣＤ−ＲＯＭドライブを搭載したコンピュータに装着して、コンピュータへそのプログラムをロードすることによって、実施例１の実施形態と同様な機能を実現することができる。
【００２５】
尚、記録媒体としては半導体媒体（例えば、ＲＯＭ、ＩＣメモリカード等）、光媒体（例えば、ＤＶＤ−ＲＯＭ，ＭＯ，ＭＤ，ＣＤ−Ｒ等）、磁気媒体（例えば、磁気テープ、フレキシブルディスク等）のいずれであってもよい。
【００２６】
【発明の効果】
以上説明したように特許請求の範囲の発明によれば、複数の穴のあるポリゴンを穴のないポリゴン群へ簡単な計算式で且つ計算量の少ない効率的なブリッジ生成システムを提供することにより、ポリゴン分割の生成が効率的にできるようになった。
【図面の簡単な説明】
【図１】  本発明に関する実施例１の全体構成図である。
【図２】  本発明に関する実施例１の機能構成図である。
【図３】  パラメータ情報テーブルのデータ構造を説明するための図である。
【図４】  境界情報テーブルのデータ構造を説明するための図である。
【図５】  本発明に関する処理の流れを説明するためのフローチャートである。
【図６】  本発明を説明するための有穴ポリゴンの図である。
【図７】  本発明におけるバウンディングボックスを示す図である。
【図８】  本発明における最初のブリッジ生成を示す図である。
【図９】  本発明における最初のブリッジ生成したときの境界情報テーブルの更新状態を示す図である。
【図１０】  本発明における２番目のブリッジ生成を示す図である。
【図１１】  本発明における２番目のブリッジ生成したときの境界情報テーブルの更新状態を示す図である。
【図１２】  本発明における最後のブリッジ生成を示す図である。
【図１３】  本発明における最後のブリッジ生成したときの境界情報テーブルの更新状態を示す図である。
【符号の説明】
１…入力手段、２…表示手段、３…ＣＰＵ、４…メモリ、５…記憶手段、１０…バウンディングボックス生成手段、２０…最近接点決定手段、３０…ブリッジ生成手段、２００…パラメータ情報テーブル、３００…境界情報テーブル。
【図１】
0003815909.tif 000002
【図２】
0003815909.tif 000003
【図３】
0003815909.tif 000004
【図４】
0003815909.tif 000005
【図５】
0003815909.tif 000006
【図６】
0003815909.tif 000007
【図７】
0003815909.tif 000008
【図８】
0003815909.tif 000009
【図９】
0003815909.tif 000010
【図１０】
0003815909.tif 000011
【図１１】
0003815909.tif 000012
【図１２】
0003815909.tif 000013
【図１３】
0003815909.tif 000014