(57)【特許請求の範囲】
【請求項１】
ｍとｎを任意の自然数として、描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の部分描画領域に分割する分割手段と、
前記分割手段で前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択手段と、
前記分割手段で分割した部分描画領域ごとに、前記選択手段で選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画手段と、
を備えることを特徴とするベクター画像描画装置。
【請求項２】
前記選択手段は、前記部分描画領域ごとに、その部分描画領域の外にある図形のベクターデータを前記分割描画手段の描画の対象から除外することを特徴とする請求項１に記載のベクター画像描画装置。
【請求項３】
前記選択手段は、前記部分描画領域ごとに、図形を構成するベクターデータのうち１つでもその部分描画領域内にある場合は、その図形を前記分割描画手段の描画の対象とする、
ことを特徴とする請求項１または２に記載のベクター画像描画装置。
【請求項４】
前記分割描画手段は、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えて、塗りつぶし処理を行うことを特徴とする請求項１ないし３のいずれか１項に記載のベクター画像描画装置。
【請求項５】
前記分割描画手段は、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある連続する複数のベクターデータを１つの直線ベクターデータに置き換えて、塗りつぶし処理を行うことを特徴とする請求項１ないし３のいずれか１項に記載のベクター画像描画装置。
【請求項６】
ｍとｎを任意の自然数として、描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の部分描画領域に分割する分割ステップと、
前記分割ステップで前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択ステップと、
前記分割ステップで分割した部分描画領域ごとに、前記選択ステップで選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画ステップと、
を備えることを特徴とするベクター画像描画方法。
【請求項７】
前記選択ステップは、前記部分描画領域ごとに、その部分描画領域の外にある図形のベクターデータを前記分割描画ステップの描画の対象から除外することを特徴とする請求項６に記載のベクター画像描画方法。
【請求項８】
前記選択ステップは、前記部分描画領域ごとに、図形を構成するベクターデータのうち１つでもその部分描画領域内にある場合は、その図形を前記分割描画ステップの描画の対象とすることを特徴とする請求項６または７に記載のベクター画像描画方法。
【請求項９】
前記分割描画ステップは、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えて、塗りつぶし処理を行うことを特徴とする請求項６ないし８のいずれか１項に記載のベクター画像描画方法。
【請求項１０】
前記分割描画ステップは、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある連続する複数のベクターデータを１つの直線ベクターデータに置き換えて、塗りつぶし処理を行うことを特徴とする請求項６ないし８のいずれか１項に記載のベクター画像描画方法。
【請求項１１】
コンピュータを、
ｍとｎを任意の自然数として、描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の部分描画領域に分割する分割手段と、
前記分割手段で前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択手段と、
前記分割手段で分割した部分描画領域ごとに、前記選択手段で選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクター画像を表示するための描画装置、描画方法およびプログラムに関する。
【背景技術】
【０００２】
汎用の表示装置に表示する画像のデータには、二次元の画素の配列であるラスタデータと、線の情報を保持するベクターデータがある。ベクターデータは、例えば、線分の始点と終点、曲線を定める関数の次数と点の組み合わせ、円弧などを特定するデータなどがある。ラスタデータの画像をラスタ画像、ベクターデータの画像をベクター画像という。
【０００３】
ラスタデータは、画素ごとの色と輝度がデータとして保持されているので、表示するときに演算する必要はないが、画像を拡大表示する場合に画素単位で拡大するので表示の粗さが目立つ。ベクターデータは、表示の解像度に合わせて二次元の画素配列に展開するので、画像を拡大・縮小する場合にその解像度で表示できる。例えば、文字のタイプフェース（フォントともいう）をベクターデータで保持して、拡大・縮小したときに滑らかな表示が得られるようにしているアウトラインフォントがある。
【０００４】
ラスタ画像では、全画素の色と輝度がデータとして保持されているので、図形の塗りつぶしについてもそのまま表示するだけである。それに対して、ベクター画像では、塗りつぶす範囲が閉じた図形のベクターデータであり、塗りつぶす色と輝度がデータで指定されているだけなので、塗りつぶしを表示するときに、その範囲に含まれる画素を決定し、その範囲の画素を指定の色と輝度に設定する必要がある。図形の重なりがある場合には、ベクターデータから交点と重なる範囲を演算して、塗りつぶす画素を設定する。
【０００５】
例えば特許文献１は、塗りつぶしの境界線の一部もしくは全てが表示エリア外の場合でも塗りつぶし表示を可能とする技術が記載されている。特許文献１の技術は、境界線を形成する描画点の座標を算出し、その座標が表示エリア内の場合はその座標に対応する画像メモリに画像データを書込み、算出された描画点のｘ座標が表示エリアの左側に外れる場合は同じｙ座標の表示エリアの左端に対応する画像メモリに画像データを書込む塗りつぶし線描画部と、画像メモリに書込まれた画像データに基づいて表示メモリに表示データを格納する。
【０００６】
特許文献４は、線幅を有する線を描画するときにも、接続点で発生する隙間を埋めた、高品位の描画図形を、高速に得る技術が記載されている。特許文献４の技術は、ｓｔｒｏｋｅベクターは曲線を複数の直線で近似した後、ベクターのアウトラインベクターと、空白部を埋めるベクターが生成される。ベクターは、曲線を複数の直線で近似した後、塗り潰し処理が行なわれる。このとき、ｓｔｒｏｋｅベクターに対する塗り潰しは、非ゼロ巻数規則により行なわれる。
【０００７】
特許文献５は、描画すべき矩形領域外の塗り潰し開始および終了座標の処理を簡略化する技術が記載されている。描画領域の各行方向に対応して設けられるフラグ登録領域と、行方向における塗り潰し開始座標および終了座標登録領域とを有し、閉領域の各輪郭座標において、当該座標が矩形領域の左端より左方であって、矩形領域の上端より下方、かつ、矩形領域の下端より上方に位置する場合は、フラグ登録領域の当該座標に対応する行にフラグを登録する。輪郭座標が矩形領域内に位置する場合は、塗り潰し開始座標および終了座標登録領域に当該座標を登録する。フラグ登録領域の対応する領域にフラグが登録されている場合は、前記矩形領域の行先頭から塗り潰しを開始する。塗り潰し開始座標および終了座標登録領域に当該行の座標が登録されているときは当該登録されている座標まで塗り潰し描画を行い、登録されていないときは前記矩形領域の行末尾まで塗り潰し描画を行う。
【０００８】
その他、クリップ経路と描画経路の一部が重なり合っている場合におけるクリッピング処理を高速化する技術が、特許文献２に記載されている。特許文献３は、ページメモリを越える範囲の入力ベクターデータであっても確実に、塗り潰し処理を行なう技術が記載されている。また、特許文献６には、描画処理の高速化を図ることができるようにした曲線描画方法の技術が記載されている。
【０００９】
【特許文献１】特開２００３−０９９０２７号公報
【特許文献２】特開平０５−０４６７７８号公報
【特許文献３】特開平０６−１６８３３７号公報
【特許文献４】特開平０６−１６８３３９号公報
【特許文献５】特開平０４−５７１７７号公報
【特許文献６】特開平０４−３４２０８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述の関連する技術においては、ベクター画像を描画する場合、走査線毎にベクターデータの交差情報を保持し、その情報を元に塗りつぶしの有無を判断して、図形描画を行っている。しかし、走査線毎の交差情報が増大した場合、情報を保持するためのメモリを充分確保しないと、正しく描画できないという問題があった。
【００１１】
本発明の目的は、少ないメモリ容量でもベクター画像を正しく描画するベクター画像描画装置、ベクター画像描画方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明の第１の観点に係るベクター画像描画装置は、ｍとｎを任意の自然数として、描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の部分描画領域に分割する分割手段と、前記分割手段で前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択手段と、前記分割手段で分割した部分描画領域ごとに、前記選択手段で選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画手段と、を備えることを特徴とする。
【００１３】
好ましくは、前記選択手段は、前記部分描画領域ごとに、その部分描画領域の外にある図形のベクターデータを前記分割描画手段の描画の対象から除外することを特徴とする。
【００１４】
さらに、前記選択手段は、前記部分描画領域ごとに、図形を構成するベクターデータのうち１つでもその部分描画領域内にある場合は、その図形を前記分割描画手段の描画の対象とする、よう構成してもよい。
【００１５】
好ましくは、前記分割描画手段は、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えて、塗りつぶし処理を行う。
【００１６】
好ましくは、前記分割描画手段は、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある連続する複数のベクターデータを１つの直線ベクターデータに置き換えて、塗りつぶし処理を行う。
【００１７】
本発明の第２の観点に係るベクター画像描画方法は、ｍとｎを任意の自然数として、描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の部分描画領域に分割する分割ステップと、前記分割ステップで前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択ステップと、前記分割ステップで分割した部分描画領域ごとに、前記選択ステップで選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画ステップと、を備えることを特徴とする。
【００１８】
好ましくは、前記選択ステップは、前記部分描画領域ごとに、その部分描画領域の外にある図形のベクターデータを前記分割描画ステップの描画の対象から除外することを特徴とする。
【００１９】
さらに、前記選択ステップは、前記部分描画領域ごとに、図形を構成するベクターデータのうち１つでもその部分描画領域内にある場合は、その図形を前記分割描画ステップの描画の対象とするよう構成してもよい。
【００２０】
好ましくは、前記分割描画ステップは、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えて、塗りつぶし処理を行う。
【００２１】
好ましくは、前記分割描画ステップは、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある連続する複数のベクターデータを１つの直線ベクターデータに置き換えて、塗りつぶし処理を行う。
【００２２】
本発明の第３の観点に係るプログラムは、コンピュータを、ｍとｎを任意の自然数として、描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の部分描画領域に分割する分割手段と、前記分割手段で前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択手段と、前記分割手段で分割した部分描画領域ごとに、前記選択手段で選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画手段、として機能させることを特徴とする。
【００２３】
なお、ｍとｎはそれぞれ１の場合がある。本発明のベクター画像描画装置の描画の対象となる図形は、外形が１つ以上のベクターデータで表された連続する１本の線から構成され、線の開始点と終了点が一致するいわゆる閉じた外形線とそれに囲まれた領域をいう。
【発明の効果】
【００２４】
本発明のベクター画像描画装置によれば、ベクター図形描画において、少ないメモリ容量で正しい図形描画ができる。
【発明を実施するための最良の形態】
【００２５】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。本実施の形態では、汎用の表示装置にベクター画像を表示するために、画像メモリにベクターデータを展開する描画装置について説明する。描画装置は、ベクター画像をプリンタなどで印刷する場合にも用いられる。
【００２６】
図１は、本発明の実施の形態に係るベクター画像描画装置１の構成の一例を示すブロック図である。
【００２７】
ベクター画像描画装置１は、画像データ記憶部２と、描画領域分割部５と、対象ベクターデータ選択部６と、分割描画部７とを備える。分割描画部７は、曲線ベクターデータ置換部７１と、塗りつぶし処理部７２を含む。
【００２８】
画像データ記憶部２は、ベクター画像データ２１と、部分描画領域データ２２と、部分描画領域対象ベクターデータ２３と、描画領域画像データ２４を記憶する。ベクター画像データ２１は、ベクター画像を構成する図形のベクターデータを含むデータである。ベクター画像には１または複数の図形が含まれる。ベクター画像の１つの図形は１または複数のベクターデータで構成される。ベクターデータには、直線、ベジェ曲線、円弧などがある。例えば、中心と半径で規定される円は１つのベクターデータで１つの図形を構成する。多角形は複数の直線ベクターデータで構成される。
【００２９】
図２は、ベクター画像描画装置１を用いるベクター画像描画システムの一例を示すブロック図である。ベクター画像描画システムは、例えば、ベクター画像描画装置１と、ベクター画像データ格納部３と、描画領域設定部４と、表示部８と、表示装置９とを備える。
【００３０】
ベクター画像データ格納部３は、ベクター画像描画装置１にベクター画像データを入力する。例えば、ベクター画像のデータをベクター画像データ２１として、画像データ記憶部２に格納する。描画領域設定部４は、ベクター画像データ２１を表示するための描画領域を設定する。描画領域は、通常、領域を示す長方形の頂点の座標と、縮尺および／または解像度で表される。表示部８は、ベクター画像描画装置１が生成した描画領域画像データ２４を読み出して、表示装置９に画像として表示する。
【００３１】
図１を参照して、描画領域分割部５は、描画領域を所定の大きさの複数の部分描画領域に分割する。例えば、縦横が所定の画素数の長方形の領域を１つの部分描画領域の大きさとして、描画領域をｍ×ｎ個の部分描画領域に分割する。描画領域が所定の部分描画領域の大きさより小さい場合は、描画領域を１つの部分描画領域とする。
【００３２】
描画領域分割部５では、自然数ｍ、ｎを与えて描画領域をｍ×ｎ個の部分描画領域に分割してもよい。部分描画領域は、描画領域全体に亘って均一な大きさでなくてもよい。例えば、図形の密集しているところは小さい部分描画領域にし、図形のまばらなところは大きい部分描画領域にするなど、変化をつけてもよい。描画領域分割部５は、分割したそれぞれの部分描画領域を示すデータを、部分描画領域データ２２として画像データ記憶部２に格納する。
【００３３】
対象ベクターデータ選択部６は、分割した部分描画領域ごとに、それぞれの部分描画領域の画像を描画するのに必要なベクターデータを、ベクター画像データ２１から選択する。
【００３４】
図３は、部分描画領域と描画の対象となる図形の関係の例を示す。図３は全体が描画領域を表す。図３の例では、描画領域には、図形２０２〜２０７の６個の図形が含まれる。図３では、１つの部分描画領域を部分描画領域２０１で例示する。
【００３５】
対象ベクターデータ選択部６は、図３の例では、図形２０４、２０５、２０６を部分描画領域２０１の対象ベクターデータとする。図形２０５は、それを構成するベクターデータが全て部分描画領域２０１に含まれるので、分割描画の対象とする。
【００３６】
図形２０４、２０６は、閉じた図形で塗りつぶし処理の対象である。図３に示すように、１つの走査線２０８を例にとると、図形２０３、２０４、２０６の内部を塗りつぶすとして、走査線２０８が各図形にかかる点が塗りつぶしの開始画素で、走査線２０８が図形から出る点が塗りつぶしの終了画素である。図３では、塗りつぶしを太い矢印線で示す。塗りつぶしが図形の外側である場合も、走査線に沿って塗りつぶしの開始と終了は、図形の輪郭で示される。したがって、部分描画領域２０１について、塗りつぶしを判定するために、図形２０４、２０６を構成するベクターデータを描画の対象とする。すなわち、図形２０４、２０６の一部が部分描画領域２０１内にある場合、図形２０４、２０６を構成するベクターデータ全てを部分描画領域２０１の画像を描画するのに必要なベクターデータとして選択する。
【００３７】
図１を参照して、対象ベクターデータ選択部６は、部分描画領域ごとに選択したベクターデータの情報を部分描画領域対象ベクターデータ２３として画像データ記憶部２に格納する。部分描画領域対象ベクターデータ２３は、ベクター画像データ２１の図形を指し示すラベルとして表してもよい。１つの図形のうち、必要なベクターデータを指定するには、図形を構成するベクターデータの順に対応するフラグで表すことができる。
【００３８】
分割描画部７は、分割された部分描画領域ごとに、それぞれの部分描画領域に対して選択したベクターデータを用いて、その部分描画領域の画像を描画する。すなわち、１つの部分描画領域について、その画像の描画に必要なベクターデータを示す部分描画領域対象ベクターデータ２３を参照して、画像を描画する。例えば、ベクター画像データ２１の図形を示すラベルとそれに含まれるフラグの情報から、ベクター画像データ２１を参照して描画処理を行う。
【００３９】
曲線ベクターデータ置換部７１は、分割描画の対象の部分描画領域対象ベクターデータ２３のうち、描画の対象である部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換える。また、塗りつぶし処理部７２は、部分描画領域対象ベクターデータ２３のうち、描画の対象である部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えたデータを用いて塗りつぶし処理を行う。
【００４０】
図４は、曲線ベクターデータの置換を説明する図である。図４の（Ａ）は、本来のベクターデータと部分描画領域の関係を示す。図４の（Ｂ）は、部分描画領域外の曲線ベクターデータを直線ベクターデータに置き換えた場合を示す。
【００４１】
図４（Ａ）では、図形３０３の部分描画領域３０１の外にあるベクターデータはベジェ曲線３０５である。図４（Ｂ）では、ベジェ曲線３０５を直線３０６に置き換えている。それぞれ、部分描画領域３０１、３０２の中の図形３０３、３０４と、塗りつぶし３０７、３０８は何ら変わるところがない。
【００４２】
図４（Ａ）の場合は、塗りつぶし処理部７２で塗りつぶしを行うときに、ベジェ曲線３０５と走査線との交点を演算するのに、ベジェ曲線を評価する必要があり、演算時間がかかる。それに比べて、図４（Ｂ）の直線３０６は、一次式で表され走査線との交点の演算量が小さい。その結果、特に、塗りつぶしの描画処理が短縮できる。
【００４３】
部分描画領域にかからない曲線ベクターデータを直線ベクターデータに置き換えるのは、ベジェ曲線に限らず、円弧、楕円曲線などでも直線に置き換えることができる。それぞれの場合に、走査線との交点の演算が短縮される。さらに、部分描画領域にかからない複数の連続する直線ベクターデータを１つの直線ベクターデータに置き換えてもよい。
【００４４】
再び図１を参照して、分割描画部７は、部分描画領域ごとに描画した描画領域全体の画像を、描画領域画像データ２４として画像データ記憶部２に格納する。
【００４５】
図５は、本実施の形態に係るベクター画像描画装置１の物理的な構成の一例を示すブロック図である。本発明に係るベクター画像描画装置１は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができる。ベクター画像描画装置１は、図５に示すように、制御部１１、主記憶部１２、外部記憶部１３、操作部１４、表示装置９および入出力部１６を備える。主記憶部１２、外部記憶部１３、操作部１４、表示装置９および入出力部１６はいずれも内部バス１０を介して制御部１１に接続されている。
【００４６】
制御部１１はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部１３に記憶されているプログラムに従って、ベクター画像を描画するための処理を実行する。
【００４７】
主記憶部１２はＲＡＭ（Random-Access Memory）等から構成され、外部記憶部１３に記憶されているプログラムをロードし、制御部１１の作業領域として用いられる。上述の画像データ記憶部２は、主記憶部１２の中に構成される。
【００４８】
外部記憶部１３は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、前記の処理を制御部１１に行わせるためのプログラムを予め記憶し、また、制御部１１の指示に従って、このプログラムが記憶するデータを制御部１１に供給し、制御部１１から供給されたデータを記憶する。
【００４９】
操作部１４はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス１０に接続するインターフェース装置から構成されている。操作部１４を介して、ベクター画像データの作成、入力、送受信などの指示、表示するベクター画像の指定、描画領域の範囲、拡大率、描画領域の表示装置における位置などが入力され、制御部１１に供給される。
【００５０】
表示装置９は、ＣＲＴ（Cathode Ray Tube）またはＬＣＤ（Liquid Crystal Display）などから構成され、描画されたベクター画像を表示する。
【００５１】
入出力部１６は、無線送受信機、無線モデムまたは網終端装置、およびそれらと接続するシリアルインタフェースまたはＬＡＮ（Local Area Network）インタフェース等から構成されている。入出力部１６を介して、ベクター画像データを受信し、また送信できる。
【００５２】
本発明によるベクター画像描画装置１は、上記のベクター画像を描画する機能を実現する回路を組み込んだＬＳＩ（Large Scale Integration）等のハードウェア部品から構成される回路を実装して、電子回路として構成することができる。また、上記の各機能を行うベクター画像描画プログラムを、コンピュータ処理装置上の制御部１１で実行することにより、ソフトウェア的にベクター画像描画装置１を実現することができる。その場合、制御部１１のＣＰＵは、外部記憶部１３に格納されているベクター画像描画プログラムを、主記憶部１２にロードして実行し、各部の動作を制御して上記の各機能を行わせることによって、ベクター画像描画装置１をソフトウェア的に実現する。
【００５３】
次に、図６〜図９のフローチャートを参照して本実施の形態に係るベクター画像描画装置１の動作について説明する。なお、上述のように、ベクター画像描画装置１の動作は、ベクター画像描画プログラムが、主記憶部１２、外部記憶部１３、操作部１４、表示装置９および入出力部１６を資源として用いて、制御部１１の上で動作することによって行う。
【００５４】
図６は、本発明の実施の形態に係るベクター画像描画処理の動作の一例を示すフローチャートである。ベクター画像データ格納部３は、ベクター画像データ２１を入出力部１６を介して入力し、画像データ記憶部２に格納する（ステップＳ１）。描画領域設定部４は、例えば、操作部１４を介して入力されたオペレータの指示に基づいて、または、既定の描画領域を設定する（ステップＳ２）。描画領域は、ベクター画像データ２１の一部または全部を含み、表示装置９に表示する画像の範囲である。
【００５５】
描画領域分割部５は、描画領域を所定の方法で部分描画領域に分割する（ステップＳ３）。分割の方法は、上述のとおり、例えば、所定の大きさの複数の部分描画領域に分割する。または、描画領域をｍ×ｎ個の部分描画領域に分割してもよい。部分描画領域は、描画領域全体に亘って均一な大きさでなくてもよい。
【００５６】
対象ベクターデータ選択部６は、分割された部分描画領域の１つを選択し（ステップＳ４）、その部分描画領域の描画に必要なベクターデータを選択する（ステップＳ５）。そして、分割描画部７は、選択されたベクターデータを用いて、その部分描画領域の画像を描画する（ステップＳ６）。描画した画像は、描画領域画像データ２４の対象部分になる。
【００５７】
対象ベクターデータ選択部６は、未処理の部分描画領域があれば（ステップＳ７；ＹＥＳ）、ステップＳ４に戻って、部分描画領域の選択から繰り返す。全ての部分描画領域の描画処理が終わったら（ステップＳ７；ＮＯ）、表示部８は、描画領域画像データ２４を表示装置９に表示する（ステップＳ８）。
【００５８】
図７は、部分描画領域の描画ベクターデータを選択する動作の一例を示すフローチャートである。図７のフローチャートは、図６のステップＳ５の処理の動作を表す。
【００５９】
対象ベクターデータ選択部６は、ベクター画像データ２１から、図形を１つ選択する（ステップＡ１）。その図形を構成するベクターデータのうち、対象の部分描画領域にかかるものがあれば（ステップＡ２；ＹＥＳ）、その図形を分割描画の対象とする（ステップＡ３）。
【００６０】
ステップＡ２で、選択した図形に対象の部分描画領域にかかるベクターデータがなければ（ステップＡ２；ＮＯ）、その図形と部分描画領域に共通する画素があるかどうかを判断する（ステップＡ４）。なお、ステップＡ４の記号‘∩’は論理積を表す。共通する画素がなければ（ステップＡ４；ＦＡＬＳＥ）、その図形を分割描画対象から除外する（ステップＡ５）。共通する画素があれば（ステップＡ４；ＴＲＵＥ）、その図形を分割描画の対象とする（ステップＡ３）。
【００６１】
選択した図形を部分描画領域の分割描画の対象とするかどうかの判定は、近似的には次のように行ってもよい。
（１）図形を構成するベクターデータの全てのＸ座標が、部分描画領域の最小のＸ座標より小さい。
（２）図形を構成するベクターデータの全てのＸ座標が、部分描画領域の最大のＸ座標より大きい。
（３）図形を構成するベクターデータの全てのＹ座標が、部分描画領域の最小のＹ座標より小さい。
（４）図形を構成するベクターデータの全てのＹ座標が、部分描画領域の最大のＹ座標より大きい。
上記（１）〜（４）のいずれかの場合に、その図形を分割描画の対象から除外する。
【００６２】
このようにすると、部分描画領域を取り囲むＣ字型やＵ字型の図形で、部分描画領域と共通する画素のない図形などを、分割描画の対象とすることになる。しかし、分割描画対象の判定が簡略になり、ベクター画像描画処理全体の演算は小さくなることが期待できる。
【００６３】
図７のフローチャートを参照して、ベクター画像データに処理していない図形があれば（ステップＡ６；ＹＥＳ）、ステップＡ１に戻って、新たな図形の選択から繰り返す。ベクター画像データの全ての図形について処理したら（ステップＡ６；ＮＯ）、その部分描画領域のベクターデータ選択処理を終了する。
【００６４】
図８は、分割描画処理の動作の一例を示すフローチャートである。図８のフローチャートは、図６のステップＳ６の処理の動作を表す。
【００６５】
分割描画部７は、描画対象の部分描画領域の部分描画領域対象ベクターデータに含まれる図形を１つ選択する（ステップＢ１）。その図形を構成するベクターデータのうち対象の部分描画領域外のものがあるか否かを判断する（ステップＢ２）。その閉じた図形に部分描画領域外のベクターデータがある場合（ステップＢ２；ＹＥＳ）、そのベクターデータが曲線ベクターであれば（ステップＢ３；ＹＥＳ）、そのベクターデータを直線ベクターデータに置き換える（ステップＢ４）。
【００６６】
その閉じた図形に部分描画領域外のベクターデータがない場合（ステップＢ２；ＮＯ）、または、部分領域外のベクターデータが曲線ベクターでない場合は（ステップＢ３；ＮＯ）、そのままとする。
【００６７】
分割描画部７は、選択した図形の部分描画領域内のベクターデータを描画する（ステップＢ５）。すなわち、ベクターデータに基づいて塗りつぶしの開始画素、又は終了画素を設定する。部分描画領域の部分描画領域対象ベクターデータに含まれる図形があれば（ステップＢ６；ＹＥＳ）、ステップＢ１に戻って、図形の選択から繰り返す。
【００６８】
部分描画領域対象ベクターデータに含まれる図形すべてについて、ベクターデータの描画を終えたら（ステップＢ６；ＮＯ）、その部分描画領域の塗りつぶし処理を行う（ステップＢ７）。塗りつぶし処理は、部分描画領域の範囲に限られ、対象となるベクターデータが限定されるので、図形の重なりの判定と、ベクターデータの交点などの処理に要するメモリと演算量を少なくできる。
【００６９】
図９は、ベクターデータが対象の部分描画領域にかかるか否かを判断する処理の動作の一例を示すフローチャートである。図９は、ベクターデータとして直線、２次のベジェ曲線および３次のベジェ曲線がある場合を例にしている。
【００７０】
図１０は描画領域とベジェ曲線の例を示す。ベジェ曲線４０２は頂点Ｐ０、Ｐ１、Ｐ２、Ｐ３で規定される３次ベジェ曲線である。判定する対象のベクターデータには、直線や２次ベジェ曲線などの場合もある。ベクターデータが直線の場合は、Ｐ０、Ｐ１のみで規定される。２次ベジェ曲線の場合は、Ｐ０、Ｐ１、Ｐ２の３点で規定される。部分描画領域４０１は、左上の点Ｐｓと右下の点Ｐｅの座標で定義される。
【００７１】
図９のフローチャートは、対象ベクターデータ選択部６と、曲線ベクターデータ置換部７１の処理を合わせて示す。対象ベクターデータ選択部６は、ベクターデータの種別（Ｐａｔｈ）、頂点情報Ｐ０、Ｐ１、Ｐ２、Ｐ３および領域情報Ｐｓ、Ｐｅを入力して図９の処理を行う。対象ベクターデータ選択部６は、ベクターデータが直線かベジェ曲線かを判別する（ステップＣ１）。
【００７２】
ベクターデータが直線の場合は（ステップＣ１；ＹＥＳ）、Ｐ０、Ｐ１座標とＰｓ、Ｐｅの大小比較を行い、ベクターデータが部分描画領域に対してどの位置にあるかを判別する（ステップＣ３）。ＡＴ（AllTop）が真（ＴＲＵＥ）の場合は、全頂点が部分描画領域４０１よりも上部にあることを示す。同じく、ＡＢ（AllBottom）、ＡＬ（AllLeft）、ＡＲ（AllRight）で、全頂点が下部、左部、右部に配置されるケースを判別する。この比較結果に基づいて、ベクターデータが描画に関連するかどうかを判別する。図３で示した通り、全て上部、下部、右部の場合は（ステップＣ６；ＴＲＵＥ）、部分描画領域の描画情報として必要ないので、そのベクターデータを部分描画領域外とする（ステップＣ９）。
【００７３】
図９の処理では、部分描画領域の左にあるベクターデータを除外せず、描画（塗りつぶし）の対象としている。部分描画領域の分割描画の対象とするか否かを、近似的に簡易に判定するにはこのような方法でもよい。
【００７４】
ベクターデータが直線以外の場合（ステップＣ１；ＮＯ）、２次ベジェ曲線か３次ベジェ曲線かを判別する（ステップＣ２）。２次ベジェ曲線（Quad Besier）の場合（ステップＣ２；ＹＥＳ）、２次ベジェ曲線の頂点と描画領域の位置関係を判別する（ステップＣ４）。この結果を元にそのベクターデータが除外可能かどうか判別する（ステップＣ７）。ＡＴ、ＡＢ、ＡＲの場合は（ステップＣ７；ＴＲＵＥ）、そのベクターデータを除外する（ステップＣ１０）。除外しない場合（ステップＣ７；ＦＡＬＳＥ）、ＡＬかどうか判定して（ステップＣ１１）、ＡＬが真の場合は（ステップＣ１１；ＴＲＵＥ）、ベクターデータを直線ベクターに変更する（ステップＣ１２）。その際、Ｐ１にＰ２を代入する。
【００７５】
図９の処理では、部分描画領域の左にあるベジェ曲線ベクターデータのみを、直線に置き換えている。部分描画領域の外にある曲線を、直線に置き換えるにはこのような方法でもよい。
【００７６】
ベクターデータが３次ベジェ曲線の場合は（ステップＣ２；ＮＯ）、頂点Ｐ０、Ｐ１、Ｐ２、Ｐ３と領域情報Ｐｓ、Ｐｅについて同様に位置関係を判別する（ステップＣ５）。以降については２次ベジェ曲線と同様に処理される（ステップＣ８、Ｃ１３、Ｃ１４、Ｃ１５）。
【００７７】
このようにして、ベクターデータが部分描画領域にかかるか否かを判定し、部分描画領域にかからないベクターデータを分割描画の対象から除外し、また、部分描画領域外の曲線ベクターデータを直線に置き換えることができる。
【００７８】
以上により、ベクター画像を描画領域に描画処理するのにあたり、描画領域を部分描画領域に分割し、部分描画領域ごとに必要なベクターデータに限定して描画処理を行うことができる。その結果、塗りつぶし処理は、部分描画領域の範囲に限られ、対象となるベクターデータが限定されるので、図形の重なりの判定と、ベクターデータの交点などの処理に要するメモリと演算量を少なくできる。
【００７９】
さらに、部分描画領域にかかる閉じた図形について、部分描画領域外の曲線ベクターデータを直線に置き換えるので、塗りつぶし処理のメモリと演算量を削減できる。
【００８０】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。例えば、本実施の形態では曲線ベクターデータがベジェ曲線の場合について説明したが、円弧や楕円曲線など他の曲線についても適用できる。
【００８１】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【００８２】
制御部１１、主記憶部１２、外部記憶部１３、操作部１４、入出力部１６および内部バス１０などから構成されるベクター画像描画装置１の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するベクター画像描画装置１を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでベクター画像描画装置１を構成してもよい。
【００８３】
また、ベクター画像描画装置１の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００８４】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の形態に係るベクター画像描画装置の構成の一例を示すブロック図である。
【図２】ベクター画像描画装置を用いるベクター画像描画システムの一例を示すブロック図である。
【図３】部分描画領域と描画の対象となる図形の関係の例を示す図である。
【図４】曲線ベクターデータの置換を説明する図である。
【図５】本実施の形態に係るベクター画像描画装置の物理的な構成の一例を示すブロック図である。
【図６】本発明の実施の形態に係るベクター画像描画処理の動作の一例を示すフローチャートである。
【図７】部分描画領域の描画ベクターデータを選択する動作の一例を示すフローチャートである。
【図８】分割描画処理の動作の一例を示すフローチャートである。
【図９】ベクターデータが対象の部分描画領域にかかるか否かを判断する処理の動作の一例を示すフローチャートである。
【図１０】描画領域とベジェ曲線の例を示す図である。
【符号の説明】
【００８６】
１  ベクター画像描画装置
２  画像データ記憶部
３  ベクター画像データ格納部
４  描画領域設定部
５  描画領域分割部
６  対象ベクターデータ選択部
７  分割描画部
８  表示部
９  表示装置
１１  制御部
１２  主記憶部
１３  外部記憶部
１６  入出力部
２１  ベクター画像データ
２２  部分描画領域データ
２３  部分描画領域対象ベクターデータ
２４  描画領域画像データ
【図１】
0004370438.tif 000002
【図２】
0004370438.tif 000003
【図３】
0004370438.tif 000004
【図４】
0004370438.tif 000005
【図５】
0004370438.tif 000006
【図６】
0004370438.tif 000007
【図７】
0004370438.tif 000008
【図８】
0004370438.tif 000009
【図９】
0004370438.tif 000010
【図１０】
0004370438.tif 000011