(58)【調査した分野】(Int.Cl.,DB名)
前記辺データ作成部は、主走査方向に対する前記辺の傾きが所定の傾きより大きい場合に、前記細分化処理部による処理を選択し、前記辺の傾きが前記所定の傾きより大きくない場合、前記DDA処理部による処理を選択する、
請求項3の図形画像作成装置。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図面を参照しながら説明する。
図1は本実施形態を説明する図形画像作成装置を含む印刷装置のシステム構成図である。尚、本例で使用する印刷装置は、印刷機能に加えて、スキャナ機能やファクシミリ機能、複写機能等を備えた複合機(以下、MFP(多機能印刷装置・マルチファンクションプリンタ)で示す)であり、以後このMFPを使用して説明する。
【0012】
MFP1は、スキャナ部2、MFP制御部3、プリンタ部4で構成されている。スキャナ部2は読取機構部2aを有し、読取機構部2aの駆動により原稿台に載置された原稿画像が読み取られ、MFP制御部3に原稿データが送信される。
【0013】
MFP制御部3は、メイン制御部5、読取機構制御部6、表示操作制御部7、FAX通信制御部8、LAN通信制御部9、インターネット通信制御部10、ICカード装置制御部11、記憶装置制御部12、及び記憶装置部(HDD)13で構成されている。
【0014】
読取機構制御部6は前述のスキャナ部2に設けられた読取機構部2aの機構制御を行い、スキャナ部2で読み取った原稿データをMFP制御部3に送る。
【0015】
表示操作制御部7は、表示操作部15に設けられたキー等の操作に基づく操作信号をメイン制御部5に送信する。また、表示操作制御部7は、メイン制御部5から出力される表示データを表示操作部15に送信する。さらに、記憶装置制御部12は、記憶装置部(HDD)13へのデータ書き込み、及び記憶装置部(HDD)13に記憶されたデータの読み出し制御を行う。
【0016】
LAN通信制御部9は、本例で使用するMFP1をLANに接続するためのインターフェイスであり、クライアントPC等との通信に使用され、例えばこのクライアントPCから印刷データが供給される。
【0017】
また、FAX通信制御部8は、ファクシミリデータの送受信制御を行う。また、インターネット通信制御部10は、例えばTCP/IP(transmission control protocol/internet protocol)によってパケット通信を行う。さらに、ICカード装置制御部11はICカードリーダ16との間のインターフェイスであり、例えば親展印刷における認証に使用される。
【0018】
一方、プリンタ部4はPPR制御部17、印刷機構部18、及び給紙装置19で構成され、給紙装置19から搬出された用紙(記録媒体)にPPR制御部17の制御に基づいて印刷処理を行い、印刷結果20を不図示の排紙部に出力する。本例においては、後述する多角形の図形を作成し、多角形の内部を所定の色や模様で塗りつぶす印刷を行い、印刷結果20を不図示の排紙部に出力する。
【0019】
上記メイン制御部5はCPU5a、ROM5b、EEPROM5c、及びRAM5dを備え、CPU5aはROM5bに記憶されたプログラムに基づいて印刷処理を行う。この際、RAM5dをワークエリアとして使用し、後述する辺情報の作成処理等を行う。
【0020】
RAM5dにはCPU5aの処理によって作成される辺情報を記憶する辺情報テーブルが構築される。
図2はこの辺情報テーブルの構成例を示す図である。具体的には後述するが、辺情報テーブルには対象となる多角形の図形の辺情報が、例えば辺情報1〜Nとして複数記憶される。また、各辺情報は開始X座標、開始Y座標、辺の高さ、誤差値e(−Δy)、eの増分値(2×Δx)、eの補正値(2×Δy)、X方向の増分値、垂直線情報の記憶エリアで構成されている。例えば、
図3(a)に示す多角形21の例で説明すると、多角形21は四角形であり、21a〜21dの4つの辺を有する。そして、各辺の情報は後述する処理によって作成される。
【0021】
また、
図3(b)は本実施形態の辺作成処理の基本概念を説明するものであり、辺21aを例に説明すると、辺21aを拡大した場合、近似的には副走査方向(Y方向)の垂直辺の連続であり、この辺21aの傾きが後述する閾値より大きい場合、細分化処理を行い、各垂直辺(21a−1〜21a−n)について辺情報を作成し、更に垂直線情報を付加して複雑なDDA計算を省略するものである。
【0022】
以上の構成において、以下に本例の処理動作を具体的に説明する。
図4は本例の処理動作を具体的に説明する図である。本例においては、
図4(a)に示す多角形の図形22内を所定の色又は模様で塗りつぶす印刷処理であり、
図4(b)は上記多角形の図形のある辺が所定の閾値より大きい傾きを有する場合の細分化処理を説明する図である。以下の説明では、特に辺23の例を使用して、処理動作を説明する。
【0023】
図5は本例の処理を説明するフローチャートである。先ず、対象とする辺の始点及び終点座標の読み込み処理を行う(ステップ(以下、Sで示す)1)。例えば、
図4(a)に示す辺23の場合、始点は23aであり、終点は23bである。したがって、上記処理において始点23a、及び終点23bの座標データを読み取る。尚、
図4(b)において、始点の座標を(X0、Y0)とし、終点の座標を(X1、Y1)とし、始点及び終点を黒丸で示す。
【0024】
次に、ΔX及びΔYを算出する(S2)。この計算は
図4(b)に示すように、辺23の主走査方向(X)の長さと副走査方向(Y)の長さであり、上記始点と終点の座標データに基づいて、例えばΔXは|X1-X0|+1の計算式によって算出し、ΔYは|Y1-Y0|+1の計算式によって算出する。
【0025】
次に、辺23の傾きチェックを行う(S3)。この辺23の傾きチェックは、辺23が水平であるか、又は垂直であるか、又は傾きを有するか判断するものであり、例えば辺23の傾きが水平である場合(ΔY=1)、塗りつぶす描画処理を必要としないため、次の辺の処理に移る。また、辺23の傾きが垂直である場合(ΔX=1)、垂直線の辺情報を作成する(S4)。この処理は、開始X座標、開始Y座標、辺の高さ、及び垂直線情報を設定する処理であり、例えば
図4(a)に示す辺23の場合、開始X座標として上記X0の値がセットされ、開始Y座標として上記Y0の値がセットされ、辺の高さとしてΔYの値がセットされ、垂直線情報としてオン(“1”)がセットされる。このようにして作成された辺情報は前述の
図2に示す辺情報テーブルに書き込まれ、辺情報テーブルの更新処理が行われる(S14)。
【0026】
一方、辺23が傾きを有する場合(S3が斜線(ΔY≠1且つΔX≠1))、細分化判断を行う(S5)。この細分化判断は、前記辺を複数の垂直線に細分化し、細分化した垂直線(以降、垂直辺と呼ぶ)の辺情報を作成する処理(以降、細分化処理と呼ぶ)を行なうか、若しくは、通常のDDA計算により辺を構成する各点の座標を求める処理を行なう為の通常斜辺の辺情報を作成するかの判断である。この判断条件、すなわち細分化条件については、後述する。
【0027】
この細分化判断(S5)において、辺23が上記細分化条件を満たさない場合、通常の傾きを有する辺であると判断し(S5が通常斜辺)、辺情報の作成処理を行う(S6)。この処理は、開始X座標、開始Y座標、辺の高さ、誤差値e(−Δy)、eの増分値(2×Δx)、eの補正値(2×Δy)、垂直線情報の設定処理である。例えば、
図4(a)に示す辺23の場合、開始X座標にはX0であり、開始Y座標はY0であり、辺の高さはΔYであり、この場合辺23は垂直ではないので垂直線情報は“0”(オフ)であり、上記各データがセットされる。尚、このようにして作成された辺情報は前述の
図2に示す辺情報テーブルに書き込まれ、辺情報テーブルの更新処理が行われる(S14)。
【0028】
一方、上記細分化判断において、辺23が上記細分化条件を満たしている場合(S5が細分化)、細分化処理を行う(S7以下の処理を行う)。
【0029】
先ず、辺の高さを計算する(S7)。この辺の高さは
図4(b)に示すhであり、以下の計算式によって算出する。すなわち、辺の高さ=INT(ΔY/ΔX)の計算式によって算出する。
図4(b)に示す例では、ΔYが“21”画素分の長さであり、ΔXが“7”画素分の長さであるので、INT(ΔY/ΔX)=3となる。したがって、辺23の場合、辺の高さ(h)を“3”に設定する。
【0030】
次に、最初の垂直辺情報を作成する(S8)。この処理は、上記計算結果を使用し、開始X座標、開始Y座標、辺の高さ、及び垂直線情報の設定を行う。例えば、上記辺23の場合、開始X座標はX0であり、開始Y座標はY0であり、辺の高さは上記計算結果から“3”であり、垂直線情報はオン(“1”)である。
【0031】
次に、Y座標の更新を行う(S9)。この更新処理は開始Y座標に上記辺の高さを加算する処理であり、例えば
図4(b)に示す開始座標(X0、Y0)が(1,1)である場合、開始Y座標が“1”であり、開始X座標も“1”であり、開始Y座標“1”に辺の高さ“3”を加算して“4”とする。
【0032】
次に、辺情報テーブルの更新処理を行う(S10)。すなわち、上記処理(S8)により新たに作成された垂直辺情報を辺情報テーブルに加えるため、辺情報テーブルの更新処理を行う。
【0033】
以上の処理は開始X座標を+1しつつ、ΔX−1回分繰り返される。すなわち、開始X座標を+1し(S11)、順次次の垂直辺情報を作成する(S8)。例えば、次の開始X座標、開始Y座標、辺の高さ、及び垂直線情報の設定を行う。この場合、次の開始X座標は前の開始X座標“1”に“1”を加算した“2”であり、また開始Y座標は前の開始Y座標“1”に、辺の高さを加算した前述の処理(S9)結果である“3”を加算した“4”である。したがって、この場合の開始座標は(2,4)となる。また、辺の高さは“3”であり、垂直線情報は“1”(オン)である。したがって、上記各データをセットし、次の辺情報とする。
【0034】
以後、上記処理をΔX−1回分繰り返し、
図4(b)に開始座標(3,7)、(4,10)、(5,13)、(6,16)を得、対応する垂直辺情報を作成し、
図2示す辺情報テーブルの更新処理を行う(S8〜S10)。
【0035】
次に、最終辺の高さを計算する(S12)。最終辺の高さは必ずしも前述の辺の高さに一致するとは限らず、このために行う処理であり、ΔY−(辺の高さ×(ΔX−1))の計算式によって算出する。尚、
図4(b)に示す例では、ΔYが“21”であり、辺の高さは前述の処理(S7)の計算結果から“3”であり、ΔXが“7”であるから“3”であり、最終辺の高さも“3”である。
【0036】
次に、最後の垂直辺情報を作成する(S13)。この場合、開始X座標は前の開始X座標“6”に“1”を加算した“7”であり、また開始Y座標は前の開始Y座標“16”に、最終辺の高さ“3”を加算した“19”である。したがって、この場合の開始座標は(7,19)となり、辺の高さは“3”であり、垂直線情報はオン(“1”)である。上記処理が完了すると、辺情報テーブルの更新処理を行う(S14)。
図6は上記処理によって細分化された辺23に対する垂直辺23−1〜23−7の模式的な構成例を示す。尚、各垂直辺23−1〜23−7の始点及び終点画素を黒丸で示す。
【0037】
その後、上記処理を前述の多角形の頂点数分行ったか判断し、頂点数分上記処理を実行すると、本例の処理を終了する。例えば、
図4(a)に示す四角形の図形の場合、4つの頂点に対応する辺情報の作成処理が完了すると、本例の処理を終了する。
【0038】
尚、他の辺情報の作成についても、上記辺23の辺情報の作成処理と同様であり、対象とする辺の始点及び終点座標の読み込み(S1)、ΔX及びΔYを算出し(S2)、対象となる辺の傾きをチェックし(S3)、辺の傾きが水平であれば次の辺の処理に移り、辺の傾きが垂直であれば垂直線の辺情報を作成する(S4)。一方、対象となる辺が傾きを有する場合、前述の細分化条件を判断し、更に細分化判断を行う(S5)。この細分化処理については、前述の処理(S7〜S14)に従って実行される。
【0039】
このようにして作成された辺情報は辺情報テーブルに記憶され、PPR制御部17はこの辺情報テーブルに記憶された辺情報に基づいて、通常斜辺の場合はDDA計算を行なって辺の構成要素である各点の座標を求め、(以降、この処理をDDA処理と呼ぶ)また、前記細分化処理にて作成された垂直辺情報を含む垂直線情報の場合はDDA計算を省いて、辺情報より辺を構成する各点の座標を求める。求めたこれらの点の座標を使用して図形画像を作成し、印刷機構部18によって上記図形内部を所定の色又は模様で塗りつぶされる。
【0040】
ここで、上記細分化条件について詳しく説明する。
通常斜辺の場合は、辺データ作成部がこの斜辺の辺情報を作成する(
図5のS6の処理)時間より、DDA処理部がこの辺情報に基づいてDDA計算を行なって辺の構成要素の各点の座標を求める時間のほうがはるかに大きく、大半の時間を占める。例えば、
図7の(1)の部分で点描画(pointset関数)の実行時間を除いた時間である。このDDA計算は、1つの点座標を求める処理をΔYの回数分繰り返す。従って、
辺を構成する各点の座標をDDA計算する時間=t1×ΔY ………(A)
である。
但し、上記t1は、
t1:DDA処理部が、辺を構成する各点のうち1つの点の座標を計算する時間
である。
【0041】
また、辺を垂直辺に細分化する処理の場合は、細分化して垂直辺情報を作成する細分化処理時間の方が垂直辺情報に基づいて垂直辺の構成要素である各点の座標を求める時間よりはるかに大きい。
上記細分化処理(
図5のS8〜S10とS12〜S14)は、1つの垂直辺情報の作成をΔX回繰り返し行っており(S8〜S10を(ΔX−1)回とS12〜S14を1回の合計ΔX回)であり、従って
細分化処理時間 = t2×ΔX ………(B)
である。
但し、上記t2は、
t2:細分化処理が、1つの垂直辺情報を作成する時間
である。
【0042】
細分化するか否かの条件としては、DDA処理部が上記辺を構成する各点の座標をDDA計算する時間よりも、上記細分化処理の時間のほうが小さい場合、垂直辺への細分化を行なう。すなわち、
辺を構成する各点の座標をDDA計算する時間 > 細分化処理の時間
であり、上記(A)、(B)より
t1×ΔY > t2×ΔX
ΔY/ΔX > t2/t1
すなわち、
辺の傾き tanθ(=ΔY/ΔX) > 閾値A (=t2/t1)
である。
つまり、細分化条件は、辺の傾きtanθが閾値Aより大きいことであり、この場合、垂直辺への細分化する処理を行なう。
なお、閾値Aはt2/t1としたが、必ずしも閾値A=t2/t1でなければならないことではなく、閾値Aは、t2/t1以上の値であれば良い。
【0043】
以上のように、本実施形態によれば、多角形の図形の斜辺に対してその斜辺の傾きが所定の閾値と比較し、上記閾値より大きい斜辺について、垂直辺に細分化し、細分化した垂直辺の辺情報の作成に関し、DDA計算を省き、図形の作成、及び図形内部の色塗りつぶし処理を高速に行うものである。
【0044】
尚、上記実施形態の説明では
図4(a)等に示す四角形の画像データの塗りつぶし処理について説明したが、四角形に限るものではなく、例えば三角形や五角形等の他の多角形の内部を塗りつぶす場合でも同様に適用することができる。また、上記実施形態の説明では本発明の図形画像作成装置を印刷装置に適用し、図形画像内の塗りつぶし印刷を迅速に行うように構成したが、表示装置に適用してもよい。また、塗りつぶしに限らず多角形や線分の描画の場合でも同様に適用できる。
また、上記実施形態の説明では、垂直線に近い斜辺を多数の垂直辺に細分化することによりDDA計算を省く方式として説明したが、同様に水平に近い斜辺を多数の水平辺の集合からなるものと見なして、複雑なDDA計算処理を省略し、図形の作成及び図形内部の色塗りつぶし処理を高速に行うことも本発明の範疇に含まれるものである。
【0045】
本発明はいくつかの実施形態を説明したが、本発明は特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下、本件特許出願の出願当初の特許請求の範囲に記載された発明を付記する。
【0046】
付記1
DDA(Digital Differential Analyzer)方式を用いて算出された、図形を構成する辺の座標データに基づいて、前記図形の画像を作成する図形画像作成装置であって、
前記辺の始点及び終点座標より前記辺の画像データを作成する辺データ作成部と、
前記辺データ作成部が作成する辺が所定の条件を満足しない場合、前記DDA方式を用いて前記辺の画像データを作成するDDA処理部と、
前記辺データ作成部が作成する辺が前記所定の条件を満足する場合、前記辺を垂直辺に細分化する細分化処理部と、
前記細分化処理部によって細分化された垂直辺の辺データには前記DDA方式の計算による画像作成処理を省く垂直線情報を付加して細分化された垂直辺の辺データを作成する細分化垂直辺データ作成部と、
前記辺データ作成部、及び細分化垂直辺データ作成部によって作成された辺データに基づいて前記図形を作成する図形作成部と、
を有することを特徴とする図形画像作成装置。
【0047】
付記2
前記所定の条件は、
前記辺の水平方向の幅をΔX、垂直方向の高さをΔYとした場合、
前記辺の傾きtanθが、
tanθ=(ΔY/ΔX)>(t1/t2)
である、
但し、上記t1、t2は、
t1:前記DDA処理部が、前記辺を形成する1つの点の座標を計算する時間
t2:前記細分化処理部が前記垂直辺の一つの辺データを計算する時間
である、ことを特徴とする付記1に記載の図形画像作成装置。
【0048】
付記3
前記辺データ作成部及び細分化辺データ作成部によって作成された辺データを記憶する辺情報テーブルを備え、前記図形作成部は前記辺情報テーブルに記憶された辺データに基づいて図形を作成することを特徴とする付記1、又は2に記載の図形画像作成装置。
【0049】
付記4
前記細分化垂直辺データ作成部によって作成される細分化辺データは、開始X座標、開始Y座標、辺の高さ、及び前記DDA計算を省く情報であることを特徴とする付記1、2、又は3に記載の図形画像作成装置。
【0050】
付記5
DDA(Digital Differential Analyzer)方式を用いて算出された、図形を構成する辺の座標データに基づいて、前記図形の画像を作成する方法であって、
前記辺の始点及び終点座標より前記辺の画像データを作成する辺データ作成処理と、
前記辺データ作成処理によって作成される辺が所定の条件を満足しない場合、前記DDA方式を用いて前記辺の画像データを作成するDDA処理と、
前記辺データ作成処理によって作成する辺が前記所定の条件を満足する場合、前記辺を垂直辺に細分化する細分化処理と、
前記細分化処理によって細分化された垂直辺の辺データにはDDA計算による画像作成を省く垂直線情報を付加して細分化された辺データを作成する細分化辺データ作成処理と、
前記辺データ作成処理、及び細分化辺データ作成処理によって作成された辺データに基づいて図形を作成する図形作成処理と、
を行うことを特徴とする図形画像作成方法。
【0051】
付記6
前記所定の条件は、
前記辺の水平方向の幅をΔX、垂直方向の高さをΔYとした場合、
前記辺の傾きtanθが、
tanθ=(ΔY/ΔX)>(t1/t2)
である、
但し、上記t1、t2は、
t1:前記DDA処理部が、前記辺を形成する1つの点の座標を計算する時間
t2:前記細分化処理部が前記垂直辺の一つの辺データを作成する時間
である、ことを特徴とする付記5に記載の図形画像作成方法。
【0052】
付記7
DDA(Digital Differential Analyzer)方式を用いて算出された、図形を構成する辺の座標データに基づいて、前記図形の画像を作成する処理を実行させるプログラムであって、
前記辺の始点及び終点座標より前記辺の画像データを作成する辺データ作成処理と、
前記辺データ作成処理によって作成される辺が所定の条件を満足しない場合、前記DDA方式を用いて前記辺の画像データを作成するDDA処理と、
前記辺データ作成処理によって作成する辺が前記所定の条件を満足する場合、前記辺を垂直辺に細分化する細分化処理と、
前記細分化処理によって細分化された垂直辺の辺データにはDDA計算による画像作成を省く垂直線情報を付加して細分化された垂直辺データを作成する細分化垂直辺データ作成処理と、
前記辺データ作成処理、及び細分化辺データ作成処理によって作成された辺データに基づいて前記図形を作成する図形作成処理と、
をコンピュータに実行させるプログラム。