(57)【特許請求の範囲】
【請求項１】
入力図形の座標を示す座標情報と図形を修飾するための修飾情報とに基づいて描画領域を算出する描画領域算出部を有する図形処理装置において、
前記描画領域を端部位置と近傍の端点位置を含む三角形領域に分割する描画領域分割部と、
前記三角形領域の高さが出力すべき画素の間隔より小さいか否かを判定する高さ判定部と、
前記三角形領域の高さが前記間隔より小さいと、前記端部位置の座標が（Ａｘ、Ａｙ）、前記三角形領域の底辺の両座標が（Ｂｘ、Ｂｙ）及び（Ｂ’ｘ、Ｂ’ｙ）とした場合、座標（（Ａｘ＋Ｂｘ）÷２、Ａｙ（Ａｙ＋Ｂｙ）÷２）と座標（（Ａｘ＋Ｂ’ｘ）÷２、（Ａｙ＋Ｂ’ｙ）÷２）で示される各中点座標を算出する補正部と、
前記各中点座標をその座標点に最も近い実際の画素単位の座標に変換する変換部と、  
前記変換された各座標を含む画素及び該画素間の画素を描画する描画領域出力部と、を備えることを特徴とする図形処理装置。
【請求項２】
前記修飾情報で示す解像度と出力解像度を比較して該出力解像度が大きいと前記三角形領域の補正を不要と判断する出力精度判断部を更に備えることを特徴とする請求項１記載の図形処理装置。
【請求項３】
分割領域の高さが前記画素の間隔より大きく、かつ次の隣接する前記三角形領域の高さが前記高さ判定部により前記画素の間隔より小さいと判定されたときに前記補正部に対し該三角形領域の補正を指示する高さ情報判定部を更に備えることを特徴とする請求項１記載の図形処理装置。
【請求項４】
請求項１から請求項３までの何れかに記載の図形処理装置と、当該図形処理装置にて生成された前記入力図形の描画データを入力して画像を形成する出力装置とを備えることを特徴とする図形処理システム。
【請求項５】
描画領域算出部により入力図形の座標を示す座標情報と図形を修飾するための修飾情報とに基づいて描画領域を算出する描画領域算出ステップと、
描画領域分別部により前記描画領域を端部位置と近傍の端点位置を含む三角形領域に分割する描画領域分割ステップと、
高さ判定部により前記三角形領域の高さが出力すべき画素の間隔より小さいか否かを判定する高さ判定ステップと、
前記三角形領域の高さが前記間隔より小さいと、前記端部位置の座標が（Ａｘ、Ａｙ）、前記三角形領域の底辺の両座標が（Ｂｘ、Ｂｙ）及び（Ｂ’ｘ、Ｂ’ｙ  ）とした場合、補正部により座標（（Ａｘ＋Ｂｘ）÷２、（Ａｙ＋Ｂｙ）÷２）と座標（（Ａｘ＋Ｂ’ｘ）÷２、（Ａｙ＋Ｂ’ｙ）÷２）で示される各中点座標を算出する補正ステップと、
変換部により前記各中点座標をその座標点に最も近い実際の画素単位の座標に変換する変換ステップと、  
描画領域出力部により前記変換された各座標を含む画素及び該画素間の画素を描画する描画領域出力ステップと、を備えることを特徴とする図形処理方法。
【請求項６】
前記修飾情報で示す解像度と出力解像度を比較して該出力解像度が大きいと出力精度判断部により前記三角形領域の補正を不要と判断する出力精度判断ステップを更に備えることを特徴とする請求項５記載の図形処理方法。
【請求項７】
分割領域の高さが前記画素の間隔より大きく、かつ次の隣接する前記三角形領域の高さが前記高さ判定ステップで前記画素の間隔より小さいと判定されると、高さ情報判定部により前記補正ステップを実行させる高さ情報判定ステップを更に備えることを特徴とする請求項５記載の図形処理方法。
【請求項８】
入力図形の座標を走査して、描画領域を算出する描画領域算出部を有する図形処理装置において、
前記座標の走査方向と垂直な方向の長さに応じて前記描画領域を補正する描画領域補正部であって、
前記描画領域補正部は、図形処理装置が有する記憶手段の容量が所定値より小さい場合に、前記長さが画素単位で１に満たない描画領域部分の形状を変更することを特徴とする図形処理装置。
【請求項９】
入力図形の座標情報を走査して、描画領域を算出する図形処理方法において、
描画領域補正部により前記座標の走査方向と垂直な方向の長さに応じて前記描画領域を補正すると共に、図形処理装置が有する記憶手段の容量が所定値より小さい場合に、前記長さが画素単位で１に満たない描画領域部分の形状を変更する描画領域補正ステップを含むことを特徴とする図形処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、円や多角形、線分等の図形を描写可能な図形処理装置、図形処理システム、および図形処理方法に関する。
【背景技術】
【０００２】
従来、入力図形の座標情報や修飾情報（形状や大きさの情報）に基づいて描画形状（ラスタデータ）を生成し、文字や図形、または直線や曲線を描画する図形処理装置が知られている（例えば、特許文献１参照）。
通常、このような描画処理においては、ラスタデータの生成を容易にするため、中間データとして入力図形を三角形や台形等に分割する方法が採られている。その際、ラスタデータの精度を向上させるため、描画印刷時の画素単位よりも細かい座標単位で図形算出処理が行われ、その図形処理に基づいて実際に印刷される画素単位で描画が行われていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３１９５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、従来の図形処理では、細かい座標単位から実際の画素単位の座標へと変換される際に、細かい座標単位で描画された図形は、この細かい座標単位を含む実際の画素単位で一律に描画されるように変換されていた。このため、例えば、高さが画素単位で１に満たない図形の場合では、全て１画素として描画されるため、本来意図した形状とは異なった図形が描画されるという問題があった。
【０００５】
すなわち、本発明の図形処理装置は、入力図形の座標を示す座標情報と図形を修飾するための修飾情報とに基づいて描画領域を算出する描画領域算出部を有する図形処理装置において、描画領域を端部位置と近傍の端点位置を含む三角形領域に分割する描画領域分割部と、三角形領域の高さが出力すべき画素の間隔より小さいか否かを判定する高さ判定部と、三角形領域の高さが前記間隔より小さいと、端部位置の座標が（Ａｘ、Ａｙ）、三角形領域の底辺の両座標が（Ｂｘ、Ｂｙ）及び（Ｂ’ｘ、Ｂ’ｙ  ）とした場合、座標（（Ａｘ＋Ｂｘ）÷２、Ａｙ（Ａｙ＋Ｂｙ）÷２）と座標（（Ａｘ＋Ｂ’ｘ）÷２、（Ａｙ＋Ｂ’ｙ）÷２）で示される各中点座標を算出する補正部と、各中点座標をその座標点に最も近い実際の画素単位の座標に変換する変換部と、変換された各座標を含む画素及び該画素間の画素を描画する描画領域出力部と、を備えることを特徴とする。
また、本発明の他の図形処理装置は、入力図形の座標を走査して、描画領域を算出する描画領域算出部を有する図形処理装置において、座標の走査方向と垂直な方向の長さに応じて描画領域を補正する描画領域補正部であって、描画領域補正部は、図形処理装置が有する記憶手段の容量が所定値より小さい場合に、長さが画素単位で１に満たない描画領域部分の形状を変更することを特徴とする。
【課題を解決するための手段】
【０００６】
すなわち、本発明の図形処理装置は、入力図形の座標情報を走査して、描画領域を算出する描画領域算出部を有する図形処理装置において、上記座標情報の走査方向と垂直な方向の長さに応じて上記描画領域を補正する描画領域補正部を有することを特徴としている。
【０００７】
また、本発明の図形処理方法は、描画領域算出部により入力図形の座標を示す座標情報と図形を修飾するための修飾情報とに基づいて描画領域を算出する描画領域算出ステップと、描画領域分別部により描画領域を端部位置と近傍の端点位置を含む三角形領域に分割する描画領域分割ステップと、高さ判定部により三角形領域の高さが出力すべき画素の間隔より小さいか否かを判定する高さ判定ステップと、三角形領域の高さが間隔より小さいと、端部位置の座標が（Ａｘ、Ａｙ）、三角形領域の底辺の両座標が（Ｂｘ、Ｂｙ）及び（Ｂ’ｘ、Ｂ’ｙ  ）とした場合、補正部により座標（（Ａｘ＋Ｂｘ）÷２、（Ａｙ＋Ｂｙ）÷２）と座標（（Ａｘ＋Ｂ’ｘ）÷２、（Ａｙ＋Ｂ’ｙ）÷２）で示される各中点座標を算出する補正ステップと、変換部により各中点座標をその座標点に最も近い実際の画素単位の座標に変換する変換ステップと、  描画領域出力部により変換された各座標を含む画素及び該画素間の画素を描画する描画領域出力ステップと、
を備えることを特徴とする。
更に、本発明の他の図形処理方法は、入力図形の座標情報を走査して、描画領域を算出する図形処理方法において、描画領域補正部により座標の走査方向と垂直な方向の長さに応じて前記描画領域を補正すると共に、図形処理装置が有する記憶手段の容量が所定値より小さい場合に、長さが画素単位で１に満たない描画領域部分の形状を変更する描画領域補正ステップを含むことを特徴とする。
【０００８】
また、本発明の図形処理方法は、入力図形の座標情報を走査して、描画領域を算出する図形処理方法において、上記座標情報の走査方向と垂直な方向の長さに応じて上記描画領域を補正することを特徴としている。
【発明の効果】
【０００９】
描画領域算出部で算出された描画領域を補正する描画領域補正部を有するので、本来描画しようとする図形の形状とほぼ同じ描画を行うことが可能となり、ラスタデータ生成の際の視覚的な品質を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１による図形処理装置のブロック構成図である。
【図２】実施例１による補正有図形分割部のブロック構成図である。
【図３】分割図形の座標情報により作成される実際の描画図形を示す図である。
【図４】図形情報の形式を示す図である。
【図５】実施例１による図形生成部のフローチャートである。
【図６】図７の線分情報により描画される図形を示す図である。
【図７】線分情報の形式を示す図である。
【図８】実施例１による補正有図形分割のフローチャートである。
【図９】補正有図形分割の説明図である。
【図１０】図形情報に基づき作成される実際の描画図形を示す図である。
【図１１】図６の図形情報の形式を示す図である。
【図１２】実施例２による図形生成部のフローチャートである。
【図１３】実施例２による補正無図形分割のフローチャートである。
【図１４】実施例３による補正有図形分割のフローチャートである。
【図１５】各分割図形情報の形式を示す図である。
【図１６】実施例４による補正有図形分割のフローチャート（その１）である。
【図１７】実施例４による補正有図形分割のフローチャート（その２）である。
【図１８】高さ１未満の２つの分割図形でなる図形の補正を示す図である。
【図１９】本発明の実施例２による図形処理装置のブロック構成図である。
【図２０】実施例２による補正無図形分割部のブロック構成図である。
【図２１】実施例３による補正有図形分割部のブロック構成図である。
【図２２】実施例４による補正有図形分割部のブロック構成図である。
【図２３】本発明の実施例５による図形処理装置のブロック構成図である。
【図２４】実施例５による形状補正図形分割部のブロック構成図である。
【図２５】実施例５による形状変更図形分割部のブロック構成図である。
【図２６】実施例５による図形生成部のフローチャートである。
【図２７】実施例５による形状変更図形分割のフローチャートである。
【図２８】実施例５による形状変更図形分割補正の説明図である。
【図２９】細い線画の描画を示す図である。
【図３０】三角形と矩形における情報量の違いを示す説明図である。
【図３１】図３３の線分情報により描画される図形を示す図である。
【図３２】実施例５による形状変更図形分割の説明図である。
【図３３】図３２の図形情報の形式を示す図である。
【発明を実施するための形態】
【００１１】
以下、図１〜図３３に基づいて本発明の実施の形態を説明する。
【実施例１】
【００１２】
図１は本発明の実施例１による図形処理装置のブロック構成図である。
実施例１による図形処理装置は、入力された図形情報１１から抽出した座標情報と図形修飾情報１５に基づき、描画すべき図形を生成する図形生成部１２と、図形生成部１２で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部１３と、ラスタデータ生成部１３で生成された、例えば、１ページ分のラスタデータを出力装置（図示せず）に出力可能なバッファとしてのラスタデータ出力部１４とを有する。
また、上記図形生成部１２は、図形情報１１から抽出された座標情報と図形修飾情報１５から、実際に描画可能な描画領域を座標情報として算出する描画領域算出部１２１と、描画図形の視覚的品質を向上するため、描画領域算出部１２１で算出された描画領域の座標情報を補正する補正有図形分割部１２２とを有する。
【００１３】
図２は、実施例１による補正有図形分割部１２２の詳細を示すブロック構成図であり、補正有図形分割部１２２は、描画領域算出部１２１において算出された描画領域の座標情報を入力する座標情報入力部２０１と、ラスタデータを生成し易くするため、座標情報入力部２０１に入力された描画領域（図形）を分割する描画領域分割部２０２と、描画領域分割部２０２において分割された描画領域の高さを算出し、その高さにより描画領域の補正が必要か否かを判別する描画領域高さ判別部２０３と、補正が必要と判断された場合に補正を行う描画領域補正部２０４と、描画領域分割部２０２や描画領域補正部２０４で生成された描画領域の各頂点座標を出力の精度（すなわち、画素単位）に変換する単位変換部２０５と、図形分割の終了を判定する終了判定部２０６と、出力の精度に変換された描画領域をラスタデータ生成部１３に出力する描画領域出力部２０７とを有する。
【００１４】
尚、図形情報１１には、図４に示すように、描画しようとする図形の頂点数や各頂点の（Ｘ，Ｙ）座標情報が含まれ、また、図形修飾情報１５には、描画図形の大きさや形を決定する拡大・縮小率や線分描画に必要な線幅、線分の端点や接続点の情報、線分の破線情報等、描画図形を修飾する情報が含まれる。
【００１５】
次に、実施例１による図形処理装置の動作を図１、図２、図５、図８に基づき、図６、図９を用いて詳細に説明する。
図５は、実施例１による図形生成部１２のフローチャートを示し、図８は、補正有図形分割のフローチャートを示す。尚、実施例１では、描画図形の座標情報として図７に示す線分Ｐ１Ｐ２が入力され、図６に示す図形のように所定幅の線分の描画を行う例を説明する。
【００１６】
先ず、図５のＳ５０１にて、入力された情報図形情報１１から線分Ｐ１Ｐ２の座標を取り出す。次に、Ｓ５０２の線分幅付け処理にて、図形修飾情報１５の線幅情報に従い線幅を付与し、図６に示す描画図形Ｐ３Ｐ４Ｐ５Ｐ６の各頂点座標を算出する。
この段階で、実際の描画図形の形状や大きさが図６のように決定され、その座標情報が図１１に示すように表現される。
【００１７】
次に、Ｓ５０３にて、後述する補正有図形分割を行い、Ｓ５０４にて、描画すべき線分が存在するか否かを判断し、存在する場合は、Ｓ５０１に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部１３において後述する座標情報に基づきラスタデータを生成する。生成されたラスタデータは、ラスタデータ出力部１４を介して、図示しない画像形成装置に出力され、画像形成装置において、上記ラスタデータに基づいて画像（文字、図形、線画等）が形成される。
尚、画像形成装置は、プリントヘッドと、該プリントヘッドにて露光されて、表面に潜像が形成される像担持体を備える出力装置、例えば、プリンタである。
【００１８】
以下、上述した補正有図形分割（Ｓ５０３）の動作を、図８に基づき、図９を用いて説明する。
先ず、図８のＳ８０１で、入力座標（図５のＳ５０３の直前までに決定した図形Ｐ３Ｐ４Ｐ５Ｐ６の座標情報）より、分割すべき図形の縦方向（Ｘ方向）の最上位位置、ここでは、点Ｐ６を検出する。次に、Ｓ８０２にて、この検出点Ｐ６から図形上において右回りと左回りにそれぞれ次の点を一つずつ読み出し（Ｐ３とＰ５）、検出点Ｐ６から左右２線分を取り出す。
次に、Ｓ８０３にて、取り出した２線分の下端の縦方向位置を比較し、左辺が上位位置ならＳ８０４、右辺が上位位置ならＳ８０８、左右同位置ならＳ８０６の処理を行う。
【００１９】
ここでは、左辺である線分Ｐ６Ｐ３の下端Ｐ３より、右辺である線分Ｐ６Ｐ５の下端Ｐ５の方が上位位置であるからＳ８０８へ進み、Ｓ８０８にて、Ｐ５の縦方向位置と同じ高さとなる左辺の点Ｐ７の横方向の座標を算出して点Ｐ７を決定する。これにより、最初の分割図形である三角形Ｐ６Ｐ７Ｐ５が確定する。次に、Ｓ８０９にて、左辺をＰ６Ｐ３からＰ７Ｐ３に持ち直し、右辺を次の線分Ｐ５Ｐ４に更新する。
【００２０】
次に、Ｓ８１０で、取り出した分割図形（ここでは、三角形Ｐ６Ｐ７Ｐ５）の高さを算出し、出力精度での１以上の高さがあるか否かを判断し、高さが１未満の場合は、Ｓ８１１にて、分割図形の横方向位置の補正を行う。ここでは、三角形Ｐ６Ｐ７Ｐ５の高さは１未満であるとしているため、補正処理を行い、左辺は点Ｐ９、右辺は点Ｐ１０とする。
【００２１】
ここで、点Ｐ９と点Ｐ１０の位置は以下のようにして算出する。但し、Ｐ９、Ｐ１０、Ｐ６、Ｐ７、Ｐ５の座標位置をＰ９（Ｐ９ｘ、Ｐ９ｙ）、Ｐ１０（Ｐ１０ｘ、Ｐ１０ｙ）、Ｐ６（Ｐ６ｘ、Ｐ６ｙ）、Ｐ７（Ｐ７ｘ、Ｐ７ｙ）、Ｐ５（Ｐ５ｘ、Ｐ５ｙ）のように定義し、算出式上で使用する。
（式１）
点Ｐ９（Ｐ９ｘ、Ｐ９ｙ）＝（（（Ｐ６ｘ＋Ｐ７ｘ）÷２）、（Ｐ６ｙ＋Ｐ７y）÷２）
（式２）
点Ｐ１０（Ｐ１０ｘ、Ｐ１０ｙ）＝（（（Ｐ６ｘ＋Ｐ５ｘ）÷２）、（Ｐ６ｙ＋Ｐ５y）÷２）
尚、三角形Ｐ６Ｐ７Ｐ５の高さが１未満であると、点Ｐ９と点Ｐ１０の縦方向位置は出力精度の単位で点Ｐ６や点Ｐ５と等しくなる。
【００２２】
次に、Ｓ８１２にて、分割図形の精度を出力精度に変換する。分割図形の高さが１以上の場合は補正を行わず、Ｓ８１２で分割図形の精度を出力精度に変換する。
【００２３】
次に、Ｓ８１３にて、分割が終了したか否かを判断し、ここでは未終了であるためＳ８０３に戻り、Ｓ８０９にて、更新した左辺Ｐ７Ｐ３と右辺Ｐ５Ｐ４を比較する。ここで、左辺Ｐ７Ｐ３の下端Ｐ３の位置より右辺Ｐ５Ｐ４の下端Ｐ４の位置が下位位置であるためＳ８０４に進み、Ｐ３の縦方向位置と同じ高さとなる右辺の点Ｐ８の横方向の座標を算出して点Ｐ８を決定する。これにより、次の分割図形である四角形Ｐ７Ｐ３Ｐ８Ｐ５が確定する。
次に、Ｓ８０５にて、右辺をＰ５Ｐ４からＰ８Ｐ４に持ち直し、左辺は次のＰ３Ｐ４に更新する。
【００２４】
次に、Ｓ８１０にて、取り出した分割図形（四角形Ｐ７Ｐ３Ｐ８Ｐ５）の高さを算出し、出力精度での１以上の高さがあるか否かを判断する。ここでは、高さが１以上であるため補正は行わず、Ｓ８１２にて、分割図形の精度を出力精度に変換する。
【００２５】
次に、Ｓ８１３にて、分割が終了したか否かを判断し、未終了であるためＳ８０３に戻り、Ｓ８０５で、更新した左辺Ｐ３Ｐ４と右辺Ｐ８Ｐ４を比較する。ここでは、右左辺の下端は共にＰ４であるためＳ８０６に進み、Ｓ８０６にて、分割図形Ｐ３Ｐ４Ｐ８を確定する。
次に、Ｓ８０７にて、右左辺の更新を行い、分割は終了する。
【００２６】
次に、図３（Ａ−１）、（Ｂ−１）に基づき、上述の処理により得た分割図形の座標情報を元に、実際の画素単位の座標では、どのように描画するかについて説明する。
例えば、図３（Ａ−１）に示すような、出力精度での高さが１未満の三角形Ｐ６Ｐ７Ｐ５を描画する場合は、先ず、式１により、線分Ｐ６Ｐ７の中点座標Ｐ９を算出すると共に、式２により、線分Ｐ６Ｐ５の中点座標Ｐ１０を算出する。
本実施例では、各中点座標（分割図形の精度）を実際の画素単位の座標（出力の精度）に変換する。図３における１マスは、６００ｄｐｉにおける１ｄｏｔが置かれる位置を示している。具体的には、図３（Ａ−１）の矢印ａで示すように、中点座標Ｐ９をその座標点に最も近い実際の画素単位の座標Ｐ６’に変換し、同様に、矢印ｂで示すように、中点座標Ｐ１０をＰ１０’に変換する。そして、変換先の座標Ｐ６’と座標Ｐ１０’を含む画素のみを描画する。
【００２７】
また、図３（Ａ−２）に示すような、出力精度での高さが１未満で、図３（Ａ−１）の図形とは対称的な三角形Ｐ３Ｐ４Ｐ８を描画する場合は、式３により線分Ｐ３Ｐ４の中点座標Ｐ１１を算出すると共に、式４により線分Ｐ８Ｐ４の中点座標Ｐ１２を算出し、矢印ａ示すように、中点座標Ｐ１１をＰ１１’に変換し、矢印ｂに示すように、中点座標Ｐ１２をＰ１２’に変換する。そして、Ｐ１１’、Ｐ１２’を含む各画素を描画し、さらにその間の画素を描画する。
尚、高さが１以上の図形に関しては、従来技術と同様に図形の存在する位置の画素を描画する。
以上、本実施例によれば、図６に示す幅のある線分Ｐ３Ｐ４Ｐ５Ｐ６は、図１０（Ａ）に示す形状に描画される。
【００２８】
尚、本実施例では、図３（Ａ）、（Ｂ）のような三角形の補正について説明したが、例えば、図３（Ｃ）、（Ｄ）、（Ｅ）、（Ｆ）のような三角形についても全く同様であり、この場合、算出する座標は下式３、４のようになる。
（式３）
（（（ｑ１ｘ＋ｑ２ｘ）÷２）、（ｑ１ｙ＋ｑ２ｙ）÷２）
（式４）
（（（ｑ１ｘ＋ｑ３ｘ）÷２）、（ｑ１ｙ＋ｑ３ｙ）÷２）
【００２９】
ここで、従来技術による描画方法を図３（Ｂ−１）、図３（Ｂ−２）を用いて説明する。
図３（Ｂ−１）に示すような、高さが１未満の三角形Ｐ６Ｐ７Ｐ５を描画する場合は、頂点Ｐ７をその座標点に最も近い実際の画素単位の座標Ｐ７’に変換すると共に、頂点Ｐ５を座標Ｐ５’に変換し、変換先の座標Ｐ７’、Ｐ５’を含む画素を描画し、さらにその間の画素を描画する。
【００３０】
また、図３（Ｂ−２）に示すような、図３（Ｂ−１）の図形とは対称的な三角形Ｐ３Ｐ４Ｐ８を描画する場合は、頂点Ｐ３をその座標点に最も近い実際の画素単位の座標Ｐ３’に、頂点Ｐ８を座標Ｐ８’に変換する。次に、変換先の座標Ｐ３’、Ｐ８’を含む画素を描画し、さらにその間の画素を描画する。
高さが１以上の図形に関しては、図形の存在する位置の画素を描画する。
以上、従来技術によれば、図６に示す幅のある線分Ｐ３Ｐ４Ｐ５Ｐ６は、図１０（Ｂ）に示す形状に描画される。
【００３１】
このように、実施例１による描画では、特に、線分Ｐ５Ｐ６、および線分Ｐ３Ｐ４については、従来技術による描画のように、Ｐ５とＰ６、Ｐ３とＰ４間の全ての画素を描画するのではないため、各線分が傾斜していることが明確に表現される。
【００３２】
以上、実施例１では、説明を簡素化するため、接続部分や端点付加形状のない線分描画について述べたが、これに限定されるものではなく、接続部分や端点付加形状のある図形、或いは、多角形や円等の図形についても勿論適用可能であり、線分描画の場合と同様の効果が得られるものである。
【００３３】
また、実施例１では、中間データ作成のための図形分割を図形の縦方向の位置を基準として、その上位位置から順に分割して処理するようにしたが、これは一例であって、分割の基準となる方向は、ラスタデータ変換の際の効率を考慮し、例えば、縦方向位置の下位位置から上位位置へ分割して処理しても良く、また、横方向位置の左から右、或いは、右から左へ順に分割して処理しても良い。但し、何れの場合も、補正方向は処理基準方向に対して垂直方向となる。
【００３４】
また、実施例１では、ラスタデータへ変換する際に、図形分割により中間データを作成して各描画図形に対する座標情報の補正を行ったが、中間データは必ずしも作成する必要はなく、例えば、図９に示す四角形Ｐ３Ｐ４Ｐ５Ｐ６から直接ラスタデータに変換することも勿論可能であり、実施例１と同等の効果が得られる。この場合、三角形Ｐ６Ｐ７Ｐ５や三角形Ｐ３Ｐ４Ｐ８に相当する部分で、実施例１と同様の補正を行えば良い。
【００３５】
以上のことは、実施例１に限らず、後述する実施例２〜５についても同様である。
【００３６】
以上、実施例１によれば、図形描画をする際、ラスタデータに展開しようとする部分の展開基準方向（高さ方向）の変化量が出力精度での１未満であった時、基準方向と垂直な方向（横方向）を補正することにより、本来描画しようとする図形とほぼ同じ形状の描画を行うことが可能となり、ラスタデータ生成の際の視覚的な品質を向上することができる。
【実施例２】
【００３７】
図１９は本発明の実施例２による図形処理装置のブロック構成図である。
実施例２による図形処理装置は、入力された図形情報２１１から得た座標情報と図形修飾情報２１５に基づき、描画すべき図形を生成する図形生成部２１２と、図形生成部２１２で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部２１３と、ラスタデータ生成部２１３で生成されたラスタデータを出力装置（図示せず）に出力可能なラスタデータ出力部２１４とを有する。
【００３８】
また、上記図形生成部２１２は、図形情報２１１から得られた座標情報と図形修飾情報２１５から、実際に描画可能な描画領域を座標情報として算出する描画領域算出部２１２１と、図形修飾情報２１５の出力精度より描画領域の補正が必要か否かを判断する出力精度判別部２１２２と、描画図形の視覚的な品質を向上するため、描画領域算出部２１２１で算出された描画領域の座標情報を補正する補正有図形分割部２１２４と、描画領域の補正をしない補正無図形分割部２１２３とを有する。
尚、上記補正有図形分割部２１２４の構成は、図１に示す実施例１の補正有図形分割部１２２と同様であり、説明は省略する。
【００３９】
図２０は補正無図形分割部２１２３の詳細を示すブロック構成図であり、補正無図形分割部２１２３、描画領域算出部２１２１で算出された描画領域の座標情報を入力する座標情報入力部２２１と、座標情報入力部２２１に入力された描画領域（図形）を、ラスタデータを作成し易くするために分割する描画領域分割部２２２と、描画領域分割部２２２にて、分割された描画領域の各頂点座標を出力の精度に変換する単位変換部２２３と、図形分割の終了を判定する終了判定部２２４と、描画領域をラスタデータ生成部２１３に出力する描画領域出力部２２５とを有する。図形情報２１１、図形修飾情報２１５については、実施例１と同様であるが、図形修飾情報２１５には、出力の精度情報が含まれる。
【００４０】
次に、実施例２による図形処理装置の動作を図１９、図２０、図１２、図１３に基づき、図６、図９を用いて詳細に説明する。
図１２は、実施例２による図形生成部２１２のフローチャートを示し、図１３は補正無図形分割のフローチャートを示す。尚、実施例２においても、描画図形の座標情報として図７に示す線分Ｐ１Ｐ２が入力され、図６に示すような図形の描画を行う例を説明する。
【００４１】
先ず、図１２のＳ１２０１にて、入力された図形情報２１１から線分Ｐ１Ｐ２の座標情報を取り出し、図形修飾情報２１５に従い、線分幅付け処理（Ｓ１２０２）を行う。これらの動作は実施例１と同様である。この段階で、実際の描画図形の形状や大きさが図６のように決定され、その座標情報が図１１に示すように表現される。
【００４２】
次に、Ｓ１２０３にて、図形修飾情報２１５に従い、解像度（出力精度）を判定する。出力精度が粗い（例えば、３００ｄｐｉ指定）場合は、Ｓ１２０５の補正有図形分割により描画図形の座標情報を補正し、出力の精度が細かい（例えば、６００ｄｐｉ以上指定）場合は、描画図形の座標情報の補正は行わず、Ｓ１２０４にて、描画図形の分割だけを行う。
ここで、上記出力精度は、出力装置の特性を考慮し、視覚的に向上した描画が得られるように設定されるもので、本実施例では、判定基準（所定値）となる出力精度は、例えば、６００ｄｐｉとしている。
【００４３】
尚、Ｓ１２０９の補正有図形分割は、実施例１の補正有図形分割（図８参照）と同様であるため説明は省略する。この補正による描画図形は、図１０（Ａ）となる。
【００４４】
次に、上記補正無図形分割（Ｓ１２０４）の動作を図１３に基づき、図９を用いて説明する。本フローチャートの動作は、図８の補正有図形分割の動作と略同様であり、図形分割後に補正処理（Ｓ８１１）を行わない点が図８と相違する。
【００４５】
先ず、図１３のＳ１３０１にて、入力座標（図１２のＳ１２０３直前までに決定した図形Ｐ３Ｐ４Ｐ５Ｐ６の座標情報）で分割すべき図形の縦方向の最上位位置、ここでは、点Ｐ６を検出する。次に、Ｓ１３０２にて、この検出点Ｐ６から右回りと左回りにそれぞれ次の点を一つずつ読み出し、検出点Ｐ６から左右２線分を取り出す。
次に、Ｓ１３０３にて、取り出した２線分の下端の縦方向位置を比較し、左辺が上位位置ならＳ１３０４、右辺が上位位置ならＳ１３０８、左右同位置ならＳ１３０６の処理を行う。
【００４６】
ここでは、左辺である線分Ｐ６Ｐ３の下端Ｐ３より、右辺である線分Ｐ６Ｐ５の下端Ｐ５の方が上位位置であるためＳ１３０８に進み、Ｓ１３０８にて、Ｐ５の縦方向位置と同じ高さとなる左辺の点Ｐ７の横方向の座標を算出して点Ｐ７を決定する。これにより、最初の分割図形である三角形Ｐ６Ｐ７Ｐ５が確定する。次に、Ｓ１３０９にて、左辺をＰ６Ｐ３からＰ７Ｐ３に持ち直し、右辺は次の線分Ｐ５Ｐ４に更新する。
【００４７】
次に、Ｓ１３１０にて、取り出した分割図形（ここでは、三角形Ｐ６Ｐ７Ｐ５）の精度を出力の精度に変換する。
次に、Ｓ１３１１にて、分割が終了したか否かを判断し、まだ終了していないためＳ１３０３に戻り、Ｓ１３０９にて、更新した左辺Ｐ７Ｐ３と右辺Ｐ５Ｐ４を比較する。ここで、左辺Ｐ７Ｐ３の下端Ｐ３の位置より右辺Ｐ５Ｐ４の下端Ｐ４の位置が下位位置であるためＳ１３０４に進み、点Ｐ３の縦方向位置と同じ高さである右辺の点Ｐ８の横方向の座標を算出し、点Ｐ８を決定する。これにより、次の分割図形である四角形Ｐ７Ｐ３Ｐ８Ｐ５が確定する。
次に、Ｓ１３０５にて、右辺をＰ５Ｐ４からＰ８Ｐ４に持ち直し、左辺は次の線分Ｐ３Ｐ４に更新する。そして、次に、Ｓ１３１０で分割図形の精度を出力の精度に変換する。
【００４８】
次に、Ｓ１３１１にて、分割が終了したか否かを判断し、未終了であるのでＳ１３０３に戻り、Ｓ１３０５にて、更新した左辺Ｐ３Ｐ４と右辺Ｐ５Ｐ４を比較する。ここでは、右左辺の下端は共にＰ４であるためＳ１３０６に進み、Ｓ１３０６で分割図形Ｐ３Ｐ４Ｐ８を確定する。次に、Ｓ１３０７にて、右左辺の更新を行い、分割は終了する。次に、Ｓ１３１０にて、分割図形の精度を出力の精度に変換する。
【００４９】
次に、図１２のＳ１２０６にて、描画すべき線分が存在するか否かを判断し、存在する場合は、Ｓ１２０１に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部２１３においてラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部２１４を介して図示しない出力装置（画像形成装置）に出力する。
【００５０】
以上、補正無図形分割処理により、図９の図形が補正されずに、図１０の（Ｂ）補正なし例のような描画になる。図１０の（Ａ）補正有り例に比べて、図形の形状が崩れているように見えるが、出力精度が細かいため、その崩れは目立たない。
【００５１】
以上、実施例２によれば、出力精度が所定値より細かい場合は、無補正でも図形の形状乱れが目立たないことに注目し、出力精度が所定値より粗い場合にのみ補正するようにしたので、実施例１の効果に加え、出力精度が細かい場合の補正処理時間を削減し、描画図形の生成時間を短縮することができる。
【実施例３】
【００５２】
実施例３による図形処理装置の構成は、図１に示す実施例１と基本的には同様であるが、実施例３の場合は、補正有図形分割部１２２の構成が実施例１と異なる。
【００５３】
図２１は、実施例３による補正有図形分割部のブロック構成図であり、描画領域算出部１２１において算出された描画領域の座標情報を入力する座標情報入力部２３０１と、ラスタデータを生成し易くするため、座標情報入力部２３０１に入力された描画領域（図形）を分割する描画領域分割部２３０２と、上記分割処理の終了を判定する分割終了判定部２３０３と、分割処理により生成された各々の図形の位置関係（各図形の生成順序）を判別する描画領域順序判別部２３０４と、１つ目の分割図形に対し、その高さより補正が必要か否かを判別する１つ目の描画領域高さ判別部２３０５と、最後の分割図形に対し、その高さより補正が必要な高さか否かを判別する最後の描画領域高さ判別部２３０６と、補正が必要と判別された分割図形に対して補正を行う描画領域補正部２３０８と、全ての分割図形の高さ判別が終了したか否かを判定する終了判別部２３０７と、分割・生成された全ての図形の各頂点座標を出力の精度に変換する単位変換部２３０９と、出力の精度に変換された描画領域をラスタデータ生成部１３に出力する描画領域出力部２３１０を有する。
【００５４】
次に、実施例３による図形処理装置の動作を図１、図２１、図５、図１４に基づき、図６、図９を用いて詳細に説明する。図１４は実施例３による補正有図形分割のフローチャートを示す。
実施例３の基本動作は、図５のフローチャートで示す実施例１の動作と同様であるが、Ｓ５０３の補正有図形分割の動作が相違している。尚、実施例３においても、描画図形の座標情報として図７に示す線分Ｐ１Ｐ２が入力され、図６に示すような図形の描画を行う例を説明する。
【００５５】
先ず、図５のＳ５０１にて、入力された図形情報１１から線分Ｐ１Ｐ２の座標情報を取り出し、図形修飾情報２１５に従い、線分幅付け処理（Ｓ５０２）を実施例１と同様に行う。この段階で、実際に描画する図形の形状や大きさが図６のように決定され、その座標情報が図１１のように表現される。
【００５６】
次に、Ｓ５０３にて、後述する補正有図形分割を行い、Ｓ５０４で描画すべき線分が存在するか否かを判断し、存在する場合は、Ｓ５０１に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば本図形生成の動作を終了し、ラスタデータ生成部１３において座標情報に基づきラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部２１４を介して図示しない出力装置に出力する。
【００５７】
以下、上記した補正有図形分割の動作を図１４に基づき説明する。
先ず、図１４のＳ１４０１にて、入力座標（図５のＳ５０３の直前までに決定した図形Ｐ３Ｐ４Ｐ５Ｐ６の座標情報）より分割すべき図形の縦方向の最上位位置、ここでは、点Ｐ６が検出される。次に、Ｓ１４０２にて、この検出点Ｐ６から右回りと左回りにそれぞれ次の点を一つずつ読み出し、検出点Ｐ６から左右２線分を取り出す。
次に、Ｓ１４０３にて、取り出した２線分の下端の縦方向位置を比較し、左辺が上位位置ならＳ１４０４、右辺が上位位置ならＳ１４０８、左右同位置ならＳ１４０６の処理を行う。
【００５８】
ここでは、左辺である線分Ｐ６Ｐ３の下端Ｐ３より、右辺である線分Ｐ６Ｐ５の下端Ｐ５の方が上位位置であるからＳ１４０８へ進み、Ｓ１４０８にて、Ｐ５の縦方向位置と同じ高さとなる左辺の点Ｐ７の横方向の座標を算出して点Ｐ７を決定する。これにより、最初の分割図形である三角形Ｐ６Ｐ７Ｐ５が確定する。次に、Ｓ１４０９にて、左辺をＰ６Ｐ３からＰ７Ｐ３に持ち直し、右辺を次の線分Ｐ５Ｐ４に更新する。
【００５９】
次に、Ｓ１４１０にて、分割が終了したか否かを判断し、未終了であるためＳ１４０３に戻り、Ｓ１４０９にて、更新した左辺Ｐ７Ｐ３と右辺Ｐ５Ｐ４を比較する。左辺Ｐ７Ｐ３の下端Ｐ３の位置より、右辺Ｐ５Ｐ４の下端Ｐ４の方が下位位置であるためＳ１４０４に進み、Ｓ１４０４にて、Ｐ３の縦方向位置と同じ高さとなる右辺の点Ｐ８の横方向の座標を算出して点Ｐ８を決定する。これにより、次の分割図形である四角形Ｐ７Ｐ３Ｐ８Ｐ５が確定する。次に、Ｓ１４０５にて、右辺をＰ５Ｐ４からＰ８Ｐ４に持ち直し、左辺を次の線分Ｐ３Ｐ４に更新する。
【００６０】
次に、Ｓ１４１０にて、分割が終了したか否かを判断し、未終了であるためＳ１４０３に戻り、Ｓ１４０５にて、更新した左辺Ｐ３Ｐ４と右辺Ｐ５Ｐ４を比較する。右左辺の線分の下端は共にＰ４であるためＳ１４０６に進み、Ｓ１４０６で分割図形Ｐ３Ｐ４Ｐ８が確定する。次に、Ｓ１４０７にて、右左辺の更新を行い、分割は終了する。
尚、この一連の分割処理にて確定した各分割図形は、例えば図１５に示すように、上位側より順序立てて管理しておく。
【００６１】
次に、Ｓ１４１１にて、図１５のように管理された１つ目の分割図形（図９の三角形Ｐ６Ｐ７Ｐ５）を取り出し、Ｓ１４１２にて、取り出した図形の高さを判断する。ここでは、高さが１未満であるため、Ｓ１４１３にて、他に分割図形が有るか否かを判断し、他の分割図形が存在する場合（取り出した図形の高さが出力精度での１未満で、且つ他の図形に隣接している場合）にのみ、Ｓ１４１４にて、分割図形の横方向位置の補正を行い、左辺は点Ｐ９、右辺は点Ｐ１０とする。尚、点Ｐ９と点Ｐ１０の座標は、式１、式２を用いて算出する。
次に、上記補正の有無に関わらず、Ｓ１４１５で分割図形を出力の精度の単位に変換する。
【００６２】
次に、Ｓ１４１６にて、描画すべき線分が存在する否かを判断し、存在する場合は、Ｓ１４１７にて、図１５のように管理された次の分割図形（図９の四角形Ｐ７Ｐ３Ｐ８Ｐ５）を取り出し、Ｓ１４１８にて、取り出した分割図形を出力の精度の単位に変換すると共に、Ｓ１４１６に戻り、最後の分割図形になるまで上記処理を繰り返す。Ｓ１４１６にて、最後の分割図形と判断すると、Ｓ１４１９にて、最後の分割図形の高さを算出し、出力精度での高さが１以上であるか否かを判断し、ここでは、高さが１未満であるため、Ｓ１４２０にて、分割図形の横方向位置の補正を行い、左辺は点Ｐ１１、右辺は点Ｐ１２とする。尚、点Ｐ１１と点Ｐ１２の座標は、式３、式４を用いて算出する。
次に、上記補正の有無に関わらず、Ｓ１４２１にて、分割図形を出力の精度の単位に変換し、処理を終了する。
【００６３】
以上、実施例３によれば、他の図形（分割図形）に隣接し、図形の端に位置する高さが１未満の図形のみを補正するようにたので、本補正により本来描画しようとする図形が半分の長さになったとしても、隣接する図形により、補正による形状の変化が目立たなくなる。また、補正を行う条件（出力精度）を設定することにより、実施例２と同様に、描画図形の生成時間を短縮することができ、且つ、処理時間等、補正による性能の悪化を最小限に抑えることができる。
【実施例４】
【００６４】
実施例４による図形処理装置の構成は、図１に示す実施例１と基本的には同様であるが、実施例４の場合は、補正有図形分割部１２２の構成が実施例１と相違している。
【００６５】
図２２は実施例４による補正有図形分割部のブロック構成図であり、描画領域算出部１２１で算出された描画領域の座標情報を入力する座標情報入力部２４０１と、ラスタデータを作成し易くするため、座標情報入力部２４０１に入力された描画領域（図形）を分割する描画領域分割部２４０２と、上記分割処理の終了を判定する分割終了判定部２４０３と、分割処理により生成された各々の図形の数を判定する図形数判定部２４０４と、各分割図形の高さに応じて高さ情報を設定する描画領域高さ情報設定部２４０５と、その高さ情報により補正が必要か否かを判定する描画領域高さ情報判定部２４０６と、補正必要と判別された分割図形に対して補正を行う描画領域補正部２４０７と、補正の有無に関わらず、各頂点座標を出力の精度に変換する単位変換部２４０８と、全ての分割図形の高さ判別が終了した否か判定する終了判定部２４０９と、出力の精度に変換された描画領域をラスタデータ生成部１３に出力する描画領域出力部２４１０とを有する。
【００６６】
次に、実施例４による図形処理装置の動作を図１、図５、図１６、図１７、図２２に基づき、図６、図９を用いて詳細に説明する。図１６、図１７は実施例４による補正有図形分割のフローチャートを示す。
実施例４の基本動作は、図５のフローチャートで示す実施例１の動作と同様であるが、Ｓ５０３の補正有図形分割の動作が相違している。尚、実施例４においても、描画図形の座標情報として図７に示す線分Ｐ１Ｐ２が入力され、図６に示すような図形の描画を行う例を説明する。
【００６７】
先ず、図５のＳ５０１にて、入力された図形情報１１から線分Ｐ１Ｐ２の座標情報を取り出し、図形修飾情報１５に従い、線分幅付け（Ｓ５０２）を実施例１と同様に行う。この段階で、実際に描画する図形の形状や大きさが図６のように決定され、その座標情報が、図１１のように表現される。
【００６８】
次に、Ｓ５０３にて、後述する実施例３による補正有図形分割を行い、Ｓ５０４にて、描画すべき線分が存在するか否かを判断し、存在する場合は、Ｓ５０１に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、本図形生成の動作を終了し、ラスタデータ生成部１３において座標情報に基づきラスタデータを生成すると共に、生成されたラスタデータをラスタデータ出力部２１４を介して図示しない出力装置に出力する。
【００６９】
以下、上記した実施例４による補正有図形分割の動作を図１６、図１７に基づき説明する。
Ｓ１６０１への入力座標は、図５のＳ５０３の直前までに決定された図形Ｐ３Ｐ４Ｐ５Ｐ６の座標情報となる。
以降、Ｓ１６０１〜Ｓ１６１０による図形の分割処理の動作は、実施例３のＳ１４０１〜Ｓ１４１０と同様であるため、動作の説明を省略する。
【００７０】
次に、Ｓ１６１１にて、分割処理にて得られた図形が２個以上であるか否かを判断し、図形が１個の場合は、Ｓ１６３０にて、対象図形を出力の精度の単位に変換し、処理を終了する。
ここでは、図１５に示すように、図形数は３つであるため、Ｓ１６１２にて、対象図形の高さ情報を初期状態の０に設定する。
【００７１】
本実施例では、図形の高さ情報は、高さが１未満なら０、高さが１以上であれば１とし、対象図形、一つ前の図形、次の図形の、それぞれ３つの図形の高さ情報を管理しておく。
すなわち、Ｓ１６１３にて、最初の図形Ｐ６Ｐ７Ｐ５を図１５より取り出し、Ｓ１６１４にて、その高さを算出する。次に、Ｓ１６１５にて、算出した高さを判定し、高さが１未満の時は、Ｓ１６１６にて、対象図形の高さ情報を０とし、１以上の時は、Ｓ１６１７にて、対象図形の高さ情報を１とする。ここでは、図形Ｐ６Ｐ７Ｐ５の高さは１未満とし、高さ情報を０とする。
次に、Ｓ１６１８にて、図１５のように管理された、次の図形Ｐ７Ｐ３Ｐ８Ｐ５を取りだし、上述した１個目の図形の場合と同様にその高さを算出し、高さに応じて高さ情報を設定する（Ｓ１６１９〜Ｓ１６２２）。ここでは、図形Ｐ７Ｐ３Ｐ８Ｐ５の高さが１以上であるため、高さ情報は１とする。
【００７２】
次に、Ｓ１６２３にて、対象図形の高さが１未満で、且つ次の図形の高さが１以上か否かを判断し、ここでは、この条件を満たすため、Ｓ１６２４にて、補正を行い、左辺は点Ｐ９、右辺は点Ｐ１０とする。尚、点Ｐ９と点Ｐ１０の座標は、式１、式２を用いて算出する。次に、上記補正の有無に関わらず、Ｓ１６２５にて、対象図形を出力の精度の単位に変換する。
【００７３】
次に、Ｓ１６２６にて、対象図形情報を前の図形情報に、また、次の図形情報を対象図形情報に持ち替え、Ｓ１６２７にて、最後の図形まで取り出したか否かを判断し、取り出しを終了していなければ、Ｓ１６１８に戻り、次の図形を取り出し、以降、全ての図形の取り出しが終了するまでＳ１６１９〜Ｓ１６２６の処理を繰り返す。
対象図形がＰ７Ｐ３Ｐ８Ｐ５の時は、Ｓ１６２３の判定で対象図形の高さが１以上となるため補正は行わず、次のＳ１６２５にて、出力の精度への単位変換を行う。
【００７４】
ところで、実施例３では、例えば、図１８（Ａ）のように、高さが１未満の２個の図形が隣接している図形を補正すると、図１８（Ｂ）の斜線部分のように、本来描画すべき長さの半分しか描画されなくなるという現象が生じる。
そこで、実施例４では、高さが１以上の図形（分割図形）に隣接する高さが１未満の図形のみを補正するようにしたので、補正によって半分の長さの描画になったとしても、隣接する図形の描画により、補正による形状の変化が目立たなくなる。また、補正を行う条件（出力精度）を設定することにより、実施例２と同様、描画図形の生成時間を短縮することができ、且つ、補正による性能の悪化を最小限に抑えることができる。
【実施例５】
【００７５】
図２３は本発明の実施例５による図形処理装置のブロック構成図である。
実施例５による図形処理装置は、入力された図形情報１９１から抽出した座標情報と図形修飾情報１９５に基づき、描画すべき図形を生成する図形生成部１９２と、図形生成部１９２で生成された図形から実際に描画可能なラスタデータを生成するラスタデータ生成部１９３と、ラスタデータ生成部１９３で生成されたラスタデータを出力装置（図示せず）に出力可能なラスタデータ出力部１９４とを有する。
【００７６】
上記図形生成部１９２は、図形情報１９１から抽出された座標情報と図形修飾情報１９５とから、実際に描画可能な描画領域を座標情報として算出する描画領域算出部１９２１と、装置情報１９６から得た有効記憶領域サイズにより、補正の処理方法を判断する補正処理判断部１９２２と、描画図形の視覚的な品質を向上するため、描画領域算出部１９２１で算出した描画領域の座標情報を補正する形状補正図形分割部１９２３と、描画時に描画欠けが発生しないように補正をすると共に、ラスタデータ生成前の中間データのサイズを縮小化する形状変更図形分割部１９２４とを有する。尚、上記装置情報１９６には、装置の出力精度や装置における有効記憶領域サイズ（使用可能なメモリ（ＲＡＭ）領域サイズ）等の情報が含まれている。
【００７７】
図２４は上記形状補正図形分割部１９２３の詳細を示すブロック構成図であり、描画領域算出部１９２１で算出された描画領域の座標情報を入力する座標情報入力部３２１と、座標情報入力部３２１に入力された図形を、ラスタデータを作成し易くするために分割する描画領域分割部３２２と、描画領域分割部３２２にて分割された描画領域の高さを算出し、その高さにより描画領域の補正が必要か否かを判別する補正判別部３２３と、補正が必要と判断された場合に補正を行う形状補正部３２４と、描画領域分割部３２２や形状補正部３２４で生成された描画領域の各頂点座標を出力の精度に変換する単位変換部３２５と、図形分割の終了を判定する終了判定部３２６と、出力の精度に変換された描画領域をラスタデータ生成部１９３に出力する描画領域出力部３２７とを有する。形状補正部３２４では、形状を重視してよりきれいな描画を行えるように補正を行う。
図２５は形状変更図形分割部１９２４の詳細を示すブロック構成図である。形状変更図形分割部１９２４の構成は、上記形状補正図形分割部１９２３と略同様であるが、形状変更図形分割部１９２４が、描画の有無を重視し、且つ、中間データのサイズを縮小化するように補正を行う描画変更部４０４を有する点で相違している。
【００７８】
次に、実施例５による図形処理装置の動作を図２３、図２５、図２６、図２７に基づき、図６、図９を用いて詳細に説明する。
図２６は図形生成部の動作フローチャートを示し、図２７は形状変更図形分割の動作フローチャートを示す。尚、実施例５においても、描画図形の座標情報として図７に示す線分Ｐ１Ｐ２が入力され、図６に示すような図形の描画を行う例を説明する。
【００７９】
先ず、図２６のＳ２６０１にて、入力された図形情報１９１から線分Ｐ１Ｐ２の座標情報を取り出し、線分修飾情報に従い、線分幅付け処理（Ｓ２６０２）を行う。これらの動作は実施例１と同様である。この段階で、実際の描画図形の形状や大きさが図６のように決定され、その座標情報が図１１に示すように表現される。
【００８０】
次に、Ｓ２６０３にて、有効記憶領域のサイズより補正の方法を判別し、有効記憶領域が充分ある場合は、Ｓ２６０４の形状補正図形分割で描画図形の形状を補正し、有効記憶領域が十分に無い場合は、Ｓ２６０５の形状変更図形分割で描画図形の形状の変更を行う。
ここで、有効記憶領域のサイズ基準値は、出力装置の特性を考慮し、より効率的な処理が行え、且つ、妥当な処理速度が得られるように設定する。或いは、有効記憶領域のサイズを変更可能にして、様々な実験を実施して最善の値を設定するようにしても良い。尚、本実施例では、判別基準となる上記有効記憶領域サイズの基準値は、例えば、８〜１６Ｍｂｙｔｅに設定している。
Ｓ２６０４、またはＳ２６０５の処理が終了した後は、Ｓ２６０６にて、描画すべき線分がまだ存在するか否かを判断し、存在する場合は、Ｓ２６０１に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、図形生成の動作を終了し、ラスタデータ生成部１９３にて、ラスタデータの生成を行い、生成されたラスタデータをラスタデータ出力部１９４を介して図示しない出力装置に出力する。
【００８１】
上記した形状補正図形分割Ｓ２６０４については、図１２に示す実施例２の補正有図形分割（Ｓ１２０５）、すなわち、図８に示す実施例１の補正有図形分割と同様であるため、詳細の説明を省略する。補正なしの場合、図９の図形は、図１０の（Ｂ）のように描画されるが、本実施例の補正を行うことにより、図１０の（Ａ）のように描画される。
【００８２】
次に、Ｓ２６０７にて、有効記憶領域のサイズより補正の方法を判別し、有効記憶領域が充分ある場合は、Ｓ２６０４の形状補正図形分割で描画図形の形状を補正し、有効記憶領域が十分に無い場合は、Ｓ２６０５の形状変更図形分割で描画図形の形状の変更を行う。
ここで、有効記憶領域のサイズ基準値は、出力装置の特性を考慮し、より効率的な処理が行え、且つ、妥当な処理速度が得られるように設定する。或いは、有効記憶領域のサイズを変更可能にして、様々な実験を実施して最善の値を設定するようにしても良い。尚、本実施例では、判別基準となる上記有効記憶領域サイズの基準値は、例えば、８〜１６Ｍｂｙｔｅに設定している。
Ｓ２６０４、またはＳ２６０５の処理が終了した後は、Ｓ２６０６にて、描画すべき線分がまだ存在するか否かを判断し、存在する場合は、Ｓ２６０１に戻って各処理を繰り返し行う。描画すべき線分を全て処理し終えていれば、図形生成の動作を終了し、ラスタデータ生成部１９３にて、ラスタデータの生成を行い、生成されたラスタデータをラスタデータ出力部１９４を介して図示しない出力装置に出力する。
【００８３】
上記した形状補正図形分割Ｓ２６０４については、図１２に示す実施例２の補正有図形分割（Ｓ１２０９）、すなわち、図８に示す実施例１の補正有図形分割と同様であるため、詳細の説明を省略する。補正なしの場合、図９の図形は、図１０の（Ｂ）のように描画されるが、本実施例の補正を行うことにより、図１０の（Ａ）のように描画される。
【００８４】
上述の形状補正図形分割（Ｓ２６０４）では、図９のように面積のある図形に対しては非常に有効だが、例えば、図２９（Ａ）のような細い線画を表現すると、図２９（Ｂ）のように表現しきれない場合（描画の欠けＰ）が発生する。そこで、このような細い線画の場合は、形状の違いよりも描画の有無を重視し、表現すべき描画を全て表現できるように形状変更図形分割（Ｓ２６０５）にて、補正を行う。
【００８５】
以上、実施例５によれば、装置の有効記憶領域サイズが所定値より小さい場合、ラスタデータに展開するための中間データを三角形による表現から矩形による表現にしたので、実施例１の効果に加え、図２９（Ａ）のような細い線画を表現する場合には、図２９（Ｂ）のような描画の欠けＰも最小限に抑えることができる。
すなわち、図３１のような細い線画を既述した形状補正分割にて補正すると、図２８（Ｂ）のような描画の欠けＰが生じるが、実施例５の形状変更図形分割にて補正することにより、この描画の欠けＰを最小限に抑えることができる。
【００８６】
また、この方法によれば、図３０に示す図形（三角形Ｂ１Ｂ２Ｂ３、矩形Ａ１Ａ２Ｂ３Ｂ２）において、三角形Ｂ１Ｂ２Ｂ３を表現するには、例えば、（Ａ）に示すように、Ｂ１のＸ座標とＹ座標（Ｂ１ｘ、Ｂ１ｙ）、Ｂ２のＸ座標とＹ座標（Ｂ２ｘ、Ｂ２ｙ）、Ｂ３のＸ座標（Ｂ３ｘ）の、合計５点分の座標情報が必要となるが、矩形Ａ１Ａ２Ｂ３Ｂ２を表現するには、例えば、（Ｂ）に示すように、Ａ１のＸ座標とＹ座標（Ａ１ｘ、Ａ１ｙ）と矩形Ａ１Ａ２Ｂ３Ｂ２の幅（ｗ）と高さ（ｈ）の、合計４点の情報が有れば十分である。
このように、矩形表現の場合は、三角形表現に比べて情報量も少なくて済むため、本装置の記憶領域の使用サイズを縮小でき、記憶領域を効率よく使用できる。加えて、矩形表現の場合では、中間データからラスタデータに変換する際の算出処理が単純化されるため、処理速度も向上する。
【産業上の利用可能性】
【００８７】
本実施例は、螺旋や線画を描画・表示または印刷する装置の線画処理全般に有効的に利用可能であるが、加工を施した文字や図を描画・表示または印刷する場合にも、より有効的に利用可能である。また、コンピュータ上での処理で説明したが、プリンタ内の処理としても有効である。
【符号の説明】
【００８８】
１２１、１９２１、２１２１  描画領域算出部
２０４、２３０８、２４０７  描画領域補正部
【図１】
0005458353.tif 000002
【図２】
0005458353.tif 000003
【図３】
0005458353.tif 000004
【図４】
0005458353.tif 000005
【図５】
0005458353.tif 000006
【図６】
0005458353.tif 000007
【図７】
0005458353.tif 000008
【図８】
0005458353.tif 000009
【図９】
0005458353.tif 000010
【図１０】
0005458353.tif 000011
【図１１】
0005458353.tif 000012
【図１２】
0005458353.tif 000013
【図１３】
0005458353.tif 000014
【図１４】
0005458353.tif 000015
【図１５】
0005458353.tif 000016
【図１６】
0005458353.tif 000017
【図１７】
0005458353.tif 000018
【図１８】
0005458353.tif 000019
【図１９】
0005458353.tif 000020
【図２０】
0005458353.tif 000021
【図２１】
0005458353.tif 000022
【図２２】
0005458353.tif 000023
【図２３】
0005458353.tif 000024
【図２４】
0005458353.tif 000025
【図２５】
0005458353.tif 000026
【図２６】
0005458353.tif 000027
【図２７】
0005458353.tif 000028
【図２８】
0005458353.tif 000029
【図２９】
0005458353.tif 000030
【図３０】
0005458353.tif 000031
【図３１】
0005458353.tif 000032
【図３２】
0005458353.tif 000033
【図３３】
0005458353.tif 000034