JP4370438B2 - ベクター画像描画装置、ベクター画像描画方法およびプログラム - Google Patents

ベクター画像描画装置、ベクター画像描画方法およびプログラム Download PDF

Info

Publication number
JP4370438B2
JP4370438B2 JP2007169758A JP2007169758A JP4370438B2 JP 4370438 B2 JP4370438 B2 JP 4370438B2 JP 2007169758 A JP2007169758 A JP 2007169758A JP 2007169758 A JP2007169758 A JP 2007169758A JP 4370438 B2 JP4370438 B2 JP 4370438B2
Authority
JP
Japan
Prior art keywords
partial
vector data
vector
drawing area
area
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.)
Expired - Fee Related
Application number
JP2007169758A
Other languages
English (en)
Other versions
JP2009009345A (ja
Inventor
尊文 黒河
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC System Technologies Ltd
Original Assignee
NEC System Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC System Technologies Ltd filed Critical NEC System Technologies Ltd
Priority to JP2007169758A priority Critical patent/JP4370438B2/ja
Priority to US12/213,981 priority patent/US8237717B2/en
Priority to CA2636397A priority patent/CA2636397C/en
Priority to EP08159095A priority patent/EP2009594B1/en
Publication of JP2009009345A publication Critical patent/JP2009009345A/ja
Application granted granted Critical
Publication of JP4370438B2 publication Critical patent/JP4370438B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Description

本発明は、ベクター画像を表示するための描画装置、描画方法およびプログラムに関する。
汎用の表示装置に表示する画像のデータには、二次元の画素の配列であるラスタデータと、線の情報を保持するベクターデータがある。ベクターデータは、例えば、線分の始点と終点、曲線を定める関数の次数と点の組み合わせ、円弧などを特定するデータなどがある。ラスタデータの画像をラスタ画像、ベクターデータの画像をベクター画像という。
ラスタデータは、画素ごとの色と輝度がデータとして保持されているので、表示するときに演算する必要はないが、画像を拡大表示する場合に画素単位で拡大するので表示の粗さが目立つ。ベクターデータは、表示の解像度に合わせて二次元の画素配列に展開するので、画像を拡大・縮小する場合にその解像度で表示できる。例えば、文字のタイプフェース(フォントともいう)をベクターデータで保持して、拡大・縮小したときに滑らかな表示が得られるようにしているアウトラインフォントがある。
ラスタ画像では、全画素の色と輝度がデータとして保持されているので、図形の塗りつぶしについてもそのまま表示するだけである。それに対して、ベクター画像では、塗りつぶす範囲が閉じた図形のベクターデータであり、塗りつぶす色と輝度がデータで指定されているだけなので、塗りつぶしを表示するときに、その範囲に含まれる画素を決定し、その範囲の画素を指定の色と輝度に設定する必要がある。図形の重なりがある場合には、ベクターデータから交点と重なる範囲を演算して、塗りつぶす画素を設定する。
例えば特許文献1は、塗りつぶしの境界線の一部もしくは全てが表示エリア外の場合でも塗りつぶし表示を可能とする技術が記載されている。特許文献1の技術は、境界線を形成する描画点の座標を算出し、その座標が表示エリア内の場合はその座標に対応する画像メモリに画像データを書込み、算出された描画点のx座標が表示エリアの左側に外れる場合は同じy座標の表示エリアの左端に対応する画像メモリに画像データを書込む塗りつぶし線描画部と、画像メモリに書込まれた画像データに基づいて表示メモリに表示データを格納する。
特許文献4は、線幅を有する線を描画するときにも、接続点で発生する隙間を埋めた、高品位の描画図形を、高速に得る技術が記載されている。特許文献4の技術は、strokeベクターは曲線を複数の直線で近似した後、ベクターのアウトラインベクターと、空白部を埋めるベクターが生成される。ベクターは、曲線を複数の直線で近似した後、塗り潰し処理が行なわれる。このとき、strokeベクターに対する塗り潰しは、非ゼロ巻数規則により行なわれる。
特許文献5は、描画すべき矩形領域外の塗り潰し開始および終了座標の処理を簡略化する技術が記載されている。描画領域の各行方向に対応して設けられるフラグ登録領域と、行方向における塗り潰し開始座標および終了座標登録領域とを有し、閉領域の各輪郭座標において、当該座標が矩形領域の左端より左方であって、矩形領域の上端より下方、かつ、矩形領域の下端より上方に位置する場合は、フラグ登録領域の当該座標に対応する行にフラグを登録する。輪郭座標が矩形領域内に位置する場合は、塗り潰し開始座標および終了座標登録領域に当該座標を登録する。フラグ登録領域の対応する領域にフラグが登録されている場合は、前記矩形領域の行先頭から塗り潰しを開始する。塗り潰し開始座標および終了座標登録領域に当該行の座標が登録されているときは当該登録されている座標まで塗り潰し描画を行い、登録されていないときは前記矩形領域の行末尾まで塗り潰し描画を行う。
その他、クリップ経路と描画経路の一部が重なり合っている場合におけるクリッピング処理を高速化する技術が、特許文献2に記載されている。特許文献3は、ページメモリを越える範囲の入力ベクターデータであっても確実に、塗り潰し処理を行なう技術が記載されている。また、特許文献6には、描画処理の高速化を図ることができるようにした曲線描画方法の技術が記載されている。
特開2003−099027号公報 特開平05−046778号公報 特開平06−168337号公報 特開平06−168339号公報 特開平04−57177号公報 特開平04−342084号公報
上述の関連する技術においては、ベクター画像を描画する場合、走査線毎にベクターデータの交差情報を保持し、その情報を元に塗りつぶしの有無を判断して、図形描画を行っている。しかし、走査線毎の交差情報が増大した場合、情報を保持するためのメモリを充分確保しないと、正しく描画できないという問題があった。
本発明の目的は、少ないメモリ容量でもベクター画像を正しく描画するベクター画像描画装置、ベクター画像描画方法およびプログラムを提供することにある。
上記の目的を達成するために、本発明の第1の観点に係るベクター画像描画装置は、mとnを任意の自然数として、描画領域を縦がm個、横がn個のm×n個の部分描画領域に分割する分割手段と、前記分割手段で前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択手段と、前記分割手段で分割した部分描画領域ごとに、前記選択手段で選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画手段と、を備えることを特徴とする。
好ましくは、前記選択手段は、前記部分描画領域ごとに、その部分描画領域の外にある図形のベクターデータを前記分割描画手段の描画の対象から除外することを特徴とする。
さらに、前記選択手段は、前記部分描画領域ごとに、図形を構成するベクターデータのうち1つでもその部分描画領域内にある場合は、その図形を前記分割描画手段の描画の対象とする、よう構成してもよい。
好ましくは、前記分割描画手段は、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えて、塗りつぶし処理を行う。
好ましくは、前記分割描画手段は、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある連続する複数のベクターデータを1つの直線ベクターデータに置き換えて、塗りつぶし処理を行う。
本発明の第2の観点に係るベクター画像描画方法は、mとnを任意の自然数として、描画領域を縦がm個、横がn個のm×n個の部分描画領域に分割する分割ステップと、前記分割ステップで前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択ステップと、前記分割ステップで分割した部分描画領域ごとに、前記選択ステップで選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画ステップと、を備えることを特徴とする。
好ましくは、前記選択ステップは、前記部分描画領域ごとに、その部分描画領域の外にある図形のベクターデータを前記分割描画ステップの描画の対象から除外することを特徴とする。
さらに、前記選択ステップは、前記部分描画領域ごとに、図形を構成するベクターデータのうち1つでもその部分描画領域内にある場合は、その図形を前記分割描画ステップの描画の対象とするよう構成してもよい。
好ましくは、前記分割描画ステップは、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えて、塗りつぶし処理を行う。
好ましくは、前記分割描画ステップは、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある連続する複数のベクターデータを1つの直線ベクターデータに置き換えて、塗りつぶし処理を行う。
本発明の第3の観点に係るプログラムは、コンピュータを、mとnを任意の自然数として、描画領域を縦がm個、横がn個のm×n個の部分描画領域に分割する分割手段と、前記分割手段で前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択手段と、前記分割手段で分割した部分描画領域ごとに、前記選択手段で選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画手段、として機能させることを特徴とする。
なお、mとnはそれぞれ1の場合がある。本発明のベクター画像描画装置の描画の対象となる図形は、外形が1つ以上のベクターデータで表された連続する1本の線から構成され、線の開始点と終了点が一致するいわゆる閉じた外形線とそれに囲まれた領域をいう。
本発明のベクター画像描画装置によれば、ベクター図形描画において、少ないメモリ容量で正しい図形描画ができる。
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。本実施の形態では、汎用の表示装置にベクター画像を表示するために、画像メモリにベクターデータを展開する描画装置について説明する。描画装置は、ベクター画像をプリンタなどで印刷する場合にも用いられる。
図1は、本発明の実施の形態に係るベクター画像描画装置1の構成の一例を示すブロック図である。
ベクター画像描画装置1は、画像データ記憶部2と、描画領域分割部5と、対象ベクターデータ選択部6と、分割描画部7とを備える。分割描画部7は、曲線ベクターデータ置換部71と、塗りつぶし処理部72を含む。
画像データ記憶部2は、ベクター画像データ21と、部分描画領域データ22と、部分描画領域対象ベクターデータ23と、描画領域画像データ24を記憶する。ベクター画像データ21は、ベクター画像を構成する図形のベクターデータを含むデータである。ベクター画像には1または複数の図形が含まれる。ベクター画像の1つの図形は1または複数のベクターデータで構成される。ベクターデータには、直線、ベジェ曲線、円弧などがある。例えば、中心と半径で規定される円は1つのベクターデータで1つの図形を構成する。多角形は複数の直線ベクターデータで構成される。
図2は、ベクター画像描画装置1を用いるベクター画像描画システムの一例を示すブロック図である。ベクター画像描画システムは、例えば、ベクター画像描画装置1と、ベクター画像データ格納部3と、描画領域設定部4と、表示部8と、表示装置9とを備える。
ベクター画像データ格納部3は、ベクター画像描画装置1にベクター画像データを入力する。例えば、ベクター画像のデータをベクター画像データ21として、画像データ記憶部2に格納する。描画領域設定部4は、ベクター画像データ21を表示するための描画領域を設定する。描画領域は、通常、領域を示す長方形の頂点の座標と、縮尺および/または解像度で表される。表示部8は、ベクター画像描画装置1が生成した描画領域画像データ24を読み出して、表示装置9に画像として表示する。
図1を参照して、描画領域分割部5は、描画領域を所定の大きさの複数の部分描画領域に分割する。例えば、縦横が所定の画素数の長方形の領域を1つの部分描画領域の大きさとして、描画領域をm×n個の部分描画領域に分割する。描画領域が所定の部分描画領域の大きさより小さい場合は、描画領域を1つの部分描画領域とする。
描画領域分割部5では、自然数m、nを与えて描画領域をm×n個の部分描画領域に分割してもよい。部分描画領域は、描画領域全体に亘って均一な大きさでなくてもよい。例えば、図形の密集しているところは小さい部分描画領域にし、図形のまばらなところは大きい部分描画領域にするなど、変化をつけてもよい。描画領域分割部5は、分割したそれぞれの部分描画領域を示すデータを、部分描画領域データ22として画像データ記憶部2に格納する。
対象ベクターデータ選択部6は、分割した部分描画領域ごとに、それぞれの部分描画領域の画像を描画するのに必要なベクターデータを、ベクター画像データ21から選択する。
図3は、部分描画領域と描画の対象となる図形の関係の例を示す。図3は全体が描画領域を表す。図3の例では、描画領域には、図形202〜207の6個の図形が含まれる。図3では、1つの部分描画領域を部分描画領域201で例示する。
対象ベクターデータ選択部6は、図3の例では、図形204、205、206を部分描画領域201の対象ベクターデータとする。図形205は、それを構成するベクターデータが全て部分描画領域201に含まれるので、分割描画の対象とする。
図形204、206は、閉じた図形で塗りつぶし処理の対象である。図3に示すように、1つの走査線208を例にとると、図形203、204、206の内部を塗りつぶすとして、走査線208が各図形にかかる点が塗りつぶしの開始画素で、走査線208が図形から出る点が塗りつぶしの終了画素である。図3では、塗りつぶしを太い矢印線で示す。塗りつぶしが図形の外側である場合も、走査線に沿って塗りつぶしの開始と終了は、図形の輪郭で示される。したがって、部分描画領域201について、塗りつぶしを判定するために、図形204、206を構成するベクターデータを描画の対象とする。すなわち、図形204、206の一部が部分描画領域201内にある場合、図形204、206を構成するベクターデータ全てを部分描画領域201の画像を描画するのに必要なベクターデータとして選択する。
図1を参照して、対象ベクターデータ選択部6は、部分描画領域ごとに選択したベクターデータの情報を部分描画領域対象ベクターデータ23として画像データ記憶部2に格納する。部分描画領域対象ベクターデータ23は、ベクター画像データ21の図形を指し示すラベルとして表してもよい。1つの図形のうち、必要なベクターデータを指定するには、図形を構成するベクターデータの順に対応するフラグで表すことができる。
分割描画部7は、分割された部分描画領域ごとに、それぞれの部分描画領域に対して選択したベクターデータを用いて、その部分描画領域の画像を描画する。すなわち、1つの部分描画領域について、その画像の描画に必要なベクターデータを示す部分描画領域対象ベクターデータ23を参照して、画像を描画する。例えば、ベクター画像データ21の図形を示すラベルとそれに含まれるフラグの情報から、ベクター画像データ21を参照して描画処理を行う。
曲線ベクターデータ置換部71は、分割描画の対象の部分描画領域対象ベクターデータ23のうち、描画の対象である部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換える。また、塗りつぶし処理部72は、部分描画領域対象ベクターデータ23のうち、描画の対象である部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えたデータを用いて塗りつぶし処理を行う。
図4は、曲線ベクターデータの置換を説明する図である。図4の(A)は、本来のベクターデータと部分描画領域の関係を示す。図4の(B)は、部分描画領域外の曲線ベクターデータを直線ベクターデータに置き換えた場合を示す。
図4(A)では、図形303の部分描画領域301の外にあるベクターデータはベジェ曲線305である。図4(B)では、ベジェ曲線305を直線306に置き換えている。それぞれ、部分描画領域301、302の中の図形303、304と、塗りつぶし307、308は何ら変わるところがない。
図4(A)の場合は、塗りつぶし処理部72で塗りつぶしを行うときに、ベジェ曲線305と走査線との交点を演算するのに、ベジェ曲線を評価する必要があり、演算時間がかかる。それに比べて、図4(B)の直線306は、一次式で表され走査線との交点の演算量が小さい。その結果、特に、塗りつぶしの描画処理が短縮できる。
部分描画領域にかからない曲線ベクターデータを直線ベクターデータに置き換えるのは、ベジェ曲線に限らず、円弧、楕円曲線などでも直線に置き換えることができる。それぞれの場合に、走査線との交点の演算が短縮される。さらに、部分描画領域にかからない複数の連続する直線ベクターデータを1つの直線ベクターデータに置き換えてもよい。
再び図1を参照して、分割描画部7は、部分描画領域ごとに描画した描画領域全体の画像を、描画領域画像データ24として画像データ記憶部2に格納する。
図5は、本実施の形態に係るベクター画像描画装置1の物理的な構成の一例を示すブロック図である。本発明に係るベクター画像描画装置1は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができる。ベクター画像描画装置1は、図5に示すように、制御部11、主記憶部12、外部記憶部13、操作部14、表示装置9および入出力部16を備える。主記憶部12、外部記憶部13、操作部14、表示装置9および入出力部16はいずれも内部バス10を介して制御部11に接続されている。
制御部11はCPU(Central Processing Unit)等から構成され、外部記憶部13に記憶されているプログラムに従って、ベクター画像を描画するための処理を実行する。
主記憶部12はRAM(Random-Access Memory)等から構成され、外部記憶部13に記憶されているプログラムをロードし、制御部11の作業領域として用いられる。上述の画像データ記憶部2は、主記憶部12の中に構成される。
外部記憶部13は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random-Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、前記の処理を制御部11に行わせるためのプログラムを予め記憶し、また、制御部11の指示に従って、このプログラムが記憶するデータを制御部11に供給し、制御部11から供給されたデータを記憶する。
操作部14はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス10に接続するインターフェース装置から構成されている。操作部14を介して、ベクター画像データの作成、入力、送受信などの指示、表示するベクター画像の指定、描画領域の範囲、拡大率、描画領域の表示装置における位置などが入力され、制御部11に供給される。
表示装置9は、CRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)などから構成され、描画されたベクター画像を表示する。
入出力部16は、無線送受信機、無線モデムまたは網終端装置、およびそれらと接続するシリアルインタフェースまたはLAN(Local Area Network)インタフェース等から構成されている。入出力部16を介して、ベクター画像データを受信し、また送信できる。
本発明によるベクター画像描画装置1は、上記のベクター画像を描画する機能を実現する回路を組み込んだLSI(Large Scale Integration)等のハードウェア部品から構成される回路を実装して、電子回路として構成することができる。また、上記の各機能を行うベクター画像描画プログラムを、コンピュータ処理装置上の制御部11で実行することにより、ソフトウェア的にベクター画像描画装置1を実現することができる。その場合、制御部11のCPUは、外部記憶部13に格納されているベクター画像描画プログラムを、主記憶部12にロードして実行し、各部の動作を制御して上記の各機能を行わせることによって、ベクター画像描画装置1をソフトウェア的に実現する。
次に、図6〜図9のフローチャートを参照して本実施の形態に係るベクター画像描画装置1の動作について説明する。なお、上述のように、ベクター画像描画装置1の動作は、ベクター画像描画プログラムが、主記憶部12、外部記憶部13、操作部14、表示装置9および入出力部16を資源として用いて、制御部11の上で動作することによって行う。
図6は、本発明の実施の形態に係るベクター画像描画処理の動作の一例を示すフローチャートである。ベクター画像データ格納部3は、ベクター画像データ21を入出力部16を介して入力し、画像データ記憶部2に格納する(ステップS1)。描画領域設定部4は、例えば、操作部14を介して入力されたオペレータの指示に基づいて、または、既定の描画領域を設定する(ステップS2)。描画領域は、ベクター画像データ21の一部または全部を含み、表示装置9に表示する画像の範囲である。
描画領域分割部5は、描画領域を所定の方法で部分描画領域に分割する(ステップS3)。分割の方法は、上述のとおり、例えば、所定の大きさの複数の部分描画領域に分割する。または、描画領域をm×n個の部分描画領域に分割してもよい。部分描画領域は、描画領域全体に亘って均一な大きさでなくてもよい。
対象ベクターデータ選択部6は、分割された部分描画領域の1つを選択し(ステップS4)、その部分描画領域の描画に必要なベクターデータを選択する(ステップS5)。そして、分割描画部7は、選択されたベクターデータを用いて、その部分描画領域の画像を描画する(ステップS6)。描画した画像は、描画領域画像データ24の対象部分になる。
対象ベクターデータ選択部6は、未処理の部分描画領域があれば(ステップS7;YES)、ステップS4に戻って、部分描画領域の選択から繰り返す。全ての部分描画領域の描画処理が終わったら(ステップS7;NO)、表示部8は、描画領域画像データ24を表示装置9に表示する(ステップS8)。
図7は、部分描画領域の描画ベクターデータを選択する動作の一例を示すフローチャートである。図7のフローチャートは、図6のステップS5の処理の動作を表す。
対象ベクターデータ選択部6は、ベクター画像データ21から、図形を1つ選択する(ステップA1)。その図形を構成するベクターデータのうち、対象の部分描画領域にかかるものがあれば(ステップA2;YES)、その図形を分割描画の対象とする(ステップA3)。
ステップA2で、選択した図形に対象の部分描画領域にかかるベクターデータがなければ(ステップA2;NO)、その図形と部分描画領域に共通する画素があるかどうかを判断する(ステップA4)。なお、ステップA4の記号‘∩’は論理積を表す。共通する画素がなければ(ステップA4;FALSE)、その図形を分割描画対象から除外する(ステップA5)。共通する画素があれば(ステップA4;TRUE)、その図形を分割描画の対象とする(ステップA3)。
選択した図形を部分描画領域の分割描画の対象とするかどうかの判定は、近似的には次のように行ってもよい。
(1)図形を構成するベクターデータの全てのX座標が、部分描画領域の最小のX座標より小さい。
(2)図形を構成するベクターデータの全てのX座標が、部分描画領域の最大のX座標より大きい。
(3)図形を構成するベクターデータの全てのY座標が、部分描画領域の最小のY座標より小さい。
(4)図形を構成するベクターデータの全てのY座標が、部分描画領域の最大のY座標より大きい。
上記(1)〜(4)のいずれかの場合に、その図形を分割描画の対象から除外する。
このようにすると、部分描画領域を取り囲むC字型やU字型の図形で、部分描画領域と共通する画素のない図形などを、分割描画の対象とすることになる。しかし、分割描画対象の判定が簡略になり、ベクター画像描画処理全体の演算は小さくなることが期待できる。
図7のフローチャートを参照して、ベクター画像データに処理していない図形があれば(ステップA6;YES)、ステップA1に戻って、新たな図形の選択から繰り返す。ベクター画像データの全ての図形について処理したら(ステップA6;NO)、その部分描画領域のベクターデータ選択処理を終了する。
図8は、分割描画処理の動作の一例を示すフローチャートである。図8のフローチャートは、図6のステップS6の処理の動作を表す。
分割描画部7は、描画対象の部分描画領域の部分描画領域対象ベクターデータに含まれる図形を1つ選択する(ステップB1)。その図形を構成するベクターデータのうち対象の部分描画領域外のものがあるか否かを判断する(ステップB2)。その閉じた図形に部分描画領域外のベクターデータがある場合(ステップB2;YES)、そのベクターデータが曲線ベクターであれば(ステップB3;YES)、そのベクターデータを直線ベクターデータに置き換える(ステップB4)。
その閉じた図形に部分描画領域外のベクターデータがない場合(ステップB2;NO)、または、部分領域外のベクターデータが曲線ベクターでない場合は(ステップB3;NO)、そのままとする。
分割描画部7は、選択した図形の部分描画領域内のベクターデータを描画する(ステップB5)。すなわち、ベクターデータに基づいて塗りつぶしの開始画素、又は終了画素を設定する。部分描画領域の部分描画領域対象ベクターデータに含まれる図形があれば(ステップB6;YES)、ステップB1に戻って、図形の選択から繰り返す。
部分描画領域対象ベクターデータに含まれる図形すべてについて、ベクターデータの描画を終えたら(ステップB6;NO)、その部分描画領域の塗りつぶし処理を行う(ステップB7)。塗りつぶし処理は、部分描画領域の範囲に限られ、対象となるベクターデータが限定されるので、図形の重なりの判定と、ベクターデータの交点などの処理に要するメモリと演算量を少なくできる。
図9は、ベクターデータが対象の部分描画領域にかかるか否かを判断する処理の動作の一例を示すフローチャートである。図9は、ベクターデータとして直線、2次のベジェ曲線および3次のベジェ曲線がある場合を例にしている。
図10は描画領域とベジェ曲線の例を示す。ベジェ曲線402は頂点P0、P1、P2、P3で規定される3次ベジェ曲線である。判定する対象のベクターデータには、直線や2次ベジェ曲線などの場合もある。ベクターデータが直線の場合は、P0、P1のみで規定される。2次ベジェ曲線の場合は、P0、P1、P2の3点で規定される。部分描画領域401は、左上の点Psと右下の点Peの座標で定義される。
図9のフローチャートは、対象ベクターデータ選択部6と、曲線ベクターデータ置換部71の処理を合わせて示す。対象ベクターデータ選択部6は、ベクターデータの種別(Path)、頂点情報P0、P1、P2、P3および領域情報Ps、Peを入力して図9の処理を行う。対象ベクターデータ選択部6は、ベクターデータが直線かベジェ曲線かを判別する(ステップC1)。
ベクターデータが直線の場合は(ステップC1;YES)、P0、P1座標とPs、Peの大小比較を行い、ベクターデータが部分描画領域に対してどの位置にあるかを判別する(ステップC3)。AT(AllTop)が真(TRUE)の場合は、全頂点が部分描画領域401よりも上部にあることを示す。同じく、AB(AllBottom)、AL(AllLeft)、AR(AllRight)で、全頂点が下部、左部、右部に配置されるケースを判別する。この比較結果に基づいて、ベクターデータが描画に関連するかどうかを判別する。図3で示した通り、全て上部、下部、右部の場合は(ステップC6;TRUE)、部分描画領域の描画情報として必要ないので、そのベクターデータを部分描画領域外とする(ステップC9)。
図9の処理では、部分描画領域の左にあるベクターデータを除外せず、描画(塗りつぶし)の対象としている。部分描画領域の分割描画の対象とするか否かを、近似的に簡易に判定するにはこのような方法でもよい。
ベクターデータが直線以外の場合(ステップC1;NO)、2次ベジェ曲線か3次ベジェ曲線かを判別する(ステップC2)。2次ベジェ曲線(Quad Besier)の場合(ステップC2;YES)、2次ベジェ曲線の頂点と描画領域の位置関係を判別する(ステップC4)。この結果を元にそのベクターデータが除外可能かどうか判別する(ステップC7)。AT、AB、ARの場合は(ステップC7;TRUE)、そのベクターデータを除外する(ステップC10)。除外しない場合(ステップC7;FALSE)、ALかどうか判定して(ステップC11)、ALが真の場合は(ステップC11;TRUE)、ベクターデータを直線ベクターに変更する(ステップC12)。その際、P1にP2を代入する。
図9の処理では、部分描画領域の左にあるベジェ曲線ベクターデータのみを、直線に置き換えている。部分描画領域の外にある曲線を、直線に置き換えるにはこのような方法でもよい。
ベクターデータが3次ベジェ曲線の場合は(ステップC2;NO)、頂点P0、P1、P2、P3と領域情報Ps、Peについて同様に位置関係を判別する(ステップC5)。以降については2次ベジェ曲線と同様に処理される(ステップC8、C13、C14、C15)。
このようにして、ベクターデータが部分描画領域にかかるか否かを判定し、部分描画領域にかからないベクターデータを分割描画の対象から除外し、また、部分描画領域外の曲線ベクターデータを直線に置き換えることができる。
以上により、ベクター画像を描画領域に描画処理するのにあたり、描画領域を部分描画領域に分割し、部分描画領域ごとに必要なベクターデータに限定して描画処理を行うことができる。その結果、塗りつぶし処理は、部分描画領域の範囲に限られ、対象となるベクターデータが限定されるので、図形の重なりの判定と、ベクターデータの交点などの処理に要するメモリと演算量を少なくできる。
さらに、部分描画領域にかかる閉じた図形について、部分描画領域外の曲線ベクターデータを直線に置き換えるので、塗りつぶし処理のメモリと演算量を削減できる。
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。例えば、本実施の形態では曲線ベクターデータがベジェ曲線の場合について説明したが、円弧や楕円曲線など他の曲線についても適用できる。
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
制御部11、主記憶部12、外部記憶部13、操作部14、入出力部16および内部バス10などから構成されるベクター画像描画装置1の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するベクター画像描画装置1を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでベクター画像描画装置1を構成してもよい。
また、ベクター画像描画装置1の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
本発明の実施の形態に係るベクター画像描画装置の構成の一例を示すブロック図である。 ベクター画像描画装置を用いるベクター画像描画システムの一例を示すブロック図である。 部分描画領域と描画の対象となる図形の関係の例を示す図である。 曲線ベクターデータの置換を説明する図である。 本実施の形態に係るベクター画像描画装置の物理的な構成の一例を示すブロック図である。 本発明の実施の形態に係るベクター画像描画処理の動作の一例を示すフローチャートである。 部分描画領域の描画ベクターデータを選択する動作の一例を示すフローチャートである。 分割描画処理の動作の一例を示すフローチャートである。 ベクターデータが対象の部分描画領域にかかるか否かを判断する処理の動作の一例を示すフローチャートである。 描画領域とベジェ曲線の例を示す図である。
符号の説明
1 ベクター画像描画装置
2 画像データ記憶部
3 ベクター画像データ格納部
4 描画領域設定部
5 描画領域分割部
6 対象ベクターデータ選択部
7 分割描画部
8 表示部
9 表示装置
11 制御部
12 主記憶部
13 外部記憶部
16 入出力部
21 ベクター画像データ
22 部分描画領域データ
23 部分描画領域対象ベクターデータ
24 描画領域画像データ

Claims (11)

  1. mとnを任意の自然数として、描画領域を縦がm個、横がn個のm×n個の部分描画領域に分割する分割手段と、
    前記分割手段で前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択手段と、
    前記分割手段で分割した部分描画領域ごとに、前記選択手段で選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画手段と、
    を備えることを特徴とするベクター画像描画装置。
  2. 前記選択手段は、前記部分描画領域ごとに、その部分描画領域の外にある図形のベクターデータを前記分割描画手段の描画の対象から除外することを特徴とする請求項1に記載のベクター画像描画装置。
  3. 前記選択手段は、前記部分描画領域ごとに、図形を構成するベクターデータのうち1つでもその部分描画領域内にある場合は、その図形を前記分割描画手段の描画の対象とする、
    ことを特徴とする請求項1または2に記載のベクター画像描画装置。
  4. 前記分割描画手段は、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えて、塗りつぶし処理を行うことを特徴とする請求項1ないし3のいずれか1項に記載のベクター画像描画装置。
  5. 前記分割描画手段は、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある連続する複数のベクターデータを1つの直線ベクターデータに置き換えて、塗りつぶし処理を行うことを特徴とする請求項1ないし3のいずれか1項に記載のベクター画像描画装置。
  6. mとnを任意の自然数として、描画領域を縦がm個、横がn個のm×n個の部分描画領域に分割する分割ステップと、
    前記分割ステップで前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択ステップと、
    前記分割ステップで分割した部分描画領域ごとに、前記選択ステップで選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画ステップと、
    を備えることを特徴とするベクター画像描画方法。
  7. 前記選択ステップは、前記部分描画領域ごとに、その部分描画領域の外にある図形のベクターデータを前記分割描画ステップの描画の対象から除外することを特徴とする請求項6に記載のベクター画像描画方法。
  8. 前記選択ステップは、前記部分描画領域ごとに、図形を構成するベクターデータのうち1つでもその部分描画領域内にある場合は、その図形を前記分割描画ステップの描画の対象とすることを特徴とする請求項6または7に記載のベクター画像描画方法。
  9. 前記分割描画ステップは、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある曲線ベクターデータを直線ベクターデータに置き換えて、塗りつぶし処理を行うことを特徴とする請求項6ないし8のいずれか1項に記載のベクター画像描画方法。
  10. 前記分割描画ステップは、前記部分描画領域ごとに分割描画の対象となる図形を構成するベクターデータのうち、その部分描画領域の外にある連続する複数のベクターデータを1つの直線ベクターデータに置き換えて、塗りつぶし処理を行うことを特徴とする請求項6ないし8のいずれか1項に記載のベクター画像描画方法。
  11. コンピュータを、
    mとnを任意の自然数として、描画領域を縦がm個、横がn個のm×n個の部分描画領域に分割する分割手段と、
    前記分割手段で前記部分描画領域に分割したのちに、前記部分描画領域ごとに、画像のベクターデータのうち、元のベクター画像データで与えられた図形であってその一部が該部分描画領域に含まれる図形を構成する、該部分描画領域の外のベクターデータを含みうる全てのベクターデータを、該部分描画領域の描画に必要なベクターデータとして選択する選択手段と、
    前記分割手段で分割した部分描画領域ごとに、前記選択手段で選択した該部分描画領域の描画に必要なベクターデータに基づいて画像を描画する分割描画手段、
    として機能させることを特徴とするプログラム。
JP2007169758A 2007-06-27 2007-06-27 ベクター画像描画装置、ベクター画像描画方法およびプログラム Expired - Fee Related JP4370438B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007169758A JP4370438B2 (ja) 2007-06-27 2007-06-27 ベクター画像描画装置、ベクター画像描画方法およびプログラム
US12/213,981 US8237717B2 (en) 2007-06-27 2008-06-26 Vector image drawing device, method for vector image drawing, and computer readable recording medium
CA2636397A CA2636397C (en) 2007-06-27 2008-06-26 Vector image drawing device, method for vector image drawing, and computer readable recording medium
EP08159095A EP2009594B1 (en) 2007-06-27 2008-06-26 Vector image drawing device, method for vector image drawing, and computer readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007169758A JP4370438B2 (ja) 2007-06-27 2007-06-27 ベクター画像描画装置、ベクター画像描画方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2009009345A JP2009009345A (ja) 2009-01-15
JP4370438B2 true JP4370438B2 (ja) 2009-11-25

Family

ID=39831690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007169758A Expired - Fee Related JP4370438B2 (ja) 2007-06-27 2007-06-27 ベクター画像描画装置、ベクター画像描画方法およびプログラム

Country Status (4)

Country Link
US (1) US8237717B2 (ja)
EP (1) EP2009594B1 (ja)
JP (1) JP4370438B2 (ja)
CA (1) CA2636397C (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5458353B2 (ja) * 2009-08-18 2014-04-02 株式会社沖データ 図形処理装置、図形処理システムおよび図形処理方法
US10104333B2 (en) * 2011-06-02 2018-10-16 Gree, Inc. Vector data conversion output device, vector data conversion output method, and vector data conversion output program
JP6011271B2 (ja) * 2012-01-17 2016-10-19 株式会社リコー 情報処理装置、システム、情報処理方法、プログラム、記憶媒体
JP5665902B2 (ja) * 2013-03-15 2015-02-04 株式会社Takumi 画像処理装置、画像処理方法、およびプログラム
CN106384370A (zh) * 2015-07-31 2017-02-08 高德软件有限公司 一种折线绘制方法及装置
CN110084870B (zh) * 2019-05-13 2023-03-24 武汉轻工大学 平面方程的绘图区域的确定方法、装置、设备及存储介质
CN111260750B (zh) * 2020-01-08 2023-07-07 广东三维家信息科技有限公司 openFL绘制矢量图形的处理方法、装置及电子设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731606A (en) * 1985-08-02 1988-03-15 International Business Machines Corporation Method for rapid windowing of display information in computer graphics
US4939671A (en) * 1987-09-08 1990-07-03 Auto-Trol Technology Corporation Method and system for line drawing with next matrix feature
JP2878405B2 (ja) 1990-06-27 1999-04-05 株式会社日立テレコムテクノロジー 描画処理における閉領域塗り潰し方法
JP3024254B2 (ja) 1991-05-20 2000-03-21 富士通株式会社 曲線描画方法及び装置
JP2902820B2 (ja) 1991-08-16 1999-06-07 東芝テック株式会社 図形のクリッピング方法
JPH06168337A (ja) 1992-11-30 1994-06-14 Fuji Xerox Co Ltd 塗り潰し処理方法
JP3060761B2 (ja) 1992-11-30 2000-07-10 富士ゼロックス株式会社 描画装置
US5638503A (en) * 1994-07-07 1997-06-10 Adobe Systems, Inc. Method and apparatus for generating bitmaps from outlines containing bezier curves
JP3296677B2 (ja) 1995-03-06 2002-07-02 株式会社デジタル 図形の描画方法および装置
JPH095107A (ja) 1995-06-21 1997-01-10 Tokimec Inc 電子海図表示情報装置
JP3705923B2 (ja) * 1998-04-09 2005-10-12 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法、プログラム提供媒体、並びにデータ提供媒体
US7148898B1 (en) * 2000-03-29 2006-12-12 Sourceprose Corporation System and method for synchronizing raster and vector map images
JP4851049B2 (ja) 2000-06-08 2012-01-11 イマジネイション テクノロジーズ リミテッド 三次元イメージレンダリングのためのタイリング及び圧縮
JP2003099027A (ja) 2001-09-21 2003-04-04 Yokogawa Electric Corp 画像表示装置
GB0307095D0 (en) * 2003-03-27 2003-04-30 Imagination Tech Ltd Improvements to a tiling system for 3d rendered graphics
GB2404316B (en) * 2003-07-25 2005-11-30 Imagination Tech Ltd Three-Dimensional computer graphics system
US7505043B2 (en) * 2004-08-30 2009-03-17 Qualcomm Incorporated Cache efficient rasterization of graphics data
JP4923309B2 (ja) 2005-12-26 2012-04-25 Dowaメタルマイン株式会社 金属電解製錬用の電極

Also Published As

Publication number Publication date
US20090040230A1 (en) 2009-02-12
CA2636397C (en) 2014-02-11
JP2009009345A (ja) 2009-01-15
EP2009594A1 (en) 2008-12-31
US8237717B2 (en) 2012-08-07
EP2009594B1 (en) 2012-03-28
CA2636397A1 (en) 2008-12-27

Similar Documents

Publication Publication Date Title
JP4370438B2 (ja) ベクター画像描画装置、ベクター画像描画方法およびプログラム
US20070263926A1 (en) Image processing apparatus, image processing method, and image processing program
JP2007241878A (ja) 描画装置、描画方法及び描画プログラム
JP2008165760A (ja) グラフィックスを処理する方法および装置
JP2010092481A (ja) グラフィックス処理システム
JP2010092480A (ja) グラフィックス処理システム
JP2009301284A (ja) 描画装置および方法
JP5067501B2 (ja) 多色ベクトル画像処理装置および方法
JP3791259B2 (ja) アウトラインスムージング処理方法
JP4646436B2 (ja) デジタル画像の画像処理装置
KR100305461B1 (ko) 그래픽처리장치
JP4325812B2 (ja) ベクター画像描画回路およびベクター画像描画方法
US8907955B2 (en) Vector image drawing device, vector image drawing method, and recording medium
JP4930860B2 (ja) 図形描画装置、アンチエイリアス処理方法およびプログラム
JP2016139360A (ja) コンピュータプログラム及び制御装置
JP4863306B2 (ja) ベクターイメージ描画装置、ベクターイメージ描画方法およびプログラム
JP2011028641A (ja) 画像処理装置及び画像処理方法
JP6478888B2 (ja) 図形描画装置および図形描画プログラム
KR101666131B1 (ko) 서브 픽셀의 패턴을 고려한 벡터 글꼴의 렌더링 방법
JP2006031160A (ja) グラフィックオブジェクト処理方法
JP2013068985A (ja) ベクトル描画装置、ベクトル描画方法及びプログラム
US20090096792A1 (en) Fill mode determination in vector graphics
JPH0896149A (ja) 図形描画装置
JPH0896148A (ja) 図形描画装置
JPH10116348A (ja) 描画装置および方法および記憶媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090804

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090817

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4370438

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees