画像処理装置
【課題】図形等を形成する情報を組み合わせてラスタデータを生成する際の視覚的な品質を改善することができる画像処理装置を提供する。
【解決手段】描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有する。
【解決手段】描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、線分などの図形を描画可能な画像処理装置、特に、隣接する図形の接続部分を良好に描画可能な画像処理装置に関するものである。
【背景技術】
【0002】
一般に、従来の画像処理装置では、文字または図形、もしくは直線または曲線を描画する際、それらの形状、大きさ、及び位置を確定できるような情報を組み合わせて描画形状(以下、「ラスタデータ」という)を生成している。
【0003】
例えば、図2に示すように、描画する線分に関して、座標が点A1(A1x, A1y)、点A2(A2x, A2y)、点A3(A3x, A3y)で、幅がWで、線端の形状が三角形で、線分と線分の接続部分の形状が斜角となるように指定されると、まず、線分A1A2と線分A2A3にそれぞれ幅Wをつけ、四角形B1B2B3B4と四角形B5B6B7B8を算出し、次に、線端部分の図形として、三角形B1B9B2と三角形B8B10B7を算出し、更に接続部分の図形として、三角形B5B4A2を算出し、実際に描画される部分の中間データとしての図形を作成している。
【0004】
また、接続部分の図形として、接続する各線分に微小量重畳させた矩形図形を作成するものもある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−15985号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の画像処理装置では、例えば、図2において、中間データをラスタデータにする際、線分A1A2と線分A2A3の接続点A2と、接続部分の図形B5B4A2の頂点A2とが、座標計算における数値演算誤差により、必ずしも一致せず、意図しない隙間が生じてしまう(図7)という問題点があった。
【0007】
また、接続部分の図形として、接続する各線分に微小量重畳させた図形を用いる方法では、上記隙間を防止することはできるものの、各線分の中間データに基づいて、微小量重畳させるための図形の座標を新規に算出する必要があり、処理時間がかかるという問題があった。
【0008】
本発明は、図形等を形成する情報を組み合わせてラスタデータを生成する際の視覚的な品質を改善することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、前述の課題を解決するため、次の構成を採用する。すなわち、描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有するようにした。
【発明の効果】
【0010】
本発明の画像処理装置によれば、描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有するようにしたので、接続部分の図形と幅付けをした図形に誤差が発生しなくなり、少ない処理時間で隙間が開くことをなくすことができる。
【0011】
また、計算上の誤差が発生したとしても、隣接する図形の頂点を利用して接続部分の図形を生成しているので、該図形も誤差が発生して同様にずれるため、隙間が開くことをなくすことができる。
【図面の簡単な説明】
【0012】
【図1】実施例1における画像処理装置1のブロック図である。
【図2】線分の描画方法の説明図である。
【図3】線分情報の入力形式例を示す図である。
【図4】実施例1における動作のフローチャートである。
【図5】実施例1の線分幅付け処理における幅付け後の図形の算出を示す図である。
【図6】実施例1における線分接続点処理のフローチャートである。
【図7】従来の接続部分の図形を示す図である。
【図8】実施例1における接続図形を示す図である。
【図9】実施例2における画像処理装置2のブロック図である。
【図10】実施例1における接続図形の課題を示す図である。
【図11】実施例2における接続図形を示す図である。
【図12】実施例2における線分接続点処理のフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明に係わる実施の形態例を、図面を用いて説明する。図面に共通する要素には同一の符号を付す。
【実施例1】
【0014】
(構成)
図1は、実施例1における画像処理装置1のブロック図である。
図1に示すように、実施例1の画像処理装置1は、入力された線分11を指定された線分修飾情報15に従い修飾し、描画する際の中間データを生成する線分修飾部12と、線分修飾部12で生成された中間データを図示しない出力装置に出力可能なデータ(ラスタデータ)に変換するラスタデータ生成部13と、ラスタデータを出力装置に出力する出力部14とから構成される。
【0015】
また、線分修飾部12は、入力された線分11及び線分修飾情報15に従い、各線分に幅をつける線分幅付け処理部121と、入力された線分11及び線分修飾情報15に従い、線分幅付け処理部121で幅をつけられた線分の短点を修飾する線分端点処理部122と、入力された線分11及び線分修飾情報15に従い、線分幅付け処理部121で幅をつけられた線分の接続点を修飾する線分接続点処理部123とから構成される。
【0016】
また、線分修飾情報15には、線分描画に必要な線分の幅、線分の端点修飾の形状、線分の接続点修飾の形状、及び線分の破線情報などが含まれる。
【0017】
(動作)
以上の構成により、実施例1の画像処理装置1は以下のように動作する。実際の線分修飾に関し、図2に示すように、点A1、A2、A3の座標で線分が指定され、幅がW、線端の形状が三角形、線分と線分の接続部分の形状が斜角であったとして、この動作を図1、図4、及び図6に従い、図2、図3、図5、及び図8を用いて、Sで始まるステップごとに以下詳細に説明する。
【0018】
まず、図3と同様の形式で、線分の頂点A1、A2、A3が入力され(ステップS401)、図2において、1本目の線分として線分A1A2を取り出し(ステップS402)、取り出した線分A1A2に対し、後述する線分幅付け処理にて、指定された幅Wとなるように両側にW/2ずつ幅をつけ、四角形B1B2B3B4を生成する(ステップS403)。
【0019】
図5は、ステップS403の線分幅付け処理における幅付け後の図形の算出を示す図である。線分A1A2の方向で指定の幅の半分W/2に対するx方向とy方向の成分を算出し、それぞれdx、dyとすると、四角形B1B2B3B4の4つの頂点座標は、点A1(A1x, A1y)と点A2(A2x, A2y)から、次のように算出される。
点B1(A1x−dy, A1y+dx)
点B2(A1x+dy, A1y−dx)
点B3(A2x−dy, A2y+dx)
点B4(A2x+dy, A2y−dx)
【0020】
次に、点A1部分が端点か接続点かを判断し(ステップS404)、接続点の場合は、後述する線分接続点処理を行い(ステップS405)、端点の場合は、線分端点処理を行う(ステップS406)。点A1は端点であるため、ステップS406の線分端点処理を行い、線端の形状である三角形B1B2B9にて端点を修飾する。
【0021】
次に、線分の処理が終了したかどうかを判断する(ステップS407)が、今はまだ終了していないため、ステップS402に戻り、次の線分として線分A2A3を取り出す。
【0022】
取り出した線分A2A3に対し、線分幅付け処理にて、指定された幅Wとなるように両側にW/2ずつ幅をつけ、四角形B5B6B7B8を生成し(ステップS403)、点A2部分が端点か接続点かを判断し(ステップS404)、接続点であるので、線分接続点処理を行う(ステップS405)。
【0023】
図6は、線分接続点処理の詳細なフローチャートを示す図である。
まず、図2の幅付けをした図形である四角形B1B2B3B4と四角形B5B6B7B8において、どの辺が接続部分側の辺になるかを決定する(ステップS601)。
【0024】
接続部分を修飾する図形は、辺B1B4と辺B5B8を接続するように必要になるが、ここで、この接続部分を修飾する図形が必要となる辺の決定の仕方の一例を説明する。
【0025】
まず、四角形B1B2B3B4について、接続点部分の辺のベクトルB4B3と線分ベクトルA2A3の内積を計算し、結果が正ならば、点B4側、すなわち辺B1B4が接続する側となり、結果が負ならば、点B3側、すなわち辺B2B3が接続する側となる。なお、この内積の結果が0(ゼロ)になる場合は、線分A1A2と線分A2A3が一直線上にあることになり、接続点の修飾は不要である。ここでは、内積は正になり、接続点として点B4側が決定する。
【0026】
次に、四角形B5B6B7B8については、接続点部分の辺のベクトルB5B6と線分ベクトルA2A1の内積を計算し、結果が正ならば、点B5側、すなわち辺B5B8が接続する側となり、結果が負ならば、点B6側、すなわち辺B6B7が接続する側となる。ここでは、内積は正になり、接続点として点B5側が決定する。
【0027】
なお、接続部分を修飾する図形が必要となる辺は、辺の外積を計算しても決定できる。
【0028】
接続部分を修飾する図形が必要となる辺を決定後、隣接する幅付け図形の第1頂点(点B1または点B5)と第4頂点(点B4または点B8)とが接続点側であれば(ステップS602)、接続部分を修飾する図形を、第2の幅付け図形(四角形B5B6B7B8)の第1頂点(点B5)、第1の幅付け図形(四角形B1B2B3B4)の第4頂点(点B4)、及び第1の幅付け図形の第3頂点(点B3)から成る図形とする(ステップS603)。
【0029】
ここで、隣接する幅付け図形の第1頂点(点B1または点B5)と第4頂点(点B4または点B8)が接続点側でなければ(ステップS602)、接続部分を修飾する図形を、第1の幅付け図形(四角形B1B2B3B4)の第3頂点(点B3)、第2の幅付け図形(四角形B5B6B7B8)の第2頂点(点B6)、及び第1の幅付け図形(四角形B1B2B3B4)の第4頂点(点B4)から成る図形とする(ステップS604)。
【0030】
接続部分の形状は「斜角」が指定されているので、本来、図2に示すような三角形B5B4A2となるが、点A2での誤差を発生させないために、本実施例では、図8に示すような三角形B5B4B3となる。
【0031】
次に、線分の処理が終了したかどうかを判断する(ステップS407)が、ここで線分が終了するため、点A3部分が端点か接続点かの判断をし(ステップS408)、端点であるので、ステップS406と同様の線分端点処理を行い(ステップS410)、線分修飾部の処理を終了する。また、入力された線分が閉図形を成しているときなどは、ステップS405と同様の線分接続点処理を行い(ステップS409)、線分修飾部の処理を終了する。
【0032】
なお、本実施例では、線分の接続部分の形状を「斜角」にして説明したが、他の形状の接続部分の図形を算出する際は、図8の三角形B5B4B3に対して、頂点B5から頂点B4が1線分でなく頂点がいくつか存在して線分が複数になるのみで、幅付けをした図形の頂点B3を使用することに変わりなく、接続部分の形状に左右されない効果を得られる。
【0033】
また、本実施例では、接続部分の図形を算出する際に、第1の幅付け図形の頂点を使用するようにしたが、もちろん、第2の幅付け図形の頂点を使用しても同様の効果となるのは言うまでもない。
【0034】
(実施例1の効果)
以上詳細に述べたように実施例1の画像処理装置1によれば、描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有するようにしたので、接続部分の図形と幅付けをした図形に誤差が発生しなくなり、少ない処理時間で隙間を開かなくすることができる。
【0035】
また、本実施例においては、三角形の辺B3B4は線分A1A2に幅をつけた図形である四角形B1B2B3B4の辺B3B4と一致するため、計算上の誤差が発生しても四角形B1B2B3B4の辺B3B4と三角形B5B4B3の辺B3B4は同じように誤差が発生してずれるので、隙間を開かなくすることができる。
【0036】
ここで、実施例1では、幅付けをした図形と接続部分の図形に隙間が開かないようになり、一般的な線描画では、ほぼ支障ないが、図10に示すように、線分の長さが線分の幅より短い場合に、三角形P1P2B3部分が余分な描画となってしまう場合がある。
【0037】
実施例2は、実施例1の効果に加えて、このような余分な描画をなくす効果を備えたものである。
【実施例2】
【0038】
(構成)
実施例2の画像処理装置2は、図9に示すように、実施例1の構成に対して、描画する際の中間データを作成する線分修飾部92が異なる構成となっている。
【0039】
線分修飾部92は、入力された線分11及び線分修飾情報15に従い、各線分に幅をつける線分幅付け処理部921と、線分幅付け処理部921で幅をつけられた線分に対して入力された元の線分11の頂点を付加する線分頂点付加部924と、入力された線分11及び線分修飾情報15に従い、線分幅付け処理部921で幅をつけられた線分の端点を修飾する線分端点処理部922と、入力された線分11及び線分修飾情報15に従い、線分幅付け処理部921で幅をつけられた線分の接続点を修飾する線分接続点処理部923とから構成される。
【0040】
(動作)
以上の構成により、実施例2の画像処理装置2は以下のように動作する。実際の線分修飾に関し、図11に示すように、点A1´、点A2、点A3´の座標で線分が指定され、実施例1と同様に、幅がW、先端の形状が三角形、線分と線分の接続部分の形状が斜角であったとして、この動作を図4、図9、及び図12に従い、図5及び図11を用いて、Sで始まるステップごとに以下詳細に説明する。
【0041】
図4は、図9における線分修飾部92の実施例を示すフローチャートとなる。
図9の線分修飾部92の基本的動作は、実施例1の線分修飾部12と同様であるため、フローチャートは共通となるが詳細が異なる。ここでは、実施例1と動作の異なる部分についてのみ説明を行うこととする。
【0042】
まず、図3と同様の形式で、線分の頂点A1´、A2、A3´が入力され(ステップS401)、図11において、1本目の線分として線分A1´A2を取り出し(ステップS402)、取り出した線分A1´A2に対し、後述する線分幅付け処理にて、指定された幅Wとなるように両側にW/2ずつ幅をつけ、四角形B1´B2´B3B4を生成する(ステップS403)。
【0043】
実施例2の線分A1´A2は、実施例1の線分A1A2の長さを短くしただけであるため、図5を参照しながら、線分幅付け処理について説明する。
【0044】
実施例1と同様に、線分A1´A2の方向で指定の幅の半分W/2に対するx方向とy方向の成分を算出し、それぞれdx、dyとする。四角形B1´B2´B3B4の4つの頂点座標は、点A1´(A1x´, A1y´)と点A2(A2x, A2y)から、次のように算出される。
点B1´(A1x´−dy, A1y´+dx)
点B2´(A1x´+dy, A1y´−dx)
点B3(A2x−dy, A2y+dx)
点B4(A2x+dy, A2y−dx)
【0045】
幅付けの図形としては四角形B1´B2´B3B4で十分であるが、後に接続部分との誤差が発生しないように、更に元の線分の頂点A1´(A1x´, A1y´)、点A2(A2x, A2y)を付加し、幅付けの図形として六角形B1´A1´B2´B3A2B4を生成する。
【0046】
次に、点A1は端点であるため、線分端点処理を行い(ステップS406)、線分の処理がまだ終了でないため(ステップS407)、ステップS402に戻り、次の線分として線分A2A3´を取り出す。
【0047】
取り出した線分A2A3´に対し、線分幅付け処理にて、指定された幅Wとなるように両側にW/2ずつ幅をつけ、六角形B5A2B6B7´A3´B8を生成し(ステップS403)、点A2部分が端点か接続点かを判断し(ステップS404)、接続点であるので、線分接続点処理を行う(ステップS405)。
【0048】
図12は、実施例2における線分接続点処理のフローチャートである。
まず、図11の幅付けをした図形である六角形B1´A1´B2´B3A2B4と六角形B5A2B6B7´A3´B8´において、どの辺が接続部分側の辺になるかを決定する(ステップS1201)。
【0049】
接続部分を修飾する図形は、辺B1´B4と辺B5B8´を接続するように必要になるが、この接続部分を修飾する図形が必要となる辺の決定の仕方は、実施例1で述べた通りである。
【0050】
接続部分を修飾する図形が必要となる辺を決定後、2つの幅付け図形の第1頂点(点B1´または点B5)と第6頂点(点B4または点B8´)とが接続点側であれば(ステップS1202)、接続部分を修飾する図形を、第2の幅付け図形(六角形B5A2B6B7´A3´B8´)の第1頂点(点B5)、第1の幅付け図形(六角形B1´A1´B2´B3A2B4)の第6頂点(点B4)、及び第2の幅付け図形(六角形B5A2B6B7´A3´B8´)の第2頂点又は第1の幅付け図形(六角形B1´A1´B2´B3A2B4)の第5頂点(点A2)から成る図形とする(ステップS1203)。
【0051】
ここで、2つの幅付け図形の第1頂点(点B1´または点B5)と第6頂点(点B4または点B8´)が接続点側でなければ(ステップS1202)、接続部分を修飾する図形を、第1の幅付け図形(六角形B1´A1´B2´B3A2B4)の第4頂点(点B3)、第2の幅付け図形(六角形B5A2B6B7´A3´B8´)の第3頂点(点B6)、及び第2の幅付け図形(六角形B5A2B6B7´A3´B8´)の第2頂点又は第1の幅付け図形(六角形B1´A1´B2´B3A2B4)の第5頂点(点A2)から成る図形とする(ステップS1204)。
【0052】
以降、線分修飾部92の処理が終了になるまでの動作は、実施例1と同様である。
【0053】
なお、本実施例では、線分の接続部分の形状を「斜角」にして説明したが、他の形状の接続部分の図形を算出する際は、図11の三角形B5B4A2に対して、頂点B5から頂点B4が1線分でなく頂点がいくつか存在して線分が複数になるのみで、幅付けをした図形の頂点A2を使用することに変わりなく、接続部分の形状に左右されない効果を得られる。
【0054】
(実施例2の効果)
以上詳細に述べたように、実施例2の画像処理装置2によれば、隣接する図形の接続点側の頂点と、線分情報内の線分に対応した図形に該線分の端点を頂点として付加し、付加した頂点のうち、隣接する図形の接続点となる頂点とで形成される接続図形を生成するようにしたので、三角形の辺B4A2は線分A1´A2に幅をつけた図形である六角形B1´A1´B2´B3A2B4の辺B4A2と一致するため、計算上の誤差が発生しても六角形B1´A1´B2´B3A2B4の辺B4A2と三角形B5B4A2の辺B4A2は同じように誤差が発生してずれるので、隙間を開かなくすることができ、同様に、三角形の辺B5A2は線分A2A3´に幅をつけた図形である六角形B5A2B6B7´A3´B8´の辺B5A2と一致するため、計算上の誤差が発生しても、六角形B5B6B7´A3´B8´の辺B5A2と三角形B5B4A2の辺B5A2は同じように誤差が発生してずれるので、隙間を開かなくすることができるとともに、図10で示したような余分な描画をすることを防止できる。
【産業上の利用可能性】
【0055】
以上述べたように、本発明では、画像処理装置として説明を行ったが、MFP(Multifunction Peripheral:多機能周辺装置)、ファクシミリ、複写装置、および印刷装置などにも幅広く利用することができる。
【符号の説明】
【0056】
1、2 画像処理装置
11 線分情報
12、92 線分修飾部
13 ラスタデータ生成部
14 出力部
15 線分修飾情報
121、921 線分幅付け処理部
122、922 線分端点処理部
123、923 線分接続点処理部
924 線分頂点付加部
【技術分野】
【0001】
本発明は、線分などの図形を描画可能な画像処理装置、特に、隣接する図形の接続部分を良好に描画可能な画像処理装置に関するものである。
【背景技術】
【0002】
一般に、従来の画像処理装置では、文字または図形、もしくは直線または曲線を描画する際、それらの形状、大きさ、及び位置を確定できるような情報を組み合わせて描画形状(以下、「ラスタデータ」という)を生成している。
【0003】
例えば、図2に示すように、描画する線分に関して、座標が点A1(A1x, A1y)、点A2(A2x, A2y)、点A3(A3x, A3y)で、幅がWで、線端の形状が三角形で、線分と線分の接続部分の形状が斜角となるように指定されると、まず、線分A1A2と線分A2A3にそれぞれ幅Wをつけ、四角形B1B2B3B4と四角形B5B6B7B8を算出し、次に、線端部分の図形として、三角形B1B9B2と三角形B8B10B7を算出し、更に接続部分の図形として、三角形B5B4A2を算出し、実際に描画される部分の中間データとしての図形を作成している。
【0004】
また、接続部分の図形として、接続する各線分に微小量重畳させた矩形図形を作成するものもある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−15985号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の画像処理装置では、例えば、図2において、中間データをラスタデータにする際、線分A1A2と線分A2A3の接続点A2と、接続部分の図形B5B4A2の頂点A2とが、座標計算における数値演算誤差により、必ずしも一致せず、意図しない隙間が生じてしまう(図7)という問題点があった。
【0007】
また、接続部分の図形として、接続する各線分に微小量重畳させた図形を用いる方法では、上記隙間を防止することはできるものの、各線分の中間データに基づいて、微小量重畳させるための図形の座標を新規に算出する必要があり、処理時間がかかるという問題があった。
【0008】
本発明は、図形等を形成する情報を組み合わせてラスタデータを生成する際の視覚的な品質を改善することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、前述の課題を解決するため、次の構成を採用する。すなわち、描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有するようにした。
【発明の効果】
【0010】
本発明の画像処理装置によれば、描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有するようにしたので、接続部分の図形と幅付けをした図形に誤差が発生しなくなり、少ない処理時間で隙間が開くことをなくすことができる。
【0011】
また、計算上の誤差が発生したとしても、隣接する図形の頂点を利用して接続部分の図形を生成しているので、該図形も誤差が発生して同様にずれるため、隙間が開くことをなくすことができる。
【図面の簡単な説明】
【0012】
【図1】実施例1における画像処理装置1のブロック図である。
【図2】線分の描画方法の説明図である。
【図3】線分情報の入力形式例を示す図である。
【図4】実施例1における動作のフローチャートである。
【図5】実施例1の線分幅付け処理における幅付け後の図形の算出を示す図である。
【図6】実施例1における線分接続点処理のフローチャートである。
【図7】従来の接続部分の図形を示す図である。
【図8】実施例1における接続図形を示す図である。
【図9】実施例2における画像処理装置2のブロック図である。
【図10】実施例1における接続図形の課題を示す図である。
【図11】実施例2における接続図形を示す図である。
【図12】実施例2における線分接続点処理のフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明に係わる実施の形態例を、図面を用いて説明する。図面に共通する要素には同一の符号を付す。
【実施例1】
【0014】
(構成)
図1は、実施例1における画像処理装置1のブロック図である。
図1に示すように、実施例1の画像処理装置1は、入力された線分11を指定された線分修飾情報15に従い修飾し、描画する際の中間データを生成する線分修飾部12と、線分修飾部12で生成された中間データを図示しない出力装置に出力可能なデータ(ラスタデータ)に変換するラスタデータ生成部13と、ラスタデータを出力装置に出力する出力部14とから構成される。
【0015】
また、線分修飾部12は、入力された線分11及び線分修飾情報15に従い、各線分に幅をつける線分幅付け処理部121と、入力された線分11及び線分修飾情報15に従い、線分幅付け処理部121で幅をつけられた線分の短点を修飾する線分端点処理部122と、入力された線分11及び線分修飾情報15に従い、線分幅付け処理部121で幅をつけられた線分の接続点を修飾する線分接続点処理部123とから構成される。
【0016】
また、線分修飾情報15には、線分描画に必要な線分の幅、線分の端点修飾の形状、線分の接続点修飾の形状、及び線分の破線情報などが含まれる。
【0017】
(動作)
以上の構成により、実施例1の画像処理装置1は以下のように動作する。実際の線分修飾に関し、図2に示すように、点A1、A2、A3の座標で線分が指定され、幅がW、線端の形状が三角形、線分と線分の接続部分の形状が斜角であったとして、この動作を図1、図4、及び図6に従い、図2、図3、図5、及び図8を用いて、Sで始まるステップごとに以下詳細に説明する。
【0018】
まず、図3と同様の形式で、線分の頂点A1、A2、A3が入力され(ステップS401)、図2において、1本目の線分として線分A1A2を取り出し(ステップS402)、取り出した線分A1A2に対し、後述する線分幅付け処理にて、指定された幅Wとなるように両側にW/2ずつ幅をつけ、四角形B1B2B3B4を生成する(ステップS403)。
【0019】
図5は、ステップS403の線分幅付け処理における幅付け後の図形の算出を示す図である。線分A1A2の方向で指定の幅の半分W/2に対するx方向とy方向の成分を算出し、それぞれdx、dyとすると、四角形B1B2B3B4の4つの頂点座標は、点A1(A1x, A1y)と点A2(A2x, A2y)から、次のように算出される。
点B1(A1x−dy, A1y+dx)
点B2(A1x+dy, A1y−dx)
点B3(A2x−dy, A2y+dx)
点B4(A2x+dy, A2y−dx)
【0020】
次に、点A1部分が端点か接続点かを判断し(ステップS404)、接続点の場合は、後述する線分接続点処理を行い(ステップS405)、端点の場合は、線分端点処理を行う(ステップS406)。点A1は端点であるため、ステップS406の線分端点処理を行い、線端の形状である三角形B1B2B9にて端点を修飾する。
【0021】
次に、線分の処理が終了したかどうかを判断する(ステップS407)が、今はまだ終了していないため、ステップS402に戻り、次の線分として線分A2A3を取り出す。
【0022】
取り出した線分A2A3に対し、線分幅付け処理にて、指定された幅Wとなるように両側にW/2ずつ幅をつけ、四角形B5B6B7B8を生成し(ステップS403)、点A2部分が端点か接続点かを判断し(ステップS404)、接続点であるので、線分接続点処理を行う(ステップS405)。
【0023】
図6は、線分接続点処理の詳細なフローチャートを示す図である。
まず、図2の幅付けをした図形である四角形B1B2B3B4と四角形B5B6B7B8において、どの辺が接続部分側の辺になるかを決定する(ステップS601)。
【0024】
接続部分を修飾する図形は、辺B1B4と辺B5B8を接続するように必要になるが、ここで、この接続部分を修飾する図形が必要となる辺の決定の仕方の一例を説明する。
【0025】
まず、四角形B1B2B3B4について、接続点部分の辺のベクトルB4B3と線分ベクトルA2A3の内積を計算し、結果が正ならば、点B4側、すなわち辺B1B4が接続する側となり、結果が負ならば、点B3側、すなわち辺B2B3が接続する側となる。なお、この内積の結果が0(ゼロ)になる場合は、線分A1A2と線分A2A3が一直線上にあることになり、接続点の修飾は不要である。ここでは、内積は正になり、接続点として点B4側が決定する。
【0026】
次に、四角形B5B6B7B8については、接続点部分の辺のベクトルB5B6と線分ベクトルA2A1の内積を計算し、結果が正ならば、点B5側、すなわち辺B5B8が接続する側となり、結果が負ならば、点B6側、すなわち辺B6B7が接続する側となる。ここでは、内積は正になり、接続点として点B5側が決定する。
【0027】
なお、接続部分を修飾する図形が必要となる辺は、辺の外積を計算しても決定できる。
【0028】
接続部分を修飾する図形が必要となる辺を決定後、隣接する幅付け図形の第1頂点(点B1または点B5)と第4頂点(点B4または点B8)とが接続点側であれば(ステップS602)、接続部分を修飾する図形を、第2の幅付け図形(四角形B5B6B7B8)の第1頂点(点B5)、第1の幅付け図形(四角形B1B2B3B4)の第4頂点(点B4)、及び第1の幅付け図形の第3頂点(点B3)から成る図形とする(ステップS603)。
【0029】
ここで、隣接する幅付け図形の第1頂点(点B1または点B5)と第4頂点(点B4または点B8)が接続点側でなければ(ステップS602)、接続部分を修飾する図形を、第1の幅付け図形(四角形B1B2B3B4)の第3頂点(点B3)、第2の幅付け図形(四角形B5B6B7B8)の第2頂点(点B6)、及び第1の幅付け図形(四角形B1B2B3B4)の第4頂点(点B4)から成る図形とする(ステップS604)。
【0030】
接続部分の形状は「斜角」が指定されているので、本来、図2に示すような三角形B5B4A2となるが、点A2での誤差を発生させないために、本実施例では、図8に示すような三角形B5B4B3となる。
【0031】
次に、線分の処理が終了したかどうかを判断する(ステップS407)が、ここで線分が終了するため、点A3部分が端点か接続点かの判断をし(ステップS408)、端点であるので、ステップS406と同様の線分端点処理を行い(ステップS410)、線分修飾部の処理を終了する。また、入力された線分が閉図形を成しているときなどは、ステップS405と同様の線分接続点処理を行い(ステップS409)、線分修飾部の処理を終了する。
【0032】
なお、本実施例では、線分の接続部分の形状を「斜角」にして説明したが、他の形状の接続部分の図形を算出する際は、図8の三角形B5B4B3に対して、頂点B5から頂点B4が1線分でなく頂点がいくつか存在して線分が複数になるのみで、幅付けをした図形の頂点B3を使用することに変わりなく、接続部分の形状に左右されない効果を得られる。
【0033】
また、本実施例では、接続部分の図形を算出する際に、第1の幅付け図形の頂点を使用するようにしたが、もちろん、第2の幅付け図形の頂点を使用しても同様の効果となるのは言うまでもない。
【0034】
(実施例1の効果)
以上詳細に述べたように実施例1の画像処理装置1によれば、描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有するようにしたので、接続部分の図形と幅付けをした図形に誤差が発生しなくなり、少ない処理時間で隙間を開かなくすることができる。
【0035】
また、本実施例においては、三角形の辺B3B4は線分A1A2に幅をつけた図形である四角形B1B2B3B4の辺B3B4と一致するため、計算上の誤差が発生しても四角形B1B2B3B4の辺B3B4と三角形B5B4B3の辺B3B4は同じように誤差が発生してずれるので、隙間を開かなくすることができる。
【0036】
ここで、実施例1では、幅付けをした図形と接続部分の図形に隙間が開かないようになり、一般的な線描画では、ほぼ支障ないが、図10に示すように、線分の長さが線分の幅より短い場合に、三角形P1P2B3部分が余分な描画となってしまう場合がある。
【0037】
実施例2は、実施例1の効果に加えて、このような余分な描画をなくす効果を備えたものである。
【実施例2】
【0038】
(構成)
実施例2の画像処理装置2は、図9に示すように、実施例1の構成に対して、描画する際の中間データを作成する線分修飾部92が異なる構成となっている。
【0039】
線分修飾部92は、入力された線分11及び線分修飾情報15に従い、各線分に幅をつける線分幅付け処理部921と、線分幅付け処理部921で幅をつけられた線分に対して入力された元の線分11の頂点を付加する線分頂点付加部924と、入力された線分11及び線分修飾情報15に従い、線分幅付け処理部921で幅をつけられた線分の端点を修飾する線分端点処理部922と、入力された線分11及び線分修飾情報15に従い、線分幅付け処理部921で幅をつけられた線分の接続点を修飾する線分接続点処理部923とから構成される。
【0040】
(動作)
以上の構成により、実施例2の画像処理装置2は以下のように動作する。実際の線分修飾に関し、図11に示すように、点A1´、点A2、点A3´の座標で線分が指定され、実施例1と同様に、幅がW、先端の形状が三角形、線分と線分の接続部分の形状が斜角であったとして、この動作を図4、図9、及び図12に従い、図5及び図11を用いて、Sで始まるステップごとに以下詳細に説明する。
【0041】
図4は、図9における線分修飾部92の実施例を示すフローチャートとなる。
図9の線分修飾部92の基本的動作は、実施例1の線分修飾部12と同様であるため、フローチャートは共通となるが詳細が異なる。ここでは、実施例1と動作の異なる部分についてのみ説明を行うこととする。
【0042】
まず、図3と同様の形式で、線分の頂点A1´、A2、A3´が入力され(ステップS401)、図11において、1本目の線分として線分A1´A2を取り出し(ステップS402)、取り出した線分A1´A2に対し、後述する線分幅付け処理にて、指定された幅Wとなるように両側にW/2ずつ幅をつけ、四角形B1´B2´B3B4を生成する(ステップS403)。
【0043】
実施例2の線分A1´A2は、実施例1の線分A1A2の長さを短くしただけであるため、図5を参照しながら、線分幅付け処理について説明する。
【0044】
実施例1と同様に、線分A1´A2の方向で指定の幅の半分W/2に対するx方向とy方向の成分を算出し、それぞれdx、dyとする。四角形B1´B2´B3B4の4つの頂点座標は、点A1´(A1x´, A1y´)と点A2(A2x, A2y)から、次のように算出される。
点B1´(A1x´−dy, A1y´+dx)
点B2´(A1x´+dy, A1y´−dx)
点B3(A2x−dy, A2y+dx)
点B4(A2x+dy, A2y−dx)
【0045】
幅付けの図形としては四角形B1´B2´B3B4で十分であるが、後に接続部分との誤差が発生しないように、更に元の線分の頂点A1´(A1x´, A1y´)、点A2(A2x, A2y)を付加し、幅付けの図形として六角形B1´A1´B2´B3A2B4を生成する。
【0046】
次に、点A1は端点であるため、線分端点処理を行い(ステップS406)、線分の処理がまだ終了でないため(ステップS407)、ステップS402に戻り、次の線分として線分A2A3´を取り出す。
【0047】
取り出した線分A2A3´に対し、線分幅付け処理にて、指定された幅Wとなるように両側にW/2ずつ幅をつけ、六角形B5A2B6B7´A3´B8を生成し(ステップS403)、点A2部分が端点か接続点かを判断し(ステップS404)、接続点であるので、線分接続点処理を行う(ステップS405)。
【0048】
図12は、実施例2における線分接続点処理のフローチャートである。
まず、図11の幅付けをした図形である六角形B1´A1´B2´B3A2B4と六角形B5A2B6B7´A3´B8´において、どの辺が接続部分側の辺になるかを決定する(ステップS1201)。
【0049】
接続部分を修飾する図形は、辺B1´B4と辺B5B8´を接続するように必要になるが、この接続部分を修飾する図形が必要となる辺の決定の仕方は、実施例1で述べた通りである。
【0050】
接続部分を修飾する図形が必要となる辺を決定後、2つの幅付け図形の第1頂点(点B1´または点B5)と第6頂点(点B4または点B8´)とが接続点側であれば(ステップS1202)、接続部分を修飾する図形を、第2の幅付け図形(六角形B5A2B6B7´A3´B8´)の第1頂点(点B5)、第1の幅付け図形(六角形B1´A1´B2´B3A2B4)の第6頂点(点B4)、及び第2の幅付け図形(六角形B5A2B6B7´A3´B8´)の第2頂点又は第1の幅付け図形(六角形B1´A1´B2´B3A2B4)の第5頂点(点A2)から成る図形とする(ステップS1203)。
【0051】
ここで、2つの幅付け図形の第1頂点(点B1´または点B5)と第6頂点(点B4または点B8´)が接続点側でなければ(ステップS1202)、接続部分を修飾する図形を、第1の幅付け図形(六角形B1´A1´B2´B3A2B4)の第4頂点(点B3)、第2の幅付け図形(六角形B5A2B6B7´A3´B8´)の第3頂点(点B6)、及び第2の幅付け図形(六角形B5A2B6B7´A3´B8´)の第2頂点又は第1の幅付け図形(六角形B1´A1´B2´B3A2B4)の第5頂点(点A2)から成る図形とする(ステップS1204)。
【0052】
以降、線分修飾部92の処理が終了になるまでの動作は、実施例1と同様である。
【0053】
なお、本実施例では、線分の接続部分の形状を「斜角」にして説明したが、他の形状の接続部分の図形を算出する際は、図11の三角形B5B4A2に対して、頂点B5から頂点B4が1線分でなく頂点がいくつか存在して線分が複数になるのみで、幅付けをした図形の頂点A2を使用することに変わりなく、接続部分の形状に左右されない効果を得られる。
【0054】
(実施例2の効果)
以上詳細に述べたように、実施例2の画像処理装置2によれば、隣接する図形の接続点側の頂点と、線分情報内の線分に対応した図形に該線分の端点を頂点として付加し、付加した頂点のうち、隣接する図形の接続点となる頂点とで形成される接続図形を生成するようにしたので、三角形の辺B4A2は線分A1´A2に幅をつけた図形である六角形B1´A1´B2´B3A2B4の辺B4A2と一致するため、計算上の誤差が発生しても六角形B1´A1´B2´B3A2B4の辺B4A2と三角形B5B4A2の辺B4A2は同じように誤差が発生してずれるので、隙間を開かなくすることができ、同様に、三角形の辺B5A2は線分A2A3´に幅をつけた図形である六角形B5A2B6B7´A3´B8´の辺B5A2と一致するため、計算上の誤差が発生しても、六角形B5B6B7´A3´B8´の辺B5A2と三角形B5B4A2の辺B5A2は同じように誤差が発生してずれるので、隙間を開かなくすることができるとともに、図10で示したような余分な描画をすることを防止できる。
【産業上の利用可能性】
【0055】
以上述べたように、本発明では、画像処理装置として説明を行ったが、MFP(Multifunction Peripheral:多機能周辺装置)、ファクシミリ、複写装置、および印刷装置などにも幅広く利用することができる。
【符号の説明】
【0056】
1、2 画像処理装置
11 線分情報
12、92 線分修飾部
13 ラスタデータ生成部
14 出力部
15 線分修飾情報
121、921 線分幅付け処理部
122、922 線分端点処理部
123、923 線分接続点処理部
924 線分頂点付加部
【特許請求の範囲】
【請求項1】
描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、
前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有することを特徴とする画像処理装置。
【請求項2】
前記接続図形生成手段は、前記接続点側頂点判定手段にて決定した頂点と、前記接続点側頂点判断手段にて決定されなかった頂点のうち、いずれか1つの頂点とで形成される接続図形を生成することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記中間データ生成手段は、前記線分情報内の線分に対応した前記図形に該線分の端点を頂点として付加し、
前記接続図形生成手段は、前記接続点側頂点判定手段にて決定した頂点と、前記付加した頂点のうち、隣接する図形の接続点となる頂点とで形成される接続図形を生成することを特徴とする請求項1記載の画像処理装置。
【請求項1】
描画形状を生成する描画形状生成手段と、線分情報に基づいて描画形状を生成するための中間データを生成する中間データ生成手段とを備え、図形を描画可能な画像処理装置において、
前記中間データ生成手段は、隣接する図形の接続点側の頂点を決定する接続点側頂点判定手段と、前記接続点側頂点判定手段にて決定した頂点を含む頂点で形成される接続図形を生成する接続図形生成手段とを有することを特徴とする画像処理装置。
【請求項2】
前記接続図形生成手段は、前記接続点側頂点判定手段にて決定した頂点と、前記接続点側頂点判断手段にて決定されなかった頂点のうち、いずれか1つの頂点とで形成される接続図形を生成することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記中間データ生成手段は、前記線分情報内の線分に対応した前記図形に該線分の端点を頂点として付加し、
前記接続図形生成手段は、前記接続点側頂点判定手段にて決定した頂点と、前記付加した頂点のうち、隣接する図形の接続点となる頂点とで形成される接続図形を生成することを特徴とする請求項1記載の画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−44050(P2011−44050A)
【公開日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願番号】特願2009−192651(P2009−192651)
【出願日】平成21年8月22日(2009.8.22)
【出願人】(591044164)株式会社沖データ (2,444)
【出願人】(594202361)株式会社沖データシステムズ (259)
【Fターム(参考)】
【公開日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願日】平成21年8月22日(2009.8.22)
【出願人】(591044164)株式会社沖データ (2,444)
【出願人】(594202361)株式会社沖データシステムズ (259)
【Fターム(参考)】
[ Back to top ]