JP2010026636A - 領域間の集合演算方法および集合演算処理装置 - Google Patents
領域間の集合演算方法および集合演算処理装置 Download PDFInfo
- Publication number
- JP2010026636A JP2010026636A JP2008184799A JP2008184799A JP2010026636A JP 2010026636 A JP2010026636 A JP 2010026636A JP 2008184799 A JP2008184799 A JP 2008184799A JP 2008184799 A JP2008184799 A JP 2008184799A JP 2010026636 A JP2010026636 A JP 2010026636A
- Authority
- JP
- Japan
- Prior art keywords
- line segment
- region
- line
- outside
- point
- 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.)
- Pending
Links
Images
Abstract
【課題】数値計算による誤差の影響をうけにくい領域間の集合演算方法を提供すること。
【解決手段】互いに交差する第1領域および第2領域の集合演算を実施する方法において、同じ交点を始点とする第1線分および第2線分について領域に対する内外判定を行う際に、線分内外判定工程S33は、第1線分上の任意の第1選択点を選択し、第2線分上の任意の第2選択点を選択する点選択工程S331と、第1選択点が第2領域の内部であるか外部であるかを判定し、第2選択点が第1領域の内部であるか外部であるかを判定する点内外判定工程S332とを有し、点内外判定工程S332の判定結果により、第1線分および第2線分の内外を判定する。
【選択図】図7
【解決手段】互いに交差する第1領域および第2領域の集合演算を実施する方法において、同じ交点を始点とする第1線分および第2線分について領域に対する内外判定を行う際に、線分内外判定工程S33は、第1線分上の任意の第1選択点を選択し、第2線分上の任意の第2選択点を選択する点選択工程S331と、第1選択点が第2領域の内部であるか外部であるかを判定し、第2選択点が第1領域の内部であるか外部であるかを判定する点内外判定工程S332とを有し、点内外判定工程S332の判定結果により、第1線分および第2線分の内外を判定する。
【選択図】図7
Description
本発明は、計算機上で図形処理する際の、閉じられた境界線に囲まれた領域間の集合演算方法および集合演算処理装置に関する。
従来、計算機上で図形処理する際に、領域同士の集合演算(和集合、差集合、積集合など)を適宜組み合せて実行して、目的に応じた図形を生成することが行われている。
この領域間の集合演算方法では、一方の領域の輪郭である境界線が、他方の領域の内部にあるか外部にあるかを判断できれば、すべての集合演算を実施することが可能である。例えば、図10(A)に示す長方形の領域Aと楕円形の領域Bとについて、和集合(OR)の集合演算を実施するには、領域Aの境界線のうちで領域Bの内部にある部分(線分E2)と、領域Bの境界線のうちで領域Aの内部にある部分(線分E3)とを削除すればよく、図10(B)に示す和集合が得られる。また、積集合(AND)を実施するには、領域Bの内部にある線分E2と、領域Aの内部にある線分E3とを残せばよく、図10(C)に示す積集合が得られる。また、領域Aから領域Bを引く差集合を実施するには、領域Bの内部にある線分E2を削除し、領域Aの内部にある線分E3を残せばよく、図10(D)に示す差集合が得られる。
この領域間の集合演算方法では、一方の領域の輪郭である境界線が、他方の領域の内部にあるか外部にあるかを判断できれば、すべての集合演算を実施することが可能である。例えば、図10(A)に示す長方形の領域Aと楕円形の領域Bとについて、和集合(OR)の集合演算を実施するには、領域Aの境界線のうちで領域Bの内部にある部分(線分E2)と、領域Bの境界線のうちで領域Aの内部にある部分(線分E3)とを削除すればよく、図10(B)に示す和集合が得られる。また、積集合(AND)を実施するには、領域Bの内部にある線分E2と、領域Aの内部にある線分E3とを残せばよく、図10(C)に示す積集合が得られる。また、領域Aから領域Bを引く差集合を実施するには、領域Bの内部にある線分E2を削除し、領域Aの内部にある線分E3を残せばよく、図10(D)に示す差集合が得られる。
しかしながら、計算機を用いた領域間の集合演算処理において避けることのできない問題として、図形データ(領域情報)を数値計算する際に生じる誤差の影響の問題がある。これは、図形処理には幾何学に基づいた連続的な量が扱われ、必然的に無理数等の数値計算が要求されるのに対して、計算機では図形データをデジタル量として扱うので量子化による誤差の影響を避けることができないためである。
例えば、前述の領域A、Bの集合演算では、図10(A)中の三角矢印で示すように、境界線を構成する線分をそれぞれベクトル量として扱うことで、各線分が区別されるが、領域A、Bの交差部分の線分が境界線全体に対して短い場合や、交差部分の線分同士が略平行な場合には、各線分が正しく区別されないというおそれがある。
具体的には、図11(A)に示す領域Cと領域Dとの和集合の集合演算を実施する場合のように、交差部分の2つの線分E5,E8が正しく区別されれば、図11(B)に示す正しい和集合が得られるが、実際には、2つの線分E5,E8が略平行であり境界線全体に対して短いため、各線分E5,E8が混同されると、図11(B)に示すような誤った結果となる可能性がある。
例えば、前述の領域A、Bの集合演算では、図10(A)中の三角矢印で示すように、境界線を構成する線分をそれぞれベクトル量として扱うことで、各線分が区別されるが、領域A、Bの交差部分の線分が境界線全体に対して短い場合や、交差部分の線分同士が略平行な場合には、各線分が正しく区別されないというおそれがある。
具体的には、図11(A)に示す領域Cと領域Dとの和集合の集合演算を実施する場合のように、交差部分の2つの線分E5,E8が正しく区別されれば、図11(B)に示す正しい和集合が得られるが、実際には、2つの線分E5,E8が略平行であり境界線全体に対して短いため、各線分E5,E8が混同されると、図11(B)に示すような誤った結果となる可能性がある。
このような問題は、図形を表示しながら作業者と対話的に図形情報を処理する図形情報処理装置においても同様に問題となっていた(例えば、特許文献1の図5、図6参照)。
特許文献1に記載の図形処理装置では、図形の処理箇所に応じて作業者が選定する拡大率または縮小率に反比例して最終しきい値を変化させ、例えば円弧と線分との交点および接点などをその図形の拡大率または縮小率に応じて処理することができ、細かい図形データ処理をすることが提案されているが、図形処理に作業者が介在しなくてもすむ方法が望まれている。
特許文献1に記載の図形処理装置では、図形の処理箇所に応じて作業者が選定する拡大率または縮小率に反比例して最終しきい値を変化させ、例えば円弧と線分との交点および接点などをその図形の拡大率または縮小率に応じて処理することができ、細かい図形データ処理をすることが提案されているが、図形処理に作業者が介在しなくてもすむ方法が望まれている。
本発明の目的は、数値計算による誤差の影響をうけにくい領域間の集合演算方法および集合演算処理装置を提供することである。
本発明の領域間の集合演算方法は、平面上で閉じた境界線に囲まれた複数の領域のうちで互いに交差する第1領域および第2領域の集合演算を計算機上で実施する方法であって、境界線分割手段が、前記第1領域の境界線および前記第2領域の境界線を、互いの交点で複数の線分に分割する境界線分割工程と、線分方向設定手段が、前記境界線に沿って一巡する所定方向を、前記線分の方向として設定する線分方向設定工程と、同一の前記交点を始点とする2本の前記線分のうち、前記第1領域の境界線に属する線分を第1線分とし、前記第2領域の境界線に属する線分を第2線分とした際に、線分内外判定手段が、前記交点ごとに、前記第1線分が前記第2領域の内部であるか外部であるかを判定し、前記第2線分が前記第1領域の内部であるか外部であるかを判定する線分内外判定工程と、境界線生成手段が、前記交点ごとに、前記第1線分および前記第2線分のいずれか一方を前記集合演算に応じて選択し、前記集合演算後の領域の境界線として生成する境界線生成工程と、を備えて構成され、前記線分内外判定工程は、点選択手段が、前記第1線分上の任意の第1選択点を選択し、前記第2線分上の任意の第2選択点を選択する点選択工程と、点内外判定手段が、前記第1選択点が前記第2領域の内部であるか外部であるかを判定し、前記第2選択点が前記第1領域の内部であるか外部であるかを判定する点内外判定工程と、を有し、前記点内外判定工程の判定結果により、前記第1線分および前記第2線分の内外を判定することを特徴とする。
この発明の集合演算方法によると、まず、境界線分割手段が、交差する2つの領域(第1領域、第2領域)について、各領域の境界線(輪郭線)を、互いの交点で分割して複数の線分とする(境界線分割工程)。
そして、線分方向設定手段が、分割された各線分に所定の方向を設定する(線分方向設定工程)ことで、同じ交点を始点とする線分は、第1領域の境界線に属する第1線分と第2領域の境界線に属する第2線分との2本の線分によって構成されることとなる。また、第1線分が第2領域の内部となる場合は第2線分が第1領域の外部となり、逆に、第1線分が第2領域の外部となる場合は第2線分が第1領域の内部となる。
そして、線分内外判定手段が、交点ごとに、第1線分が第2領域の内部であるか外部であるかを判定し、第2線分が第1領域の内部であるか外部であるかを判定することで、すべての線分について内部であるか外部であるかの判定をすることができる(線分内外判定工程)。
そして、線分方向設定手段が、分割された各線分に所定の方向を設定する(線分方向設定工程)ことで、同じ交点を始点とする線分は、第1領域の境界線に属する第1線分と第2領域の境界線に属する第2線分との2本の線分によって構成されることとなる。また、第1線分が第2領域の内部となる場合は第2線分が第1領域の外部となり、逆に、第1線分が第2領域の外部となる場合は第2線分が第1領域の内部となる。
そして、線分内外判定手段が、交点ごとに、第1線分が第2領域の内部であるか外部であるかを判定し、第2線分が第1領域の内部であるか外部であるかを判定することで、すべての線分について内部であるか外部であるかの判定をすることができる(線分内外判定工程)。
この線分内外判定工程では、まず、点選択手段により、第1線分上の任意の第1選択点を選択し、第2線分上の任意の第2選択点を選択する(点選択工程)。そして、点内外判定手段により、第1選択点が第2領域の内部であるか外部であるかを判定し、第2選択点が第1領域の内部であるか外部であるかを判定する(点内外判定工程)。そして、点内外判定工程の判定結果により、第1線分および第2線分の内外を判定する。
ここで、例えば、点選択手段が第1選択点と第2選択点とを同数ずつ選択して、点内外判定手段が第2領域の内部と判定された第1選択点の数と、第1領域の内部と判定された第2選択点の数とを比較して、点数の大きい方の線分が内部であると判定してもよい。
ここで、例えば、点選択手段が第1選択点と第2選択点とを同数ずつ選択して、点内外判定手段が第2領域の内部と判定された第1選択点の数と、第1領域の内部と判定された第2選択点の数とを比較して、点数の大きい方の線分が内部であると判定してもよい。
最後に、境界線生成手段が、交点ごとに、第1線分および第2線分のいずれか一方を集合演算に応じて選択し、集合演算後の領域の境界線として生成する(境界線生成工程)ことで、領域間の集合演算処理が完了する。
例えば、境界線生成手段が、線分内外判定手段により外部と判定された線分を用いて集合演算後の領域の境界線を生成することで、和集合の演算処理が可能となる。
また、境界線生成手段が、線分内外判定手段により内部と判定された線分を用いて集合演算後の領域の境界線を生成することで、積集合の演算処理が可能となる。
さらに、境界線生成手段が、第1領域の内部と判定された第2線分と、第2領域の外部と判定された第1線分とを用いて演算後の領域の境界線を生成することで、第1領域から第2領域を引いた差集合の演算処理が可能となる。
例えば、境界線生成手段が、線分内外判定手段により外部と判定された線分を用いて集合演算後の領域の境界線を生成することで、和集合の演算処理が可能となる。
また、境界線生成手段が、線分内外判定手段により内部と判定された線分を用いて集合演算後の領域の境界線を生成することで、積集合の演算処理が可能となる。
さらに、境界線生成手段が、第1領域の内部と判定された第2線分と、第2領域の外部と判定された第1線分とを用いて演算後の領域の境界線を生成することで、第1領域から第2領域を引いた差集合の演算処理が可能となる。
この発明によれば、内部であるか外部であるかの内外判定対象となる2つの線分について、各線分をベクトル量として扱って数値計算するのではなく、各線分ごとの選択点について個々に内外判定を実施して、選択点の内外判定結果に基づいて線分の内外判定を行うことで、集合演算処理に対する数値計算による誤差の影響を軽減することができる。
例えば、複数の領域を含んだ領域情報(GERBERデータなど)を、領域の輪郭線(境界線)のみを表現する境界線情報(DXFデータなど)に変換する際にも、本発明の集合演算処理方法を用いれば、領域情報の変換処理における精度を向上させることができる。
例えば、複数の領域を含んだ領域情報(GERBERデータなど)を、領域の輪郭線(境界線)のみを表現する境界線情報(DXFデータなど)に変換する際にも、本発明の集合演算処理方法を用いれば、領域情報の変換処理における精度を向上させることができる。
本発明の領域間の集合演算処理装置は、平面上で閉じた境界線に囲まれた複数の領域のうちで互いに交差する第1領域および第2領域の集合演算を実施する集合演算処理装置であって、前記第1領域の境界線および前記第2領域の境界線を、互いの交点で複数の線分に分割する境界線分割手段と、前記境界線に沿って一巡する所定方向を、前記線分の方向として設定する線分方向設定手段と、同一の前記交点を始点とする2本の前記線分のうち、前記第1領域の境界線に属する線分を第1線分とし、前記第2領域の境界線に属する線分を第2線分とした際に、前記交点ごとに、前記第1線分が前記第2領域の内部であるか外部であるかを判定し、前記第2線分が前記第1領域の内部であるか外部であるかを判定する線分内外判定手段と、前記交点ごとに、前記第1線分および前記第2線分のいずれか一方を前記集合演算に応じて選択し、前記集合演算後の領域の境界線として生成する境界線生成手段と、を備えて構成され、前記線分内外判定手段は、前記第1線分上の任意の第1選択点を選択し、前記第2線分上の任意の第2選択点を選択する点選択手段と、前記第1選択点が前記第2領域の内部であるか外部であるかを判定し、前記第2選択点が前記第1領域の内部であるか外部であるかを判定する点内外判定手段と、を有し、前記点内外判定手段の判定結果により、前記第1線分および前記第2線分の内外を判定する
ことを特徴とする。
以上のような本発明の集合演算処理装置によれば、前述の集合演算方法と同様の効果を得ることができる。
ことを特徴とする。
以上のような本発明の集合演算処理装置によれば、前述の集合演算方法と同様の効果を得ることができる。
以下、本発明の実施形態を図面に基づいて説明する。
図1は、本発明が適用される図形処理装置としてのデータコンバータ1を示す図である。データコンバータ1は、複数の領域を含んだ領域情報(GERBERデータなど)を、領域の境界線のみを表現する境界線情報(DXFデータなど)に変換する機能を有する。データコンバータ1に入力されるGERBERデータは、プリント基板などの図形データを自動で作成するコマンドから構成され、例えば、図1のデータ形式100で表現されている。図1の図形配列200は、GERBERデータをデータコンバータ1上で実行した際に、作成される図形配列の一例であり、複数の平面領域を表示している。図形配列200は、データコンバータ1によって、図1の図形配列300で示されるDXFデータに変換される。この図形配列300は、図形配列200の平面領域の境界線のみを表示している。
なお、図形データを自動で作成するコマンドからなる他の領域情報であるHPGLデータを所定の図形データに変換する場合にも本発明を適用できる。
図1は、本発明が適用される図形処理装置としてのデータコンバータ1を示す図である。データコンバータ1は、複数の領域を含んだ領域情報(GERBERデータなど)を、領域の境界線のみを表現する境界線情報(DXFデータなど)に変換する機能を有する。データコンバータ1に入力されるGERBERデータは、プリント基板などの図形データを自動で作成するコマンドから構成され、例えば、図1のデータ形式100で表現されている。図1の図形配列200は、GERBERデータをデータコンバータ1上で実行した際に、作成される図形配列の一例であり、複数の平面領域を表示している。図形配列200は、データコンバータ1によって、図1の図形配列300で示されるDXFデータに変換される。この図形配列300は、図形配列200の平面領域の境界線のみを表示している。
なお、図形データを自動で作成するコマンドからなる他の領域情報であるHPGLデータを所定の図形データに変換する場合にも本発明を適用できる。
図2は、データコンバータ1の構成を示すブロック図であり、入力部2、領域生成部3、集合演算処理部4、出力部5から構成される。集合演算処理部4は、境界線分割手段41と、線分方向設定手段42と、線分内外判定手段43と、境界線生成手段44とを備え、さらに、線分内外判定手段43は、点選択手段431および点内外判定手段432を有する。
図3は、データコンバータ1によるGERBERデータの変換手順を示すフローで、以下の工程S1〜S4によりなる。
入力工程S1にて、GERBERデータが入力部2に入力される。
領域生成工程S2にて、領域生成部3がGERBERデータを実行して、GERBERデータで定義された複数の領域を生成する。各領域の境界線は、主に円、楕円、直線、NURBS(非一様有理Bスプライン Non-Uniform Rational B-Spline)などの自由曲線によって表示される。
例えば、GERBERデータの1行目の命令(図1に示すG01X113000Y22500* アパーチャー形状とアパーチャー形状が動く軌跡)を実行すると、例えば、アパーチャー形状として円B1(図4(A))が、直線方向B2に移動して軌跡を描く。この命令によって描画される楕円状の領域Bを図4(B)に示す。領域Bの境界線は4つの要素(2つの半円E11,E12、2つの直線E13,E14)によって構成される(図4(C))。
図5(A)は、前述の領域B(第2領域)と、領域Bと同様に描画された長方形状の領域A(第1領域)とを示す。なお、領域A,Bは、GERBERデータによって平面上に描画かれ、閉じた境界線に囲まれた複数の領域のうちで互いに交差する領域の例として説明する。
入力工程S1にて、GERBERデータが入力部2に入力される。
領域生成工程S2にて、領域生成部3がGERBERデータを実行して、GERBERデータで定義された複数の領域を生成する。各領域の境界線は、主に円、楕円、直線、NURBS(非一様有理Bスプライン Non-Uniform Rational B-Spline)などの自由曲線によって表示される。
例えば、GERBERデータの1行目の命令(図1に示すG01X113000Y22500* アパーチャー形状とアパーチャー形状が動く軌跡)を実行すると、例えば、アパーチャー形状として円B1(図4(A))が、直線方向B2に移動して軌跡を描く。この命令によって描画される楕円状の領域Bを図4(B)に示す。領域Bの境界線は4つの要素(2つの半円E11,E12、2つの直線E13,E14)によって構成される(図4(C))。
図5(A)は、前述の領域B(第2領域)と、領域Bと同様に描画された長方形状の領域A(第1領域)とを示す。なお、領域A,Bは、GERBERデータによって平面上に描画かれ、閉じた境界線に囲まれた複数の領域のうちで互いに交差する領域の例として説明する。
集合演算処理工程S3にて、集合演算処理部(集合演算処理装置)4が領域A,B間の集合演算処理(和集合)を実行する。
図3にて、集合演算処理工程S3では、以下の工程S31〜S34が順次実行される。
境界線分割工程S31にて、境界線分割手段41が、領域Aの境界線EAおよび領域Bの境界線EBの交点P1,P2を算出し、交点P1,P2で境界線EAを複数の線分E1,E2に分割し、境界線EBを複数の線分E3,E4に分割する(図5(B))。
図3にて、集合演算処理工程S3では、以下の工程S31〜S34が順次実行される。
境界線分割工程S31にて、境界線分割手段41が、領域Aの境界線EAおよび領域Bの境界線EBの交点P1,P2を算出し、交点P1,P2で境界線EAを複数の線分E1,E2に分割し、境界線EBを複数の線分E3,E4に分割する(図5(B))。
線分方向設定工程S32にて、線分方向設定手段42が、境界線EA,EBに沿って一巡する所定方向(本実施例では反時計まわりの方向)を、線分E1〜E4の方向として設定する(図5(B))。線分E1〜E4の方向は、図中、三角矢印で示される。これによって、同一の交点P1を始点とする2本の線分は、領域Aの境界線EAに属する線分E1(第1線分)と、領域Bの境界線EBに属する線分E3(第2線分)となる。
線分内外判定工程S33にて、線分内外判定手段43が、線分E1が領域Bの内部であるか外部であるかを判定し、線分E3が領域Aの内部であるか外部であるかを判定する。ここでは、線分E3が領域Aの内部であると判定される(図6(A))。
同様に、交点P2についても、交点P2を始点とする2本の線分は、領域Aの境界線EAに属する線分E2(第1線分)と、領域Bの境界線EBに属する線分E4(第2線分)となるので、線分内外判定手段43が、線分E2が領域Bの内部であるか外部であるかを判定し、線分E4が領域Aの内部であるか外部であるかを判定する。ここでは、線分E2が領域Bの内部であると判定される。
同様に、交点P2についても、交点P2を始点とする2本の線分は、領域Aの境界線EAに属する線分E2(第1線分)と、領域Bの境界線EBに属する線分E4(第2線分)となるので、線分内外判定手段43が、線分E2が領域Bの内部であるか外部であるかを判定し、線分E4が領域Aの内部であるか外部であるかを判定する。ここでは、線分E2が領域Bの内部であると判定される。
境界線生成工程S34にて、境界線生成手段44が、交点P1,P2ごとに、線分内外判定工程S33の結果に基づいて第1線分および第2線分のいずれか一方を集合演算に応じて選択し、集合演算後の領域の境界線として生成する。
本実施形態のように、領域A,Bの和集合を演算処理する場合には、交点P1について領域Aの内部と判定された線分E2と、領域Bの内部と判定された線分E3とを削除し、線分E1,E4を選択して和集合の領域(A+B)の境界線EA+Bを生成する(図6(B))。
本実施形態のように、領域A,Bの和集合を演算処理する場合には、交点P1について領域Aの内部と判定された線分E2と、領域Bの内部と判定された線分E3とを削除し、線分E1,E4を選択して和集合の領域(A+B)の境界線EA+Bを生成する(図6(B))。
GERBERデータによって平面上に描画かれたすべての領域に対して、前述の領域間の集合演算処理工程S3を実施することにより、所定の図形データに変換することができる。すなわち、GERBERデータについて和集合の演算処理を実施することにより、GERBERデータをDXFデータに変換することができる。
出力工程S4にて、出力部5がDXFデータを出力する。
以上の工程S1〜S4により、データコンバータ1のデータ変換が完了する。
以上の工程S1〜S4により、データコンバータ1のデータ変換が完了する。
以降、前述の線分内外判定工程S33について図面に基づいて詳しく説明する。
図7は、線分内外判定工程S33による線分の判定手順を示すフローで、以下の工程S331〜S334によりなる。また、各工程S331〜S334の具体的な機能を図8(A)に示す交点P1を始点とする2つの線分E1,E3を用いて説明する。
点選択工程S331にて、点選択手段431が、線分E1上の任意の複数の第1選択点PA1〜PA9を選択し、線分E3上の任意の複数の第2選択点PB1〜PB9を選択する(図8(B))。第1選択点PA1〜PA9および第2選択点PB1〜PB9は、同数ずつ選択される。
図7は、線分内外判定工程S33による線分の判定手順を示すフローで、以下の工程S331〜S334によりなる。また、各工程S331〜S334の具体的な機能を図8(A)に示す交点P1を始点とする2つの線分E1,E3を用いて説明する。
点選択工程S331にて、点選択手段431が、線分E1上の任意の複数の第1選択点PA1〜PA9を選択し、線分E3上の任意の複数の第2選択点PB1〜PB9を選択する(図8(B))。第1選択点PA1〜PA9および第2選択点PB1〜PB9は、同数ずつ選択される。
点内外判定工程S332にて、点内外判定手段432が、第1選択点PA1〜PA9が領域Bの内部であるか外部であるかを個々に判定し(図9(A))、第2選択点PB1〜PB9が領域Aの内部であるか外部であるかを個々に判定する(図9(B))。
さらに、内部率算出工程S333にて、線分内外判定手段43は、点内外判定工程S332の判定結果を用いて、次式で示す内部率を線分E1,E3ごとに算出する。
線分E1の内部率=(領域Bの内部と判定された線分E1上の選択点の数)/(線分E1上の選択点の数) ・・・(1)
線分E3の内部率=(領域Aの内部と判定された線分E3上の選択点の数)/(線分E3上の選択点の数) ・・・(2)
さらに、内部率算出工程S333にて、線分内外判定手段43は、点内外判定工程S332の判定結果を用いて、次式で示す内部率を線分E1,E3ごとに算出する。
線分E1の内部率=(領域Bの内部と判定された線分E1上の選択点の数)/(線分E1上の選択点の数) ・・・(1)
線分E3の内部率=(領域Aの内部と判定された線分E3上の選択点の数)/(線分E3上の選択点の数) ・・・(2)
本実施形態では、式(1),式(2)はそれぞれ以下の値となる。
線分E1の内部率=0/9=0.0 ・・・(3)
線分E3の内部率=9/9=1.0 ・・・(4)
線分E1の内部率=0/9=0.0 ・・・(3)
線分E3の内部率=9/9=1.0 ・・・(4)
内部率比較工程S334にて、線分内外判定手段43は、式(3),式(4)の内部率を比較し、内部率の大きい方の線分が領域の内部にあると判定する。ここでは、
線分E1の内部率<線分E3の内部率 ・・・(5)
となるので、線分E3が領域Aの内部にあると判定され、線分E1が領域Bの外部にあると判定される。
以上の工程S331〜S334により、点内外判定手段432が、線分E1,E3の内外を判定することができる。同様に、交点P2を始点とする2つの線分E2,E4についても内外を判定することができる。
線分E1の内部率<線分E3の内部率 ・・・(5)
となるので、線分E3が領域Aの内部にあると判定され、線分E1が領域Bの外部にあると判定される。
以上の工程S331〜S334により、点内外判定手段432が、線分E1,E3の内外を判定することができる。同様に、交点P2を始点とする2つの線分E2,E4についても内外を判定することができる。
[本実施形態による効果]
本実施形態によれば、次のような効果を奏することができる。
(1)内部であるか外部であるかの内外判定対象となる2つの線分E1,E3について、各線分E1,E3をベクトル量として扱って数値計算するのではなく、線分E1,E3ごとの選択点PA1〜PA9,PB1〜PB9について個々に内外判定を実施して、選択点の内外判定結果に基づいて線分E1,E3の内外判定を行うことで、集合演算処理に対する数値計算による誤差の影響を軽減することができる。
本実施形態によれば、次のような効果を奏することができる。
(1)内部であるか外部であるかの内外判定対象となる2つの線分E1,E3について、各線分E1,E3をベクトル量として扱って数値計算するのではなく、線分E1,E3ごとの選択点PA1〜PA9,PB1〜PB9について個々に内外判定を実施して、選択点の内外判定結果に基づいて線分E1,E3の内外判定を行うことで、集合演算処理に対する数値計算による誤差の影響を軽減することができる。
(2)データコンバータ1により、GERBERデータを領域の境界線のみを表現するDXFデータに高い精度で変換することが可能となる。
[本発明の変形例]
なお、本発明は前述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、前記実施形態では、交点が2箇所の場合を説明したが、交点が3箇所以上の場合にも、本発明の方法を適用可能である。
また、第1線分および第2線分ごとに1箇所以上の選択点を選択すれば、各線分の内外判定を行うことができるが、選択点を数十点選択した方がより好ましく、より高い精度の集合演算処理を実施できる。
また、選択点の内外判定の際、式(1),式(2)で示す内部率を用いた判定を説明したが、他の判定方法を採用してもよい。
なお、本発明は前述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、前記実施形態では、交点が2箇所の場合を説明したが、交点が3箇所以上の場合にも、本発明の方法を適用可能である。
また、第1線分および第2線分ごとに1箇所以上の選択点を選択すれば、各線分の内外判定を行うことができるが、選択点を数十点選択した方がより好ましく、より高い精度の集合演算処理を実施できる。
また、選択点の内外判定の際、式(1),式(2)で示す内部率を用いた判定を説明したが、他の判定方法を採用してもよい。
本発明は、領域の集合演算のための境界線の計算アルゴリズムに利用でき、例えば、GERBERデータをDXFデータに変換するデータコンバータなどに適用可能である。
4…集合演算処理部(集合演算処理装置)
41…境界線分割手段
42…線分方向設定手段
43…線分内外判定手段
44…境界線生成手段
431…点選択手段
432…点内外判定手段
A…第1領域
B…第2領域
E1,E2…第1線分
E3,E4…第2線分
PA1〜PA9…第1選択点
PB1〜PB9…第2選択点。
41…境界線分割手段
42…線分方向設定手段
43…線分内外判定手段
44…境界線生成手段
431…点選択手段
432…点内外判定手段
A…第1領域
B…第2領域
E1,E2…第1線分
E3,E4…第2線分
PA1〜PA9…第1選択点
PB1〜PB9…第2選択点。
Claims (2)
- 平面上で閉じた境界線に囲まれた複数の領域のうちで互いに交差する第1領域および第2領域の集合演算を計算機上で実施する方法であって、
境界線分割手段が、前記第1領域の境界線および前記第2領域の境界線を、互いの交点で複数の線分に分割する境界線分割工程と、
線分方向設定手段が、前記境界線に沿って一巡する所定方向を、前記線分の方向として設定する線分方向設定工程と、
同一の前記交点を始点とする2本の前記線分のうち、前記第1領域の境界線に属する線分を第1線分とし、前記第2領域の境界線に属する線分を第2線分とした際に、線分内外判定手段が、前記交点ごとに、前記第1線分が前記第2領域の内部であるか外部であるかを判定し、前記第2線分が前記第1領域の内部であるか外部であるかを判定する線分内外判定工程と、
境界線生成手段が、前記交点ごとに、前記第1線分および前記第2線分のいずれか一方を前記集合演算に応じて選択し、前記集合演算後の領域の境界線として生成する境界線生成工程と、を備えて構成され、
前記線分内外判定工程は、
点選択手段が、前記第1線分上の任意の第1選択点を選択し、前記第2線分上の任意の第2選択点を選択する点選択工程と、
点内外判定手段が、前記第1選択点が前記第2領域の内部であるか外部であるかを判定し、前記第2選択点が前記第1領域の内部であるか外部であるかを判定する点内外判定工程と、を有し、
前記点内外判定工程の判定結果により、前記第1線分および前記第2線分の内外を判定することを特徴とする領域間の集合演算方法。 - 平面上で閉じた境界線に囲まれた複数の領域のうちで互いに交差する第1領域および第2領域の集合演算を実施する集合演算処理装置であって、
前記第1領域の境界線および前記第2領域の境界線を、互いの交点で複数の線分に分割する境界線分割手段と、
前記境界線に沿って一巡する所定方向を、前記線分の方向として設定する線分方向設定手段と、
同一の前記交点を始点とする2本の前記線分のうち、前記第1領域の境界線に属する線分を第1線分とし、前記第2領域の境界線に属する線分を第2線分とした際に、
前記交点ごとに、前記第1線分が前記第2領域の内部であるか外部であるかを判定し、前記第2線分が前記第1領域の内部であるか外部であるかを判定する線分内外判定手段と、
前記交点ごとに、前記第1線分および前記第2線分のいずれか一方を前記集合演算に応じて選択し、前記集合演算後の領域の境界線として生成する境界線生成手段と、を備えて構成され、
前記線分内外判定手段は、
前記第1線分上の任意の第1選択点を選択し、前記第2線分上の任意の第2選択点を選択する点選択手段と、
前記第1選択点が前記第2領域の内部であるか外部であるかを判定し、前記第2選択点が前記第1領域の内部であるか外部であるかを判定する点内外判定手段と、を有し、
前記点内外判定手段の判定結果により、前記第1線分および前記第2線分の内外を判定することを特徴とする領域間の集合演算処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008184799A JP2010026636A (ja) | 2008-07-16 | 2008-07-16 | 領域間の集合演算方法および集合演算処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008184799A JP2010026636A (ja) | 2008-07-16 | 2008-07-16 | 領域間の集合演算方法および集合演算処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010026636A true JP2010026636A (ja) | 2010-02-04 |
Family
ID=41732438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008184799A Pending JP2010026636A (ja) | 2008-07-16 | 2008-07-16 | 領域間の集合演算方法および集合演算処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010026636A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101754581B1 (ko) | 2010-05-25 | 2017-07-19 | 다솔 시스템므 | 제 1 및 제 2 모델링된 물체들로부터의 결과적 삼각형화 다면체 폐곡면 계산 |
-
2008
- 2008-07-16 JP JP2008184799A patent/JP2010026636A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101754581B1 (ko) | 2010-05-25 | 2017-07-19 | 다솔 시스템므 | 제 1 및 제 2 모델링된 물체들로부터의 결과적 삼각형화 다면체 폐곡면 계산 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4934789B2 (ja) | 補間処理方法および補間処理装置 | |
KR100707841B1 (ko) | 3차원 목표곡선을 이용한 곡면 변형 장치 및 그 방법 | |
KR101741402B1 (ko) | 평행 지오데식 곡선들에 의해 모델링되는 부품의 설계 | |
JP5177771B2 (ja) | 美的曲線を生成する図形情報処理装置、図形情報処理方法及び図形情報処理プログラム | |
CN101796546B (zh) | 插补处理方法以及插补处理装置 | |
WO2011111680A1 (ja) | 表面加工データの作成方法および装置 | |
JP5761476B2 (ja) | エネルギーマネジメント支援装置及びエネルギーマネジメント支援プログラム | |
Kineri et al. | Surface design based on direct curvature editing | |
JP4620565B2 (ja) | 解析メッシュ生成装置 | |
EP2546799B1 (en) | Method of aligning and three-dimensional profile evaluating system | |
CN111105501A (zh) | B-rep皮肤的3d设计 | |
EP2522952A2 (en) | Method for generating error image and system for generating error image | |
EP3140751B1 (en) | Method for creating a parametric planing hull model | |
CN115964594B (zh) | 一种面向网格模型顶点曲率的快速获取的方法及系统 | |
JP2010026636A (ja) | 領域間の集合演算方法および集合演算処理装置 | |
JP4966898B2 (ja) | 中立面メッシュデータを生成するプログラム、装置、及び方法 | |
JP2009122998A (ja) | ソリッド/サーフェースモデルから外形線を抽出する方法及びコンピュータソフトウエアプログラム | |
JP2009110073A (ja) | 設計支援装置、設計支援方法、および設計支援プログラム | |
JP2005301349A (ja) | 解析モデルの作成支援装置 | |
KR101122279B1 (ko) | 베지어 곡선에 따른 오프셋 곡선을 생성하는 방법 | |
JP2017004143A (ja) | 解析用メッシュ生成装置及び方法 | |
JP4912756B2 (ja) | ポリゴンデータ分割方法およびポリゴンデータ分割装置 | |
JP6026949B2 (ja) | 曲面描画装置および曲面描画用プログラム | |
JP5434849B2 (ja) | 表示処理プログラム、表示処理方法及び情報処理装置 | |
CN111444674B (zh) | 文字变形方法、介质及计算机设备 |