説明

図形処理プログラム、方法及び装置

【課題】塗り込み違反箇所についての処理を高速化する。
【解決手段】第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、第2の図形の第1の辺の各々を両側に所定長だけ移動させた第2の辺の頂点を、第1の辺の頂点を中心として所定長を半径とする円弧で結ぶことで、第3の図形を生成し、第2の図形と第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成する。第4の図形は、塗り込み違反箇所を修正した後の図形となっている。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、図形処理技術に関する。
【背景技術】
【0002】
例えばプリント板を製造するため、プリント板の実装設計CAD(Computer Aided Design)システムから製造データを出力する。この製造データには、アートワークフィルムを作成するためのガーバーデータが含まれる。ガーバーデータは面パターンなどの塗りつぶされるべき図形を所定半径の円の軌跡(円の直径幅の線)で表現する。ガーバーデータで表現できない部分が生じると実装設計CADシステムからのデータとの間に矛盾が生じる。そのため、プリント板の実装設計CADシステムでは面パターンに一定幅(ガーバーデータを表現するために用いる円の直径)の線で塗り込みを行い、塗り込みできない箇所(すなわち塗り込み幅違反箇所)を検出し、設計者にエラーとして表示したり、自動で修正したりしている。
【0003】
塗り込み幅違反箇所を検出する従来技術の1つとして、図1において矢印で示すように面パターンを構成する多角形形状の辺同士の最短距離を求め、その距離と塗り込み幅を比較することで塗り込み幅違反箇所を検出する方法がある。この技術では、面パターンの辺同士の最短距離を求めるため、処理対象の面パターンの頂点が多くなると辺の数も増加し、辺と辺の組み合わせが膨大な数になり、処理時間が長くなる。具体的には、最悪ケースでは頂点数の2乗に比例した時間を要するため、頂点数が100万を超える面パターンでは辺と辺の距離を算出する演算を1兆回行うことになってしまう。なお、塗り込み幅違反箇所を検出するだけではなく、EMC(Electro-magnetic Compatibility)対策等で、一定角度以下の頂点を角取りするような処理も併せて実施することになる。なお、塗り込み違反は、塗り込み幅違反又は許容角度違反、若しくはその両方を表す。
【0004】
別の従来技術としては、画像処理演算を行うことで、塗り込み幅違反箇所を検出する方法も存在している。この技術では、データを2次元メッシュデータとして扱うことになる。そのため、面パターンなどの図形データを1次元の頂点配列として保持する場合には、データを変換する処理を行うことになるため、余分な処理負荷がかかる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平5−242197号公報
【特許文献2】特開平6−28425号公報
【特許文献3】特開2005−321846号公報
【特許文献4】特開平7−56978号公報
【非特許文献】
【0006】
【非特許文献1】築添 明,小澤 時典,酒見 淳也,三浦 地平,石井 建基,”VLSIマスクデータに対する論理演算と交点計算を同時処理するパターン論理演算手法”,電子通信学会論文誌’86/6 Vol.J69-D No.6
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、本技術の目的は、一側面においては、塗り込み違反箇所についての処理を高速実行できるようにするための技術を提供することである。
【課題を解決するための手段】
【0008】
本図形処理方法は、(A)複数の辺で形成される第1の図形のデータを格納するデータ格納部に格納されているデータに係る第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、第2の図形のデータをデータ格納部に格納する図形生成ステップと、(B)データ格納部に格納されている上記データに係る第2の図形の第1の辺の各々を両側に所定長だけ移動させた第2の辺の頂点を、第1の辺の頂点を中心として所定長を半径とする円弧で結ぶことで、第3の図形を生成し、第3の図形のデータをデータ格納部に格納するステップと、(C)データ格納部に格納されている上記データに係る第2の図形と第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成し、第4の図形のデータをデータ格納部に格納するステップとを含む。
【発明の効果】
【0009】
一側面において、塗り込み違反箇所についての処理を高速実行できるようになる。
【図面の簡単な説明】
【0010】
【図1】図1は、従来の技術を説明するための図である。
【図2】図2は、本実施の形態に係る図形処理装置の機能ブロック図である。
【図3】図3は、図形データの保持の仕方を説明するための図である。
【図4】図4は、処理対象の図形の一例を示す図である。
【図5】図5は、修正図形生成処理の処理フローを示す図である。
【図6】図6は、第1図形処理の処理フローを示す図である。
【図7A】図7Aは、線分の辺の平行移動処理を説明するための図である。
【図7B】図7Bは、線分の辺の平行移動処理を説明するための図である。
【図7C】図7Cは、線分の辺の平行移動処理を説明するための図である。
【図7D】図7Dは、線分の辺の平行移動処理を説明するための図である。
【図8A】図8Aは、円弧の辺の平行移動処理を説明するための図である。
【図8B】図8Bは、円弧の辺の平行移動処理を説明するための図である。
【図8C】図8Cは、円弧の辺の平行移動処理を説明するための図である。
【図8D】図8Dは、円弧の辺の平行移動処理を説明するための図である。
【図9A】図9Aは、円弧の辺の平行移動処理を説明するための図である。
【図9B】図9Bは、円弧の辺の平行移動処理を説明するための図である。
【図9C】図9Cは、円弧の辺の平行移動処理を説明するための図である。
【図10】図10は、処理対象の図形に対して修正後図形生成における第1段階目の処理を実施した後の図形を示す図である。
【図11】図11は、処理対象の図形に対して修正後図形生成における第2段階目の処理を実施した後の図形を示す図である。
【図12】図12は、第2図形処理の概要を説明するための図である。
【図13】図13は、第2図形処理の概要を説明するための図である。
【図14】図14は、第2図形処理の処理フローを示す図である。
【図15A】図15Aは、線分の辺の膨張処理を説明するための図である。
【図15B】図15Bは、線分の辺の膨張処理を説明するための図である。
【図15C】図15Cは、線分の辺の膨張処理を説明するための図である。
【図15D】図15Dは、線分の辺の膨張処理を説明するための図である。
【図15E】図15Eは、線分の辺の膨張処理を説明するための図である。
【図16A】図16Aは、円弧の辺の膨張処理を説明するための図である。
【図16B】図16Bは、円弧の辺の膨張処理を説明するための図である。
【図16C】図16Cは、円弧の辺の膨張処理を説明するための図である。
【図17】図17は、処理対象の図形に対して修正後図形生成における第3段階目の処理を実施した後の図形を示す図である。
【図18】図18は、処理対象の図形に対して修正後図形生成における第4段階目の処理を実施した後の図形を示す図である。
【図19】図19は、塗り込み違反箇所検出の処理フローを示す図である。
【図20】図20は、第3図形処理の処理フローを示す図である。
【図21】図21は、処理対象の図形に対して塗り込み違反箇所検出における第1段階目の処理を実施した後の図形を示す図である。
【図22】図22は、第3図形処理の処理フローを示す図である。
【図23】図23は、平行移動後の辺の交点に円を発生する処理を説明するための図である。
【図24】図24は、処理対象の図形に対して塗り込み違反箇所検出における第2段階目の処理を実施した後の図形を示す図である。
【図25】図25は、円弧図形の生成を説明するための図である。
【図26】図26は、処理対象の図形に対して塗り込み違反箇所検出における第3段階目の処理を実施した後の図形を示す図である。
【図27】図27は、図26の一部を拡大及び分解した図である。
【図28】図28は、第3図形処理の処理フローを示す図である。
【図29】図29は、第4図形処理を説明するための図である。
【図30】図30は、第4図形処理を説明するための図である。
【図31】図31は、第4図形処理を説明するための図である。
【図32】図32は、第4図形処理を説明するための図である。
【図33】図33は、円弧のなす角度を説明するための図である。
【図34】図34は、円弧のなす角度を説明するための図である。
【図35】図35は、図形テーブルの一例を示す図である。
【図36】図36は、第4図形処理を説明するための図である。
【図37】図37は、第4図形処理を説明するための図である。
【図38】図38は、第4図形処理の処理フローを示す図である。
【図39】図39は、包含判定処理の処理フローを示す図である。
【図40】図40は、処理対象の図形に対して塗り込み違反箇所検出における第4段階目の処理を実施した後の図形を示す図である。
【図41】図41は、図形のOR演算を説明するための図である。
【図42】図42は、処理対象の図形に対して塗り込み違反箇所検出における第5段階目の処理を実施した後の図形を示す図である。
【図43】図43は、処理対象の図形に対して塗り込み違反箇所検出における第6段階目の処理を実施した後の図形を示す図である。
【図44】図44は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【0011】
本技術の実施の形態に係る図形処理装置100の機能ブロック図を図2に示す。図形処理装置100は、図形データ格納部101と、設定データ格納部102と、修正図形生成部103と、違反箇所検出部104と、データ格納部105と、出力部106とを有する。さらに、図形処理装置100は、修正図形生成部103及び違反箇所検出部104と連携して処理を実施する個別の演算部として、辺移動処理部111と、円弧結合処理部112と、辺膨張処理部113と、円弧生成部114と、包含判定部115と、図形データ反転部116と、図形演算部117とを有する。
【0012】
修正図形生成部103は、図形データ格納部101に格納されている処理対象の図形データを、設定データ格納部102に従って処理して、処理途中のデータ及び処理結果のデータをデータ格納部105に格納する。違反箇所検出部104は、図形データ格納部101及びデータ格納部105に格納されている図形データを、設定データ格納部102に従って処理して、処理途中のデータ及び処理結果のデータをデータ格納部105に格納する。出力部106は、例えば表示装置や印刷装置等の出力装置に、データ格納部105に格納されている図形データを表示する。
【0013】
辺移動処理部111は、辺の平行移動処理を実施する。円弧結合処理部112は、平行移動した辺を連結する円弧を生成する。辺膨張処理部113は、辺を膨張させる長円図形を生成する。円弧生成部114は、平行移動後の辺の交点に円を生成する。包含判定部115は、ある図形に他の図形が包含されるかを判定するための処理を実施する。図形データ反転部116は、図形の頂点の保持方向を反転させる。図形演算部117は、OR演算など図形に対する演算を実施する。
【0014】
本実施の形態では、図形データは、図3に示すような順序の頂点配列として図形データ格納部101及びデータ格納部105に保持される。各頂点は、x軸及びy軸で張られる2次元平面上の座標値で定義される。そして、図形の外形は、反時計周りに頂点を保持することで規定される。図3において外形を表す矩形は、反時計回りで頂点番号1から5までの頂点で規定される。また、打ち抜きは、時計周りに頂点を保持することで規定される。図3において打ち抜きを表す三角形は、時計回りで頂点番号6から9までの頂点で規定される。さらに、辺である円弧は、円弧の始点、中間点及び終点の順番で頂点が保持される。また、円弧には円弧であるという情報を別途保持させ、線分と円弧の区別ができるようになっている。また、円弧が一周して円を形成する場合は、半円に分割された円弧として情報を保持する。図3において打ち抜きを表す円の上側の半円について、時計回りに始点、中間点及び終点が頂点番号10乃至12の頂点で規定される。下側の半円について、時計回りに始点、中間点及び終点が頂点番号12乃至14の頂点で規定される。
【0015】
また、設定データ格納部102には、塗り込み円の半径及び違反と判定される頂点の角度(すなわち許容角度)の値が格納されている。なお、一般的に許容角度はr度以下ということになるので、この「r」という値が設定データ格納部102に格納される。
【0016】
次に、図4乃至図43を用いて図形処理装置100の処理内容を説明する。まず、処理対象の図形について塗り込み違反箇所を修正した後の図形のデータを生成する際の処理を図4乃至図18を用いて説明する。
【0017】
また、説明を分かりやすくするために、図4に示すような面パターンが処理対象の図形であるものとする。すなわち、図4に示すような図形のデータが、図形データ格納部101に格納されているものとする。
【0018】
まず、修正図形生成部103は、図形データ格納部101から処理対象の図形データを読み出すと共に、設定データ格納部102から塗り込み円の半径を読み出す(図5:ステップS1)。次に、修正図形生成部103は、第1図形処理を実施する(ステップS3)。この第1図形処理は、辺を処理対象の図形の内側に移動させ、移動後の辺の端点を円弧で結ぶ処理である。この処理の詳細については、図6乃至図10を用いて説明する。
【0019】
まず、修正図形生成部103は、処理対象の図形の未処理の頂点を1つ特定する(図6:ステップS21)。例えば、頂点番号の小さい順に処理を行うものとする。そして、修正図形生成部103は、特定された頂点を始点として含む辺を特定する(ステップS23)。そして、修正図形生成部103は、辺移動処理部111に、特定された辺に対する処理を指示する。
【0020】
辺移動処理部111は、特定された辺が線分であるか判断する(ステップS25)。特定された辺が線分であれば、辺移動処理部111は、辺を図形の内側に塗り込み円の半径だけ平行移動させる処理を実施する(ステップS27)。処理結果は、データ格納部105に格納される。その後処理はステップS31に移行する。
【0021】
本ステップの処理を図7A乃至図7Dを用いて具体的に説明する。まず、図7Aに示すような辺を、図7Bに示すように辺の始点を中心として、x軸と辺とがなす角度が0となるように、辺を回転させる。そして、図7Cに示すように、回転移動後の辺を、y軸の正方向に塗り込み円の半径(点線直線矢印の長さ)だけ平行移動する。最後に、図7Dに示すように、平行移動前の辺の始点を中心として、図7Bとは逆方向に同角度だけ、平行移動後の辺を回転させる。このようにすれば、図形の内側に塗り込み円の半径分平行移動させた辺を得ることができる。その後、処理はステップS31に移行する。
【0022】
一方、辺が円弧である場合には、辺移動処理部111は、特定された円弧に応じた円弧を生成し、配置することで、円弧の平行移動処理を実施する(ステップS29)。処理結果はデータ格納部105に格納される。その後、処理はステップS31に移行する。
【0023】
本ステップの処理を図8A乃至図8D及び図9A乃至図9Cを用いて具体的に説明する。まず、図8Aに示すような円弧を、図8Bに示すように円弧の始点を中心として、円弧の始点と終点とを結ぶ線とx軸とがなす角度が0となるように回転させる。そして図8Bの状態において、円弧の中間点が、円弧の始点と終点とを結んだ線の上側にあるのか(すなわちy軸の正方向)、下側にあるのか(すなわちy軸の負の方向)を判断する。図8Bの場合には下側に存在している。下側に存在している場合には、図8Cに示すように、円弧の半径を、塗り込み円の半径分(点線直線矢印の長さ分)短くした円弧を生成する。逆に、上側に存在している場合には、円弧の半径を、塗り込み円の半径分長くした円弧を生成する。生成された円弧の始点、中間点及び終点は、元の円弧の始点、中間点及び終点から算出することができるが、この方法はよく知られているので説明は省略する。最後に、図8Dに示すように、元の円弧の始点を中心として、図8Bとは逆方向に同角度だけ、生成した円弧を回転させる。
【0024】
なお、円弧の半径が、塗り込み円の半径より短い場合もある。図9Aは円弧を表しており、図9Bは円弧の半径より長い半径を有する塗り込み円を示している。このような場合、図9Cに示すように、塗り込み円の半径から円弧の半径を減算した長さの半径を有しており、ふくらみ方向が逆になる円弧を生成する。この際、生成した円弧の始点は、元の円弧の始点から中心点を介して交差した位置になり、生成した円弧の終点も、元の円弧の終点から中心点を介して交差した位置になる。
【0025】
そして、修正図形生成部103は、特定された頂点が外形又は打ち抜きの始点であるか確認する(ステップS31)。特定された頂点が外形又は打ち抜きの始点である場合にはステップS39に移行する。一方、特定された頂点が外形又は打ち抜きの始点ではない場合には、修正図形生成部103は、平行移動後の辺の始点に対する処理を、円弧結合処理部112に指示する。
【0026】
これに対して円弧結合処理部112は、第1の円弧結合処理を実施する(ステップS33)。具体的には、今回の平行移動後の辺の始点を終点とし、直前に平行移動された辺の終点を始点とし、特定された頂点を中心とする時計回りの円弧を生成する。そして生成した円弧によって、今回の平行移動後の辺の始点と、直前に平行移動された辺の終点とを結合する。
【0027】
また、修正図形生成部103は、特定された頂点が外形又は打ち抜きの終点であるか確認する(ステップS35)。特定された頂点が外形又は打ち抜きの終点である場合には、修正図形生成部103は、円弧結合処理部112に、平行移動後の辺の終点に対する処理を指示する。
【0028】
これに対して円弧結合処理部112は、第2の円弧結合処理を実施する(ステップS37)。具体的には、外形又は打ち抜きの始点について実施した平行移動後の辺の始点を終点とし、今回平行移動された辺の終点を始点とし、外形又は打ち抜きの始点を中心とする時計回りの円弧を生成する。そして生成した円弧によって、外形又は打ち抜きの始点について実施した平行移動後の辺の始点と、今回の平行移動された辺の終点とを結合する。
【0029】
特定された頂点が外形又は打ち抜きの終点である場合又はステップS37の後に、修正図形生成部103は、未処理の頂点が存在しているか判断する(ステップS39)。未処理の頂点が存在している場合には、ステップS21に戻る。一方、未処理の頂点が存在していない場合には、元の処理に戻る。このように生成された図形のデータは、データ格納部105に格納される。
【0030】
このような処理を実施することで、図4に示した処理対象の図形(図形Aとする)から、図10のような図形(図形Bとする)が生成される。図10の図形において、細点線矢印は塗り込み円の半径を表しており、図形Aの辺が塗り込み円の半径だけ内側に平行移動されていることが分かる。また、平行移動後の辺の端点は時計回りの円弧で結合されている。平行移動後の辺が交差する場合には、飛び出る形に円弧が生成されるが、円弧a1及びa2のように、平行移動後の辺が交差しない場合には、円弧によって平行移動後の辺が繋がれる。打ち抜きの円弧については、図形の内側に平行移動させるため、打ち抜きの円弧よりも大きな円弧が生成されている。この例では、平行移動後の円弧は互いに交差しており、外形に近い方の円弧については平行移動後の円弧が、外形について平行移動させた後の辺とも交差するようになる。このような処理を実施することで、外形についての辺は、平行移動後も一筆書きできるようになっている。
【0031】
図5の処理の説明に戻って、修正図形生成部103は、図形演算部117に指示して、第1図形処理により生成された図形Bから、打ち抜き部分を除き時計回りの頂点配列を除去した連続する外形の図形Cを生成させ、当該図形Cのデータをデータ格納部105に格納する(ステップS5)。
【0032】
図形Bにおいて、平行移動後の辺及び当該平行移動後の辺の交点を反時計回りで辿ることで外形を特定し、時計回りで頂点が配置されている閉領域を削除する。なお、図形内部に、外形についての平行移動後の辺と交差しない平行移動後の辺が残っている場合には、時計回りの頂点配置であっても当該平行移動後の辺を残す。図10のような図形Bからは、図11のような図形Cが生成される。図11から分かるように、時計回りで頂点が配置されている閉領域は削除されるため点線で表されており、平行移動後の辺及び当該平行移動後の辺の交点を反時計回りで辿ることで特定される外形は、実線で示されている。なお、本例では打ち抜きの辺は平行移動させると互いに交差してしまうので、打ち抜きは無くなってしまう。
【0033】
このような処理は、例えば特開平2−132569号公報に開示されている手法を用いればよいので、詳細な説明については省略する。このような手法を採用する場合には、頂点数×頂点数の対数に比例する時間で処理できることが知られている。すなわち、処理速度が高速化される。
【0034】
次に、修正図形生成部103は、データ格納部105に格納されている図形のデータを読み出し、第2図形処理を実施する(ステップS7)。この第2図形処理は、ステップS5で生成された図形Cの辺を膨張させる処理である。具体的には、図12の左側に示すような線分の場合には、塗り込み円の半径分だけ上下に平行移動させた後、線分の両端を中心とし、塗り込み円の半径と同じ長さの半径を有する円弧で結ぶことで、図12の右側に示すような長円図形を生成する。また、図13の左側に示すような円弧の場合には、外側に塗り込み円の半径分長い半径を有する円弧と、内側に塗り込み円の半径分短い半径を有する円弧とを生成し、円弧の端点を中心とし、塗り込み円の半径と同じ半径を有する円弧で結ぶことで、図13の右側に示すような長円図形を生成する。この処理の詳細については、図14乃至図17を用いて説明する。
【0035】
まず、修正図形生成部103は、処理対象の図形の未処理の頂点を1つ特定する(図14:ステップS41)。例えば、頂点番号の小さい順に処理を行うものとする。そして、修正図形生成部103は、特定された頂点を始点として含む辺を特定する(ステップS43)。そして、修正図形生成部103は、辺膨張処理部113に、特定された辺に対する処理を指示する。
【0036】
これに対して辺膨張処理部113は、特定された辺が線分であるか判断する(ステップS45)。特定された辺が線分であれば、辺膨張処理部113は、辺を上下に塗り込み円の半径だけ平行移動した辺を生成する処理を実施する(ステップS47)。その後処理はステップS51に移行する。
【0037】
本ステップの処理を図15A乃至15Eを用いて具体的に説明する。まず、図15Aに示すような辺を、図15Bに示すように辺の始点を中心として、x軸と辺とがなす角度が0となるように、辺を回転させる。そして、図15Cに示すように、回転移動後の辺を、y軸の正方向及び負方向に塗り込み円の半径(点線直線矢印の長さ)だけ平行移動した辺を生成する。そして、図15Dに示すように、平行移動前の辺の始点を中心として、図15Bとは逆方向に同角度だけ、平行移動後の辺を回転させる。なお、図15Eで示すような、エッジを円弧で結合する処理は、ステップS51で実施される。
【0038】
一方、特定された辺が円弧であれば、辺膨張処理部113は、円弧の半径を塗り込み円の半径だけ伸縮させた円弧を生成する処理を実施する(ステップS49)。処理結果はデータ格納部105に格納される。その後、処理はステップS51に移行する。
【0039】
本ステップの処理を図16A乃至16Cを用いて具体的に説明する。まず、図16Aに示すような円弧を、図16Bに示すように、円弧の半径を、塗り込み円の半径分(点線直線矢印の長さ分)短くした円弧と、塗り込み円の半径(点線直線矢印の長さ分)長くした円弧とを生成する。生成された円弧の始点、中間点及び終点は、元の円弧の始点、中間点及び終点から算出することができるが、この方法はよく知られているので説明は省略する。なお、図16Cで示すような、エッジを円弧で結合する処理は、ステップS51で実施される。
【0040】
そして、辺膨張処理部113は、特定された辺の端点を中心とし、塗り込み円の半径を有する円弧で、生成した線分又は円弧の端点を結合し、長円図形を生成する(ステップS51)。処理結果はデータ格納部105に格納される。
【0041】
その後、修正図形生成部103は、未処理の頂点が存在しているか判断する(ステップS53)。未処理の頂点が存在している場合には、ステップS41に戻る。一方、未処理の頂点が存在していない場合には、元の処理に戻る。このように生成された図形のデータは、データ格納部105に格納される。
【0042】
このような処理を実施すると、図11に示すような図形Cから、図17に示すような図形Dが生成される。長円図形が重なりつつ外形を辿るような形となる。但し、図形Cの内部で重ならない部分も出てくる。また、長円図形は角が丸くなるので、処理対象の図形Aと重ねてみると、角が一部欠けるようになっている。
【0043】
図5の処理の説明に戻って、修正図形生成部103は、図形演算部117に指示して、ステップS5で生成された図形CとステップS7で生成された図形Dとについて図形のOR演算(論理和演算)を実施させ、塗り込み違反部分を修正した修正後図形Eを生成し、修正後図形Eのデータをデータ格納部105に格納する(ステップS9)。図形のOR演算については、例えば特開平2−132569号公報に開示されている手法を用いればよいので、詳細な説明については省略する。
【0044】
図11の図形Cと図17の図形DとのOR演算を実施すると、図18に示すような図形Eが生成される。図形Eは、塗り込み幅違反部分が除去され、許容角度違反部分が除去されている。
【0045】
そして、出力部106は、データ格納部105に格納されている図形Eのデータを読み出し、表示装置等の出力装置に出力する(ステップS11)。図18に示すような図形が表示装置等に出力される。このようにすれば、設計者は、修正後の図形を自動的に得ることができ、修正の手間が少なくなる。
【0046】
また、上で示した処理は頂点数×頂点数の対数に比例した処理量で済むため、処理速度が高速化される。
【0047】
次に、処理対象図形の塗り込み幅違反箇所及び許容角度違反箇所を検出して表示する処理について図19乃至図43を用いて説明する。なお、図5の処理が完了しているものとする。
【0048】
まず、違反箇所検出部104は、図形データ格納部101から処理対象の図形のデータを読み出し、設定データ格納部102から塗り込み円の半径及び許容角度の値を読み出す(図19:ステップS101)。
【0049】
そして、違反箇所検出部104は、第3図形処理を実施する(ステップS103)。第3図形処理は、辺の平行移動と、平行移動後の辺の交点について平行移動前の角度が許容角度以上であれば円を生成する処理である。詳細については、図20乃至図26を用いて説明する。
【0050】
まず、違反箇所検出部104は、フラグtを0にセットする(図20:ステップS121)。フラグtは、外形又は打ち抜き終点についての処理か否かを表すフラグであり、外形又は打ち抜き終点についての処理であれば「1」にセットされる。
【0051】
そして、違反箇所検出部104は、処理対象の図形の未処理の頂点を1つ特定する(ステップS123)。例えば、頂点番号の小さい順に処理を行うものとする。また、違反箇所検出部104は、特定された頂点を始点として含む辺を特定する(ステップS125)。そして、違反箇所検出部104は、辺移動処理部111に、特定された辺に対する処理を指示する。
【0052】
これに対して辺移動処理部111は、特定された辺が線分であるか判断する(ステップS127)。特定された辺が線分であれば、辺移動処理部111は、辺を図形の内側に塗り込み円の半径だけ平行移動させる処理を実施する(ステップS129)。この処理は、ステップS27と同じであるので、詳細な説明は省略する。その後、処理はステップS133に移行する。
【0053】
一方、辺が円弧である場合には、辺移動処理部111は、特定された円弧に応じた円弧を生成し、配置することで、円弧の平行移動処理を実施する(ステップS131)。この処理もステップS29と同様であるから、詳細な説明を省略する。その後、処理はステップS133に移行する。
【0054】
なお、図4に示した処理対象の図形に対してここまでの処理を全ての辺について実施すると、図21に示すようになる。図21の例では、以下で述べるように平行移動後の他の辺と交点を有しない場合には処理の対象から除外されるので、処理の対象から除外される辺について示されていない。また、図21の例では、打ち抜きについては平行移動後の辺を示していないが、これは以下の処理で特に影響がなく、説明を簡略化するためであって、実際には打ち抜きについても処理する。
【0055】
そして、違反箇所検出部104は、特定された頂点が、外形又は打ち抜きの始点であるか確認する(ステップS133)。特定された頂点が外形又は打ち抜きの始点である場合には端子Aを介して図28のステップS157に移行する。
【0056】
一方、特定された頂点が外形又は打ち抜きの始点ではない場合には、違反箇所検出部104は、今回の平行移動後の辺が、直前に平行移動された辺と交点を有するか判断する(ステップS135)。今回の平行移動後の辺が、直前に平行移動された辺と交点を有する場合には、端子Bを介して図22の処理に移行する。一方、今回の平行移動後の辺が、直前に平行移動された辺と交点を有しない場合には、端子Cを介して図28の処理に移行する。
【0057】
次に、端子Bを介して移行した後の処理を、図22を用いて説明する。ここで、違反箇所検出部104は、この交点について平行移動前の辺の角度は許容角度以下であるか判断する(ステップS137)。図33に示したように辺が円弧の場合は図34のように円弧の接線を辺と考え角度を求める。平行移動前の辺の角度が許容角度以下である場合には、違反であるから以降の処理を実施せず、端子Aを介して図28のステップS157に移行する。一方、平行移動前の辺の角度が許容角度より大きい場合には、角度は問題ないので、違反箇所検出部104は、円弧生成部114に、この交点について円弧を発生させる処理を指示する。これに対して円弧生成部114は、この交点を中心に塗り込み円を生成する(ステップS139)。塗り込み円の半径は、設定データ格納部102に格納されている塗り込み円の半径と同じであるから、平行移動前の辺との接点が存在する可能性がある。例えば円弧生成部114は、生成した円と平行移動前の辺との接点を算出する(ステップS141)。図23に示すように、平行移動後の辺(実線)の交点cに塗り込み円を生成すると、平行移動前の辺(点線)との接点d及びeが算出される。なお、平行移動前の辺の頂点fは、接点d及びeの間に存在している。
【0058】
ここまでの処理を、図21に示した図形に対して実施すると、図24のような図形が得られる。図24の例では、平行移動前の辺の頂点の角度が許容角度を超えている場合に、平行移動後の辺の交点に、塗り込み円が配置されている。この図形の左上の交点では、平行移動前の辺の頂点の角度αが許容角度以下であるため、塗り込み円は発生されない。
【0059】
その後、円弧生成部114は、平行移動前の辺の頂点と、算出された接点と、生成した円(すなわち塗り込み円)とから、平行移動前の辺の頂点から接点までの辺と発生した円とで囲まれる円弧図形を生成する(ステップS143)。図23の場合には、図25に示すような円弧図形が生成される。すなわち、辺fd及び辺feと、交点Cを中心とする円とで囲まれる円弧図形を生成する。処理結果はデータ格納部105に格納される。
【0060】
また、図24に示した図形に対してステップS143を実施したとすると、図26に示すような図形が生成される。図26の例では、5つの交点に対して5つの円弧図形が生成される。左下の2つの円弧図形は、分離すると図27に示すような2つの円弧図形が重なっているものである。図26に示すような円弧図形が図形Fとして処理される。
【0061】
図22の処理の説明に戻って、違反箇所検出部104は、tが0であるか判断する(ステップS145)。tが0であれば、外形又は打ち抜きの終点についての処理ではないので、端子Cを介して図28の処理に移行する。一方、tが1であれば、外形又は打ち抜き終点についての処理を実施したことになるので、違反箇所検出部104は、tを0に戻し(ステップS147)、端子Aを介して図28のステップS157に移行する。
【0062】
次に、端子Cを介して移行した先の処理について図28を用いて説明する。違反箇所検出部104は、特定された頂点が外形又は打ち抜きの終点であるか確認する(ステップS149)。特定された頂点が外形又は打ち抜きの終点ではない場合には、違反箇所検出部104は、未処理の頂点が存在しているか判断し(ステップS157)、未処理の頂点が存在している場合には、端子Dを介してステップS123に戻る。
【0063】
一方、特定された頂点が外形又は打ち抜きの終点である場合には、違反箇所検出部104は、今回平行移動した辺が、この外形又は打ち抜きについて最初に平行移動した辺との交点を有するか判断する(ステップS151)。今回平行移動した辺が、この外形又は打ち抜きについて最初に平行移動した辺との交点を有していない場合には、ステップS157に移行する。一方、今回平行移動した辺が、この外形又は打ち抜きについて最初に平行移動した辺との交点を有する場合には、違反箇所検出部104は、平行移動前の辺の頂点の角度が許容角度以下であるか判断する(ステップS153)。角度が許容角度以下である場合には、円を発生させたりする処理は行わないのでステップS157に移行する。一方、角度が許容角度を超えている場合には、違反箇所検出部104は、フラグtを1にセットし(ステップS155)、処理は端子Eを介して図22のステップS139に移行する。これによって、円を発生させると共に円弧図形を生成する。
【0064】
このような処理を実施することで、上でも述べたように、平行移動前の辺の頂点の角度が許容角度を超えている場合には、平行移動した辺の交点周辺に、図26に示すように、円弧図形Fが生成されることになる。
【0065】
図19の処理の説明に戻って、違反箇所検出部104は、第4図形処理を実施する(ステップS105)。第4図形処理は、第3図形処理で生成された円弧図形Fのうち、処理対象の図形Aに包含される円弧図形Fを特定する処理である。この処理の詳細については、図29乃至図43を用いて説明する。
【0066】
例えば図29に示すような図形(図形αと呼ぶ)に、図30に示すような図形(図形β1乃至β3)が包含されるかを判定する場合を考える。図形αと図形β1乃至β3は、図31に示すように配置されているものとする。そして、図32に示すように、x座標値の小さい順に、平面走査法を適用して、図形α及び図形β1乃至β3の各頂点において、周知のベントレーオットマン(Bentley-Ottman)の交差判定により、図形α及び図形β1乃至β3の各頂点を通る、y軸に平行なスイープライン上の各辺間の交点を算出する。図形α及び図形β1乃至β3の交点についてもスイープラインが設定されて、同様にスイープライン上の交点が算出される。図32の例では、スイープラインはL1乃至L16が設定される。そして、各スイープライン上の交点については、y座標が小さい順にソートされる。
【0067】
なお、y座標が同じ場合には、スイープラインとなす角が小さい順に並べる。円弧とスイープラインの交点のような場合には、円弧の接線とスイープラインとのなす角度を算出して判定する。
【0068】
その後、図形αの外部か内部かをフラグfで判定しつつ、図形αの外部で図形βを検出した場合には、図形βは包含されていないと判定する。
【0069】
例えば、図35に示すような図形βについての図形テーブルを用意しておく。そして、例えばスイープラインL3に着目して、y座標値が小さい順にスイープラインL3と交差する辺をソートしておく。図32から分かるように、図36に示すような順番に辺がソートされる。すなわち、図形β1の辺、図形αの辺、図形β1の辺、図形αの辺の順番に並べられる。図形β1の辺と、図形αの辺との順番については、上で述べたようにスイープラインL3となす角度の小さい順で決定される。このスイープラインL3を処理する場合には、図形αの内部に入る前、すなわちフラグが0の状態で、図形β1の辺が出現することになるので、図形β1は、図形αの内部に包含されないことが分かる。すなわち、スイープラインL3を処理すると、図37に示すように、図形テーブルにおいて図形β1に対して「1」がセットされ、図形β1が包含されないことが記録される。このような図形テーブル及び各スイープライン上の辺のソート結果については、図形処理装置100のメインメモリなどの記憶装置に格納される。
【0070】
以上の処理は、図38及び図39のような処理フローに従って行われる。まず、違反箇所検出部104は、包含判定部115に、処理対象の図形Aに円弧図形Fが包含されるかを判定する包含判定処理を実施させる(図38:ステップS161)。そして、違反箇所検出部104は、包含判定処理によって処理対象の図形Aに包含されないと判定された円弧図形Fを削除する(ステップS163)。そして、元の処理に戻る。
【0071】
次に、図39を用いて、包含判定処理について説明する。まず、包含判定部115は、上で述べたように図形Aと円弧図形Fとの頂点及び交点についてx座標値が小さい順にy軸に平行なスイープラインを設定すると共に、スイープライン毎に、交差する辺をy座標値でソートし、ソート結果を例えば図形処理装置100のメインメモリなどの記憶装置に格納する(ステップS171)。
【0072】
そして、包含判定部115は、未処理のスイープラインを1本特定する(ステップS173)。また、包含判定部115は、フラグfを0にセットする(ステップS175)。フラグfは、上でも述べたように、図形Aの外側か内側かを設定するフラグであり、0は図形Aの外側を表し、1は図形Aの内側を表す。
【0073】
そして、包含判定部115は、特定されたスイープラインについて、ソート結果の上位から未処理の辺を1つ特定する(ステップS177)。その後、包含判定部115は、特定された辺が図形α(処理対象の図形A)の辺であるか判断する(ステップS179)。特定された辺が図形αの辺ではない場合には、包含判定部115は、フラグfが0であるか判断する(ステップS181)。フラグfが1であれば、ステップS191に移行する。一方、フラグfが0であれば、図形αの外部で図形βが検出されたことになるので、包含判定部115は、図形テーブルにおいて、特定された辺の図形名に「1」を設定する(ステップS183)。すなわち、特定された辺の図形は、包含されていないと設定する。そして処理はステップS191に移行する。
【0074】
一方、特定された辺が図形αの辺である場合には、包含判定部115は、フラグfが0であるか判断する(ステップS185)。フラグfが0であれば、包含判定部115は、フラグfを1に設定する(ステップS187)。そして処理はステップS191に移行する。一方、フラグfが1であれば、包含判定部115は、フラグfを0に設定する(ステップS189)。そして処理はステップS191に移行する。すなわち、図形αの辺が検出され、既に図形αの内部であった場合には、図形αの外部に出たことを示すようにフラグfを0に設定する。一方、図形αの外部であった場合には、図形αの内部に入ったことを示すようにフラグfを1に設定する。
【0075】
そして、包含判定部115は、全ての辺について処理したか判断し(ステップS191)、未処理の辺が存在する場合にはステップS177に戻る。一方、全ての辺について処理した場合には、包含判定部115は、全てのスイープラインについて処理したか判断する(ステップS193)。未処理のスイープラインが存在する場合にはステップS173に戻る。一方、全てのスイープラインを処理した場合には、元の処理に戻る。
【0076】
このような処理を実施することで、図形テーブルに、包含されていないと判定された図形については「1」が設定され、包含されていると判定された図形については「0」が設定されている状態となる。
【0077】
すなわち、図形テーブルにおいて「1」が設定されている円弧図形Fについては、図38のステップS163で削除される。データ格納部105には、削除後の円弧図形Fが図形Gとして格納される。
【0078】
図26のような円弧図形の場合、左下の2つの円弧図形については、図40に示すように、図形Aに包含されていないので削除される。削除後の図形を図形Gとする。なお、ステップS163は、頂点数×頂点数の対数に比例する時間で処理することができる。
【0079】
図19の処理の説明に戻って、違反箇所検出部104は、データ格納部105に格納されている修正後図形Eと第4図形処理の処理結果である図形Gとに対してOR演算(論理和演算)を実施させて図形Hを生成し、図形Hのデータをデータ格納部105に格納する(ステップS107)。
【0080】
図41に、これまでの処理で生成された図形Eと図形Gとを重ねて示す。重ねてみると、点線丸G1乃至G3で示すように、角の部分が図形Eでは丸くなっているが、図形Gではその角の部分が含まれる。従って、OR演算を実施すれば、図42に示すように、図形Eに角の部分が足された図形Hが生成されることになる。
【0081】
そして、違反箇所検出部104は、図形データ格納部101に格納されている図形Aとデータ格納部105に格納されており且つステップS107のOR演算で生成された図形Hとから、(図形A−図形H)の図形演算を図形演算部117に実施させ、修正箇所を示すための図形Iを生成し、図形Iのデータをデータ格納部105に格納する(ステップS109)。
【0082】
より具体的には、違反箇所検出部104は、図形データ反転部116に対して、図形Hの図形データを出力して、図形データにおける頂点の順番を反転させる。具体的には、外形についての頂点については時計回りに並べ替え、打ち抜きについては反時計回りに並び替える。そして、違反箇所検出部104は、図形Hの処理結果及び図形Aのデータを、図形演算部117に出力する。そうすると、図形演算部117は、外形については時計回りの頂点についての辺を削除し、打ち抜きについては反時計回りの頂点についての辺を削除することで、(図形A−図形H)という図形についての差演算を実施する。
【0083】
図42に示した図形A−図形Hの結果は、図43に示すような図形Iとなる。斜線部分が図形Iであり、塗り込み幅違反及び角度違反の箇所を示している。
【0084】
出力部106は、データ格納部105に格納されており且つステップS109で生成された図形Iのデータを、表示装置等の出力装置に出力する(ステップS111)。このようにして、設計者は、問題箇所を容易に把握することができるようになる。
【0085】
このように、面パターンの塗り込み違反箇所の修正(すなわち、塗り込み幅違反箇所を修正し、許容角度以下の部分の角取りをすること)を、図形の移動及び生成、図形演算処理で実施できるようになる。そして、辺の平行移動処理、辺を膨らませる処理がそれぞれ頂点数に比例する時間、図形演算が頂点数×頂点数の対数に比例する時間で行うことができるので、演算時間を頂点数×頂点数の対数に比例する時間に抑えることができるようになる。さらに、本実施の形態では同時に面パターンの角取りをも行えるので、角取り演算を別途行うこともない。
【0086】
面パターンの塗り込み幅違反箇所及び許容角度違反箇所の検出についても、図形の移動及び生成、図形演算処理で実施できるようになる。そして、辺の平行移動処理、円弧図形を生成する処理が頂点数に比例する時間、包含判定処理が頂点数×頂点数の対数に比例する時間、図形演算が頂点数×頂点数の対数に比例する時間で行うことができるので、演算時間を頂点数×頂点数の対数に比例する時間に抑えることができるようになる。
【0087】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図2の機能ブロック図は一例であって、必ずしも実際にプログラムモジュール構成と一致しない場合もある。また、処理フローについても、処理結果が変わらない限り、処理順番を入れ替えたり、並列実施するようにしても良い。
【0088】
例えば、修正図形生成部103の処理と、違反箇所検出部104の処理の一部(修正後図形を使用するまでの処理)とは互いに並行して実施しても良い。
【0089】
さらに、1台のコンピュータで実施するのではなく、複数台のコンピュータで上で述べた機能を実施するようにしても良い。
【0090】
なお、上で述べた図形処理装置100は、コンピュータ装置であって、図44に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0091】
以上述べた本実施の形態をまとめると、以下のようになる。
【0092】
本実施の形態に係る図形処理方法は、(A)複数の辺で形成される第1の図形のデータを格納するデータ格納部に格納されているデータに係る第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、第2の図形のデータをデータ格納部に格納する図形生成ステップと、(B)データ格納部に格納されている上記データに係る第2の図形の第1の辺の各々を両側に所定長だけ移動させた第2の辺の頂点を、第1の辺の頂点を中心として所定長を半径とする円弧で結ぶことで、第3の図形を生成し、第3の図形のデータをデータ格納部に格納するステップと、(C)データ格納部に格納されている上記データに係る第2の図形と第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成し、第4の図形のデータをデータ格納部に格納するステップとを含む。
【0093】
このようにすれば、第1の図形における塗り込み幅違反箇所及び許容角度違反箇所を適切に修正した第4の図形が自動的に且つ高速に生成されることになる。
【0094】
さらに、本図形処理方法は、(D)データ格納部に格納されている上記データに係る第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺の交点のうち移動前の辺の角度が許容角度より大きい交点を中心とし所定長を半径とする円を生成し、当該円と当該移動前の辺とにより囲まれる閉領域を特定することで、第5の図形を生成し、第5の図形のデータをデータ格納部に格納するステップと、(E)データ格納部に格納されている上記データに係る第5の図形のうち第1の図形内に含まれる第5の図形と、データ格納部に格納されている上記データに係る第4の図形との、図形についての論理和演算を実施することによって、第6の図形を生成し、第6の図形のデータをデータ格納部に格納するステップと、(F)データ格納部に格納されている上記データに係る第1の図形からデータ格納部に格納されている上記データに係る第6の図形を除去する、図形についての差演算を実施することによって、第7の図形を生成し、第7のデータをデータ格納部に格納するステップとをさらに含むようにしても良い。
【0095】
このようにすれば、第1の図形における塗り込み幅違反箇所及び許容角度違反箇所を表す第7の図形が自動的且つ高速に生成されることになる。
【0096】
なお、上で述べた図形のデータが、第1の方向の順番で外形の頂点のデータを含み、第1の方向とは逆の第2の方向の順番で打ち抜きの頂点のデータを含む場合がある。この場合、上で述べた図形生成ステップが、移動後の辺の交点のうち外形についての交点及び当該交点を繋ぐ辺については、第1の方向で辿ることで特定される第2の図形を生成するステップを含む場合もある。このようにすれば、容易に第2の図形を生成することができる。
【0097】
さらに、上で述べた図形生成ステップが、移動後の辺の端点を円弧で結ぶステップを含むようにしても良い。移動後の辺に交点がない場合には、このような円弧によって、移動後の外形又は打ち抜きの辺が適切に連結されるようになる。
【0098】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0099】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0100】
(付記1)
複数の辺で形成される第1の図形のデータを格納するデータ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、前記第2の図形のデータを前記データ格納部に格納する図形生成ステップと、
前記データ格納部に格納されている前記データに係る前記第2の図形の第1の辺の各々を両側に前記所定長だけ移動させた第2の辺の頂点を、前記第1の辺の頂点を中心として前記所定長を半径とする円弧で結ぶことで、第3の図形を生成し、前記第3の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第2の図形と前記第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成し、前記第4の図形のデータを前記データ格納部に格納するステップと、
を、コンピュータに実行させるための図形処理プログラム。
【0101】
(付記2)
前記データ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に前記所定長移動し、移動後の辺の交点のうち移動前の辺の角度が許容角度より大きい交点を中心とし前記所定長を半径とする円を生成し、当該円と当該移動前の辺とにより囲まれる閉領域を特定することで、第5の図形を生成し、前記第5の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第5の図形のうち前記第1の図形内に含まれる前記第5の図形と、前記データ格納部に格納されている前記データに係る前記第4の図形との、図形についての論理和演算を実施することによって、第6の図形を生成し、前記第6の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第1の図形から前記データ格納部に格納されている前記データに係る前記第6の図形を除去する、図形についての差演算を実施することによって、第7の図形を生成し、前記第7のデータを前記データ格納部に格納するステップと、
をさらに前記コンピュータに実行させるための付記1記載の図形処理プログラム。
【0102】
(付記3)
前記図形のデータが、第1の方向の順番で外形の頂点のデータを含み、前記第1の方向とは逆の第2の方向の順番で打ち抜きの頂点のデータを含み、
前記図形生成ステップが、
前記移動後の辺の交点のうち外形についての交点及び当該交点を繋ぐ辺については、前記第1の方向で辿ることで特定される前記第2の図形を生成するステップ
を含む付記1又は2記載の図形処理プログラム。
【0103】
(付記4)
前記図形生成ステップが、
前記移動後の辺の端点を円弧で結ぶステップ
を含む付記1乃至3のいずれか1つ記載の図形処理プログラム。
【0104】
(付記5)
複数の辺で形成される第1の図形のデータを格納するデータ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、前記第2の図形のデータを前記データ格納部に格納する第2図形生成ステップと、
前記データ格納部に格納されている前記データに係る前記第2の図形の第1の辺の各々を両側に前記所定長だけ移動させた第2の辺の頂点を、前記第1の辺の頂点を中心として前記所定長を半径とする円弧で結ぶことで、第3の図形を生成し、前記第3の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第2の図形と前記第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成し、前記第4の図形のデータを前記データ格納部に格納するステップと、
を含み、コンピュータにより実行される図形処理方法。
【0105】
(付記6)
前記データ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に前記所定長移動し、移動後の辺の交点のうち移動前の辺の角度が違反角度より大きい交点を中心とし前記所定長を半径とする円を生成し、当該円と当該移動前の辺とにより囲まれる閉領域を特定することで、第5の図形を生成し、前記第5の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第5の図形のうち前記第1の図形内に含まれる前記第5の図形と、前記データ格納部に格納されている前記データに係る前記第4の図形との、図形についての論理和演算を実施することによって、第6の図形を生成し、前記第6の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第1の図形から前記データ格納部に格納されている前記データに係る前記第6の図形を除去する、図形についての差演算を実施することによって、第7の図形を生成し、前記第7のデータを前記データ格納部に格納するステップと、
をさらに含む付記5記載の図形処理方法。
【0106】
(付記7)
複数の辺で形成される第1の図形のデータを格納するデータ格納部と、
前記データ格納部に格納されているデータを用いて処理を実施する処理部と、
を有し、
前記処理部は、
前記データ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、前記第2の図形のデータを前記データ格納部に格納し、
前記データ格納部に格納されている前記データに係る前記第2の図形の第1の辺の各々を両側に前記所定長だけ移動させた第2の辺の頂点を、前記第1の辺の頂点を中心として前記所定長を半径とする円弧で結ぶことで、第3の図形を生成し、前記第3の図形のデータを前記データ格納部に格納し、
前記データ格納部に格納されている前記データに係る前記第2の図形と前記第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成し、前記第4の図形のデータを前記データ格納部に格納する、
図形処理装置。
【0107】
(付記8)
前記処理部は、さらに、
前記データ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に前記所定長移動し、移動後の辺の交点のうち移動前の辺の角度が許容角度より大きい交点を中心とし前記所定長を半径とする円を生成し、当該円と当該移動前の辺とにより囲まれる閉領域を特定することで、第5の図形を生成し、前記第5の図形のデータを前記データ格納部に格納し、
前記データ格納部に格納されている前記データに係る前記第5の図形のうち前記第1の図形内に含まれる前記第5の図形と、前記データ格納部に格納されている前記データに係る前記第4の図形との、図形についての論理和演算を実施することによって、第6の図形を生成し、前記第6の図形のデータを前記データ格納部に格納し、
前記データ格納部に格納されている前記データに係る前記第1の図形から前記データ格納部に格納されている前記データに係る前記第6の図形を除去する、図形についての差演算を実施することによって、第7の図形を生成し、前記第7のデータを前記データ格納部に格納する
付記7記載の図形処理装置。
【符号の説明】
【0108】
100 図形処理装置
101 図形データ格納部
102 設定データ格納部
103 修正図形生成部
104 違反箇所検出部
105 データ格納部
106 出力部
111 辺移動処理部
112 円弧結合処理部
113 辺膨張処理部
114 円弧生成部
115 包含判定部
116 図形データ反転部
117 図形演算部

【特許請求の範囲】
【請求項1】
複数の辺で形成される第1の図形のデータを格納するデータ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、前記第2の図形のデータを前記データ格納部に格納する図形生成ステップと、
前記データ格納部に格納されている前記データに係る前記第2の図形の第1の辺の各々を両側に前記所定長だけ移動させた第2の辺の頂点を、前記第1の辺の頂点を中心として前記所定長を半径とする円弧で結ぶことで、第3の図形を生成し、前記第3の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第2の図形と前記第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成し、前記第4の図形のデータを前記データ格納部に格納するステップと、
を、コンピュータに実行させるための図形処理プログラム。
【請求項2】
前記データ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に前記所定長移動し、移動後の辺の交点のうち移動前の辺の角度が許容角度より大きい交点を中心とし前記所定長を半径とする円を生成し、当該円と当該移動前の辺とにより囲まれる閉領域を特定することで、第5の図形を生成し、前記第5の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第5の図形のうち前記第1の図形内に含まれる前記第5の図形と、前記データ格納部に格納されている前記データに係る前記第4の図形との、図形についての論理和演算を実施することによって、第6の図形を生成し、前記第6の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第1の図形から前記データ格納部に格納されている前記データに係る前記第6の図形を除去する、図形についての差演算を実施することによって、第7の図形を生成し、前記第7のデータを前記データ格納部に格納するステップと、
をさらに前記コンピュータに実行させるための請求項1記載の図形処理プログラム。
【請求項3】
複数の辺で形成される第1の図形のデータを格納するデータ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、前記第2の図形のデータを前記データ格納部に格納する図形生成ステップと、
前記データ格納部に格納されている前記データに係る前記第2の図形の第1の辺の各々を両側に前記所定長だけ移動させた第2の辺の頂点を、前記第1の辺の頂点を中心として前記所定長を半径とする円弧で結ぶことで、第3の図形を生成し、前記第3の図形のデータを前記データ格納部に格納するステップと、
前記データ格納部に格納されている前記データに係る前記第2の図形と前記第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成し、前記第4の図形のデータを前記データ格納部に格納するステップと、
を含み、コンピュータにより実行される図形処理方法。
【請求項4】
複数の辺で形成される第1の図形のデータを格納するデータ格納部と、
前記データ格納部に格納されているデータを用いて処理を実施する処理部と、
を有し、
前記処理部は、
前記データ格納部に格納されている前記データに係る前記第1の図形の各辺を当該第1の図形の内側方向に所定長移動し、移動後の辺及び当該移動後の辺の交点を所定の方向で辿ることで特定される第2の図形を生成し、前記第2の図形のデータを前記データ格納部に格納し、
前記データ格納部に格納されている前記データに係る前記第2の図形の第1の辺の各々を両側に前記所定長だけ移動させた第2の辺の頂点を、前記第1の辺の頂点を中心として前記所定長を半径とする円弧で結ぶことで、第3の図形を生成し、前記第3の図形のデータを前記データ格納部に格納し、
前記データ格納部に格納されている前記データに係る前記第2の図形と前記第3の図形との、図形についての論理和演算を実施することによって、第4の図形を生成し、前記第4の図形のデータを前記データ格納部に格納する、
図形処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図7C】
image rotate

【図7D】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図8C】
image rotate

【図8D】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図15C】
image rotate

【図15D】
image rotate

【図15E】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図16C】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate


【公開番号】特開2012−168730(P2012−168730A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−29180(P2011−29180)
【出願日】平成23年2月14日(2011.2.14)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】