JP3178156B2 - 描画装置 - Google Patents

描画装置

Info

Publication number
JP3178156B2
JP3178156B2 JP08539593A JP8539593A JP3178156B2 JP 3178156 B2 JP3178156 B2 JP 3178156B2 JP 08539593 A JP08539593 A JP 08539593A JP 8539593 A JP8539593 A JP 8539593A JP 3178156 B2 JP3178156 B2 JP 3178156B2
Authority
JP
Japan
Prior art keywords
edge list
clip
target
processing
list cell
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
JP08539593A
Other languages
English (en)
Other versions
JPH06274643A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP08539593A priority Critical patent/JP3178156B2/ja
Publication of JPH06274643A publication Critical patent/JPH06274643A/ja
Application granted granted Critical
Publication of JP3178156B2 publication Critical patent/JP3178156B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、入力されたデータから
ラスター画像に変換し、その画像を出力する描画装置に
関するものである。
【0002】
【従来の技術】近年、コンピュータグラフィックス(以
下、CGという)やデスクトップパブリッシング(以
下、DTPという)などの分野では、入力された文字デ
ータ、グラフィックスデータ、イメージデータ等をコン
ピュータ上で編集して、これらをディスプレイやプリン
タ等の出力装置へ出力する編集装置が開発されている。
【0003】このような編集装置による編集結果は、通
常、出力デバイスであるディスプレイやプリンタ等に対
して独立にするために、例えば解像度に依存しないよう
にベクター表現(ページ記述言語等)を使って表現され
ている。また、柔軟性のある編集と高品質の出力が要求
されているために、前記ベクター表現も複雑になり、プ
リンタ等の出力装置に出力するためには、高機能、高精
度であるベクター/ラスタ変換が必要となる。
【0004】このようなベクター/ラスタ変換で特に重
要な処理として、描画要素の部分的表示を行うクリップ
処理がある。従来のクリップ処理の手法は、クリップ領
域として矩形領域のみを対象とするものであるため、描
画要素とそのクリップ領域である矩形領域の全ての交点
を演算により求め、内部/外部を判断してクリップ対象
となる領域のみ表示する手法が一般的であり、そのよう
な処理に基づく技術は特開平1−103784号、特開
昭63−245576号、特開昭63−198174号
の公報に開示されている。
【0005】CG、DTPのように、任意形状のクリッ
プが頻繁に行われるような場合では、描画要素とクリッ
プ領域である矩形領域とが交わる交点の数が非常に多く
なるため、クリップ領域の内部/外部の判断に費やす演
算が膨大になってしまい、非常に処理時間がかかってい
た。
【0006】また、クリップ領域自体も、操作者による
編集で変化させることも要望されている。この編集は複
数のクリップ領域間の論理演算で可能であるが、従来の
方式では、そのような複数のクリップ領域間の論理演算
を行うことは、考慮されていないため、その編集は不可
能であった。
【0007】さらに問題点として次のものがあげられ
る。描画要素であるベクターの太さが1である場合、ク
リップ領域は交点の数のみで処理可能である。しかし、
そのベクターが太さを持つように改良した場合、面積を
持つ領域間でクリップ領域を求めることと同じになって
しまうので、ベクターの太さが1である場合と比べて、
交点数の増加を招き、やはり演算が膨大になってしま
い、処理時間がかかってしまう。これを解決するものと
して、特開平1−103784号公報記載の発明がある
が、この発明はクリップ領域が矩形であることを前提と
したものであり、任意形状のクリップ領域には対応でき
ない。また、ベクターが太さを持つ場合に対応するため
の処理が付加されている。
【0008】
【発明が解決しようとする課題】本発明は、上述した問
題点を解決するためになされたもので、複数のクリップ
領域の論理演算を可能とし、その演算、任意形状のクリ
ップ処理及び太さをもつベクターのクリップ処理におい
ても、高速に処理可能とする描画装置を提供することを
目的とするものである。
【0009】
【課題を解決するための手段】本発明の第1の側面によ
れば、入力された描画情報に対して描画を開始する位置
である開始点の情報及び描画を終了する位置である終了
点の情報を含むエッジリストに変換する第1のエッジリ
スト変換手段と、前記描画情報の一部を表示するクリッ
プ情報に対してエッジリストに変換する第2のエッジリ
スト変換手段と、ページ全体をクリップするエッジリス
ト又は前記第2のエッジリスト変換手段により変換され
たエッジリストを記憶する第1のクリップ情報記憶手段
と、前記第2のエッジリスト変換手段によって変換され
たクリップ情報及び前記第1のクリップ情報記憶手段に
記憶されたエッジリストをマージ処理するマージ処理手
段と、前記マージ処理手段によりマージ処理されたエッ
ジリストを記憶する第2のクリップ情報記憶手段と、前
記第1のエッジリスト変換手段によって変換された描画
情報のエッジリスト及び前記第2のクリップ情報記憶手
段に記憶されているエッジリストに基づいてクリップ処
理しエッジリストを生成するクリップ処理手段と、前記
クリップ処理手段によってクリップ処理されたエッジリ
ストに基づいて画像を生成する画像生成手段とを有して
いる。
【0010】また、本発明の第2の側面によれば、入力
された描画情報に対して描画を開始する位置である開始
点の情報及び描画を終了する位置である終了点の情報を
含むエッジリストに変換する第1のエッジリスト変換手
段と、前記描画情報の一部を表示するクリップ情報に対
してエッジリストに変換する第2のエッジリスト変換手
段と、ページ全体をクリップするエッジリスト又は前記
第2のエッジリスト変換手段により変換されたエッジリ
ストを記憶する第1のクリップ情報記憶手段と、前記第2
のエッジリスト変換手段によって変換されたクリップ情
報及び前記第1のクリップ情報記憶手段に記憶されたエ
ッジリストをマージ処理するマージ処理手段と、前記マ
ージ処理手段によりマージ処理されたエッジリストを記
憶する第2のクリップ情報記憶手段と、前記第1のエッジ
リスト変換手段によって変換された描画情報のエッジリ
スト及び前記第2のクリップ情報記憶手段に記憶されて
いるエッジリストに基づいてクリップ処理しエッジリス
トを生成するクリップ処理手段とを有している。
【0011】
【作用】本発明によれば、クリップ処理手段によるクリ
ップ処理をエッジリストを用いて行っているので、クリ
ップ処理を高速に行い、任意形状のクリップ処理を可能
とし、太さをもつベクターのクリップ処理においても高
速に処理することができる。
【0012】さらに、クリップ処理をエッジリストを用
いて行い、マージ処理手段とクリップ情報記憶手段とを
用いて、複数のクリップ領域間の論理演算を行っている
ので、複数のクリップ領域の論理演算を可能とし、さら
に、クリップ処理を高速に行い、任意形状のクリップ処
理を可能とし、太さをもつベクターのクリップ処理にお
いても高速に処理することができる。
【0013】
【実施例】図1は、本発明の描画装置の一実施例を示す
ブロック図である。図中11は描画データ入力部、12
はベクター生成部、13はフォントデータ記憶部、14
はエッジリスト生成部、15はクリップデータマージ
部、16はクリップ情報記憶部、17はクリップ処理
部、18はラスタライズ部、19はページメモリ、20
はプリンタである。まず、図2を用いてエッジリストの
説明を行う。図2(a)は、描画すべき画像を表してい
る。図2(b)は、図2(a)の画像の横方向の各スキ
ャンラインに対応したエッジリストの構成を表してい
る。つまり、各スキャンラインに対応して、塗りつぶす
領域の始点sx、終点exおよび次のエッジリストセル
を指し示すポインタnpとからなる。図2(a)の上の
2本のスキャンラインに示すように、1スキャンライン
内に2本の線分があると、エッジリストは2個のエッジ
リストセルからなり、最初のエッジリストセルのポイン
タnpは2個目のエッジリストセルを指し示している。
また、最後のエッジリストセルのポインタnpは、次に
指し示すエッジリストセルが無い状態である。この状態
のポインタnpの値をnullと示す。図1、3を用い
て初期設定の説明を行う。図示しない全体制御部から図
1に示す各構成要素部に対して初期設定信号が送られ、
各部ではメモリの初期化などが行われる。次に、クリッ
プエッジリストの初期設定として、1ページ全体をクリ
ップすると仮定したクリップエッジリストを生成する。
このクリップエッジリストを図3を用いて説明する。図
3(a)は、1ページ全体を示しており、左上の座標は
(stx,sty)、右上の座標は(enx,st
y)、左下の座標は(stx,eny)、右下の座標は
(enx,eny)であることを示している。図3
(b)は、クリップデータとして1ページ全体をクリッ
プ情報として指定している。この場合のクリップデータ
は、y座標のスキャンライン毎に作成され、エッジリス
ト内の最初のクリップエッジリストセルを指し示すポイ
ンタspと、クリップ情報本体である始点sxと終点e
xと次のエッジリストセルを指し示すポインタnpとか
らなるエッジリストセルからなっている。スキャンライ
ン毎に作成されているので、全ての始点sxと終点ex
はx座標のみからなる。この場合、実際の始点sxの値
はstxであり、終点exの値はenxである。クリッ
プ範囲は1ページ全体であるので、1スキャンライン内
に2本のエッジリストがあることは無い。したがって、
次のクリップエッジリストセルを指し示すポインタnp
の実際の値はnullである。描画データ入力部11か
ら、図3に示すように1ページ全体の矩形領域のクリッ
プ用ベクターデータがベクター生成部12に送られる。
そして、ベクター生成部12では、この情報をエッジリ
スト生成部14に送り、エッジリスト生成部14はクリ
ップデータマージ部15を通してクリップ情報記憶部1
6へ格納する。もちろんこの処理は、初期設定信号が送
られた際にクリップ情報記憶部16のみが図3(b)に
示すようなデータを生成してクリップ情報記憶部16自
身に格納してもよい。
【0014】実際に、描画データを受け取った後の処理
について、説明する。描画データ入力部11は、入力さ
れる描画データを受け取り、描画データの解釈を行っ
て、各描画データに対する処理を行い、ベクター生成部
12へ解釈した結果を送る。入力される描画データとし
ては、グラフィックデータ、文字コードデータ、ラスタ
ーデータ等のデータがある。描画データ入力部11が受
け取る描画データとしては、上記の他に、描画時に必要
な情報として、描画する線の線幅および線端の形状、描
画する線を接続する場合の接続点における接続形状、文
字を描画する際のタイプフェースなどがある。これらの
データは図示しない格納部に格納され、適宜、各部で用
いられる。また、クリップ情報も描画データ入力部11
より入力される。クリップ情報も描画データと同様にグ
ラフィックデータ、文字コードデータ、ラスターデータ
等のデータがある。クリップ情報であることを示す識別
子を付加していることを除いて、取扱いは描画データと
同じである。この識別子を用いて、後の処理であるエッ
ジリスト生成部14から送られる先は、クリップ情報の
場合はクリップデータマージ部15となり、描画データ
の場合はクリップ処理部17となる。
【0015】ベクター生成部12では、描画データ入力
部11から送られてくる描画すべきデータに応じて、ベ
クターデータを生成し、そのベクターデータをエッジリ
スト生成部14に送る。もし描画すべきデータがグラフ
ィックデータの場合には、そのグラフィックデータをス
ケール変換等の処理を行ってエッジリスト生成部14に
送る。もし描画すべきデータが文字コードデータの場合
には、その文字コードデータを利用してフォントデータ
記憶部13からフォント用ベクターデータを受け取り、
スケール変換を行ってエッジリスト生成部14に送る。
もし描画すべきデータがラスターデータの場合には、下
地の部分と異なる色の部分であるラスター領域の矩形ベ
クターを生成してエッジリスト生成部14に送る。
【0016】エッジリスト生成部14では、ベクター生
成部12から送られてくるベクターデータから、エッジ
リストを生成し、クリップ処理部17へ送る。また、エ
ッジリスト生成部14では、ベクター生成部12から送
られてくるクリップ用ベクターデータを処理してクリッ
プエッジリストを生成し、クリップデータマージ部15
へ送る。
【0017】クリップデータマージ部15では、エッジ
リスト生成部14から送られてくるクリップエッジリス
トとクリップ情報記憶部16に蓄えられているクリップ
エッジリストとをマージする。もし、クリップ情報記憶
部16にクリップエッジリストが格納されていない場
合、そのクリップエッジリストをそのままクリップ情報
記憶部16に格納する。
【0018】次にクリップデータマージ部15で行われ
る処理のフローを図5から図15を用いて説明する。こ
の処理は、2本のクリップエッジリストの始点、終点を
参照し、クリップ情報記憶部16に記憶されたクリップ
エッジリストセルの始点、終点の座標値を修正、または
新たにクリップエッジリストセルを追加することによっ
て、2本のクリップエッジリストをマージしたクリップ
エッジリストを作成することができる。この処理の説明
は、1スキャンラインのみの処理である。対象スキャン
ラインをKとする。このKを1ページ分の全てのスキャ
ンラインを対象とするように変化させた場合に1ページ
分のクリップデータのマージが行われたことになる。ま
た、この処理において、クリップ情報記憶部16に記憶
されているエッジリストをクリップエッジリストとい
い、エッジリスト生成部14から送られてきたエッジリ
ストを源エッジリストという。エッジリスト内の1単位
をエッジリストセルとする。クリップエッジリストセル
と源エッジリストセルによって表される線分の関係を図
16に示す。図16(a)ないし図16(h)での上の
線分は源エッジリストセルで表された線分であり、下の
線分はクリップエッジリストセルで表された線分であ
る。この線分が重なった部分のみがクリップされること
になる。
【0019】まず、スキャンラインKにクリップエッジ
リストがあるか否かを判断する(S601)。無けれ
ば、そのスキャンラインでは、描画が行われないので、
スキャンラインKの源エッジリストを全てフリーにし
(S603)、スキャンラインKでの処理を終了する。
あれば、最初のクリップエッジリストセルを対象クリッ
プエッジリストセルとする(S602)。
【0020】次に、スキャンラインKに源エッジリスト
があるか否かを判断する(S604)。無ければ、その
スキャンラインでは、描画が行われないので、スキャン
ラインKのクリップエッジリストを全てフリーにし(S
606)、スキャンラインKでの処理を終了する。あれ
ば、最初の源エッジリストセルを対象の源エッジリスト
セルとする(S605)。
【0021】変数CSXに対象クリップエッジリストセ
ルの始点X座標値をセットし(S607)、変数CEX
に対象クリップエッジリストセルの終点X座標値をセッ
トし(S608)、変数SXに対象の源エッジリストセ
ルの始点X座標値をセットし(S609)、変数EXに
対象の源エッジリストセルの終点X座標値をセット(S
610)する。
【0022】変数CSXと変数EXとを比較する(S6
11)。CSX>EXの場合、つまり、対象の源エッジ
リストセルで表される線分と対象クリップエッジリスト
セルで表される線分とが図16(a)の関係にある場合
であり、お互いの線分が重なっていないので、描画され
ないこととなる。この場合、図8のフローに移る。対象
の源エッジリストセルをフリーにし(S623)、次の
源エッジリストセルを対象の源エッジリストセルにする
(S624)。そして、S619の処理へ移る。
【0023】S611でNoの場合、変数CSXと変数
SX、変数CEXと変数EX、変数CSXと変数EXと
をそれぞれ比較する(S612)。CSX≧SX、CE
X>EX、CSX≦EXの場合、つまり、対象の源エッ
ジリストセルで表される線分と対象クリップエッジリス
トセルで表される線分とが図16(b)の関係にある場
合であり、お互いの線分が重なっている状態である。こ
の場合、図9のフローに移る。CEX(つまり、対象ク
リップエッジリストの終点X座標)にEXをセット(S
625)する。新しいクリップエッジリストセルを作成
し、その始点X座標にEX+1(対象の源エッジリスト
セルの終点X座標値に1加えた数値)をセットし、その
終点X座標にCEX(対象のクリップエッジリストセル
の終点X座標値)をセットし、対象クリップエッジリス
トセルの次に挿入(S626)する。そして、その新し
く作成された次のクリップエッジリストセルを対象クリ
ップエッジリストセルにする(S627)。対象の源エ
ッジリストセルをフリーにする(S628)。次の源エ
ッジリストセルを対象の源エッジリストセルとする(S
629)。そして、S619の処理へ移る。
【0024】S612でNoの場合、変数CSXと変数
SX、変数CEXと変数EX、変数CSXと変数EXと
をそれぞれ比較する(S613)。CSX≧EX、CE
X=EX、CSX≦EXの場合、つまり、対象の源エッ
ジリストセルで表される線分と対象クリップエッジリス
トセルで表される線分とが図16(c)の関係にある場
合であり、お互いの線分が重なっており、終点が同じ位
置にある状態である。この場合、図10のフローに移
る。次のクリップエッジリストセルを対象クリップエッ
ジリストセルにする(S630)。対象の源エッジリス
トセルをフリーにする(S631)。次の源エッジリス
トセルを対象の源エッジリストセルとする(S63
2)。そして、S619の処理へ移る。
【0025】S613でNoの場合、変数CSXと変数
SX、変数CEXと変数EXとをそれぞれ比較する(S
614)。CSX≧SX、CEX<EXの場合、つま
り、対象の源エッジリストセルで表される線分と対象ク
リップエッジリストセルで表される線分とが図16
(d)の関係にある場合であり、お互いの線分が重なっ
ている状態である。この場合、図11のフローに移る。
次のクリップエッジリストセルを対象クリップエッジリ
ストセルにする(S633)。SX(つまり、対象の源
エッジリストセルの始点X座標)にCEX+1(対象ク
リップエッジリストセルの終点X座標に1加えた数値)
をセットする(S634)。そして、S619の処理へ
移る。
【0026】S614でNoの場合、変数CSXと変数
SX、変数CEXと変数EXとをそれぞれ比較する(S
615)。CSX≦SX、CEX>EXの場合、つま
り、対象の源エッジリストセルで表される線分と対象ク
リップエッジリストセルで表される線分とが図16
(e)の関係にある場合であり、お互いの線分が重なっ
ている状態である。この場合、図12のフローに移る。
CSX(対象クリップエッジリストセルの始点X座表)
にSX(対象の源エッジリストセルの始点X座表)をセ
ットする(S635)。この後の処理はS625、S6
26、S627、S628、S629と同じ処理である
(S636、S637、S638、S639、S64
0)。そして、S619の処理へ移る。
【0027】S615でNoの場合、変数CSXと変数
SX、変数CEXと変数EXとをそれぞれ比較する(S
616)。CSX≦SX、CEX=EXの場合、つま
り、対象の源エッジリストセルで表される線分と対象ク
リップエッジリストセルで表される線分とが図16
(f)の関係にある場合であり、お互いの線分が重なっ
ており、終点が同じ位置にある状態である。この場合、
図13のフローに移る。S641の処理は、S635の
処理と同じである。この後の処理はS627、S62
8、S629と同じ処理である(S642、S643、
S644)。そして、S619の処理へ移る。
【0028】S616でNoの場合、変数CSXと変数
SX、変数CEXと変数EX、変数CEXと変数SXと
をそれぞれ比較する(S617)。CSX≦SX、CE
X<EX、CEX≧SXの場合、つまり、対象の源エッ
ジリストセルで表される線分と対象クリップエッジリス
トセルで表される線分とが図16(g)の関係にある場
合であり、お互いの線分が重なっている状態である。こ
の場合、図14のフローに移る。S645の処理は、S
635の処理と同じである。S646の処理は、S63
4の処理と同じである。S647の処理は、S627の
処理と同じである。そして、S619の処理へ移る。
【0029】S617でNoの場合、変数CEXと変数
SXとを比較する(S618)。CEX<SXの場合、
つまり、対象の源エッジリストセルで表される線分と対
象クリップエッジリストセルで表される線分とが図16
(h)の関係にある場合であり、お互いの線分が重なっ
ていない状態である。この場合、図15のフローに移
る。S648の処理は、S627の処理と同じである。
そして、S619の処理へ移る。
【0030】一連の比較処理を行った後、対象クリップ
エッジリストセルが無いか否かを判定する(S61
9)。S619でYesの場合は、対象クリップエッジ
リストセルが無いのでそのスキャンラインKでの処理は
終了してもよい場合である。したがって、残りの源エッ
ジリストセルを全てフリーにする(S620)。S61
9でNoの場合は、対象の源エッジリストセルが無いか
否かを判定する(S621)。S621でYesの場合
は、対象の源エッジリストセルが無いのでそのスキャン
ラインKでの処理は終了してもよい場合である。したが
って、残りのクリップエッジリストセルを全てフリーに
する(S622)。S621でNoの場合は、まだ対象
クリップエッジリストセルと対象の源エッジリストセル
が両方ある場合であるので、それぞれのエッジリストセ
ルを対象とした処理を行うため、S607の処理へ戻
る。
【0031】上記に示した図5から図15までの処理を
1ページ分の全てのスキャンラインに対して行う。これ
によって、クリップエッジリスト間の処理が行われる。
【0032】ここで、例として、クリップ領域を任意の
形にした場合の処理について説明する。図4に示す多角
形Cの内側と初期クリップ(図3に示した1ページ全体
のクリップ情報)との論理積演算を行った領域を新しい
クリップ領域にするには、多角形Cを表すクリップ用ベ
クターデータが描画データ入力部11からベクター生成
部12を経由して、エッジリスト生成部14に送られ
る。エッジリスト生成部14では、受け取ったクリップ
用ベクターデータを処理して源エッジリストを作成し、
クリップデータマージ部15へ送る。クリップデータマ
ージ部15ではスキャンライン毎に、その源エッジリス
トとクリップ情報記憶部16に蓄えられているクリップ
エッジリストとを比較しながら、図5から図15に示し
たフローチャートに従って処理して行く。その中の1例
として、図4で示したスキャンラインKについて説明す
る。図4(a)に示したクリップエッジリストと図4
(b)に示した源エッジリストを読み出し、まずcs
x、cex、x1、x2の値を比較する。この場合はc
sx<x1、cex>x2(図16(e)の関係であ
り、S615でYesとなる場合)なので、図12に示
すように対象クリップエッジリストの始点X座標にx1
をセットし(S635)、対象クリップエッジリストの
終点X座標にx2をセットして(S636)、新しいク
リップエッジリストセル(始点X座標にx2+1を、終
点X座標にcexをセットする)を作成して、対象クリ
ップエッジリストセルの次に挿入し(S637)、それ
を対象クリップエッジリストセルにする(S638)。
また、対象の源エッジリストセルをフリーして(S63
9)、次の源エッジリストセルを対象の源エッジリスト
セルにする(S640)。次に、同様にして、x2+
1、cex、x3、x4の値を比較する。この場合は
(x2+1)<x3、cex>x4(図16(e)の関
係であり、S615でYesとなる場合)なので、図1
2に示すように対象クリップエッジリストの始点X座標
にx3をセットし(S635)、対象クリップエッジリ
ストの終点X座標にx4をセットして(S636)、新
しいクリップエッジリストセル(始点X座標にx4+
1、終点X座標にcexをセットする)を作成して、対
象クリップエッジリストセルの次に挿入し(S63
7)、それを対象クリップエッジリストセルにする(S
638)。また、対象の源エッジリストセルをフリーし
て(S639)、次の源エッジリストセルを対象の源エ
ッジリストセルにする(S640)。すると、対象の源
エッジリストセルがnullになる(S621でYes
となる場合)ため、いま作った現在の対象クリップエッ
ジリストセルをフリー(S622)して終了する。結果
は、図4(c)のようになる。
【0033】次に、クリップ処理部17では、クリップ
データマージ部15によって全てのクリップデータをマ
ージした後、その結果をクリップ情報記憶部16に蓄積
しておき、そのクリップデータとエッジリスト生成部1
4によって生成された描画すべきベクターデータのエッ
ジリストとからクリップ処理を行う。
【0034】クリップ処理部17で行われる処理のフロ
ーを図18から図26を用いて説明する。この処理の説
明は、前記したクリップデータマージ部15での処理と
ほぼ同じである。クリップ処理部17での処理の説明
も、1スキャンラインのみの処理である。対象スキャン
ラインをKとする。このKを1ページ分の全てのスキャ
ンラインを対象とするように変化させた場合に1ページ
分のクリップデータを用いて描画情報のクリップ処理が
行われたことになる。また、この処理において、クリッ
プ情報記憶部16に記憶されているエッジリストをクリ
ップエッジリストといい、エッジリスト生成部14から
送られてきたエッジリストを描画エッジリストという。
エッジリスト内の1単位をエッジリストセルとする。ク
リップエッジリストセルと描画エッジリストセルによっ
て表される線分の関係を図27に示す。図27(a)な
いし図27(f)での上の線分は描画エッジリストセル
で表された線分であり、下の線分はクリップエッジリス
トセルで表された線分である。この線分が重なった部分
のみが描画されることになる。
【0035】まず、スキャンラインKにクリップエッジ
リストがあるか否かを判断する(S701)。無けれ
ば、そのスキャンラインでは、描画が行われないので、
スキャンラインKの描画エッジリストを全てフリーにし
(S703)、スキャンラインKでの処理を終了する。
あれば、最初のクリップエッジリストセルを対象クリッ
プエッジリストセルとする(S702)。
【0036】次に、スキャンラインKに描画エッジリス
トがあるか否かを判断する(S704)。無ければ、そ
のスキャンラインでは、描画が行われないので、スキャ
ンラインKのクリップエッジリストを全てフリーにし
(S706)、スキャンラインKでの処理を終了する。
あれば、最初の描画エッジリストセルを対象描画エッジ
リストセルとする(S705)。
【0037】変数CSXに対象クリップエッジリストセ
ルの始点X座標値をセットし(S707)、変数CEX
に対象クリップエッジリストセルの終点X座標値をセッ
トし(S708)、変数SXに対象描画エッジリストセ
ルの始点X座標値をセットし(S709)、変数EXに
対象描画エッジリストセルの終点X座標値をセット(S
710)する。
【0038】変数CSXと変数EXとを比較する(S7
11)。CSX>EXの場合、つまり、対象描画エッジ
リストセルで表される線分と対象クリップエッジリスト
セルで表される線分とが図27(a)の関係にある場合
であり、お互いの線分が重なっていないので、描画され
ないこととなる。この場合、図21のフローに移る。対
象描画エッジリストセルをフリーにし(S721)、次
の描画エッジリストセルを対象描画エッジリストセルに
する(S722)。そして、S717の処理へ移る。
【0039】S711でNoの場合、変数CSXと変数
SX、変数CEXと変数EX、変数CSXと変数EXと
をそれぞれ比較する(S712)。CSX≧SX、CE
X>EX、CSX≦EXの場合、つまり、対象描画エッ
ジリストセルで表される線分と対象クリップエッジリス
トセルで表される線分とが図27(b)の関係にある場
合であり、お互いの線分が重なっている状態である。こ
の場合、図22のフローに移る。SX(つまり、対象描
画エッジリストの終点X座標)にCSX(対象クリップ
エッジリストセルの始点X座標値)をセット(S72
3)する。次の描画エッジリストセルを対象描画エッジ
リストセルとする(S724)。そして、S717の処
理へ移る。
【0040】S712でNoの場合、変数CSXと変数
SX、変数CEXと変数EXとをそれぞれ比較する(S
713)。CSX≦SX、CEX≧EXの場合、つま
り、対象描画エッジリストセルで表される線分と対象ク
リップエッジリストセルで表される線分とが図27
(c)の関係にある場合であり、お互いの線分が重なっ
ている状態であり、描画エッジリストセルで表される線
分がそのまま描画される場合である。この場合、図23
のフローに移る。次の描画エッジリストセルを対象描画
エッジリストセルとする(S725)。そして、S71
7の処理へ移る。
【0041】S713でNoの場合、変数CSXと変数
SX、変数CEXと変数EXとをそれぞれ比較する(S
714)。CSX≧SX、CEX≦EXの場合、つま
り、対象描画エッジリストセルで表される線分と対象ク
リップエッジリストセルで表される線分とが図27
(d)の関係にある場合であり、お互いの線分が重なっ
ている状態である。この場合、図24のフローに移る。
SX(つまり、対象描画エッジリストセルの始点X座
標)にCSX(対象クリップエッジリストセルの始点X
座標値)をセットする(S726)。EX(つまり、対
象描画エッジリストセルの終点X座標)にCEX(対象
クリップエッジリストセルの終点X座標値)をセットす
る(S727)。新しい描画エッジリストセルを作成
し、その始点X座標にCEX+1(対象クリップエッジ
リストセルの終点X座標値に1加えた数値)をセット
し、その終点X座標にEX(対象描画エッジリストセル
の終点X座標値)をセットし、対象クリップエッジリス
トセルの次に挿入する(S728)。この新しい描画エ
ッジリストセルを対象描画エッジリストセルにする(S
729)。次のクリップエッジリストセルを対象クリッ
プエッジリストセルとする(S730)。そして、S7
17の処理へ移る。
【0042】S714でNoの場合、変数CSXと変数
SX、変数CEXと変数EX、変数CEXと変数SXと
をそれぞれ比較する(S715)。CSX≦SX、CE
X≦EX、CEX≧SXの場合、つまり、対象描画エッ
ジリストセルで表される線分と対象クリップエッジリス
トセルで表される線分とが図27(e)の関係にある場
合であり、お互いの線分が重なっている状態である。こ
の場合、図25のフローに移る。S731、S732、
S733、S734の処理は、S727、S728、S
729、S730の処理と同じである。そして、S71
7の処理へ移る。
【0043】S715でNoの場合、変数CEXと変数
SXとを比較する(S716)。CEX<SXの場合、
つまり、対象描画エッジリストセルで表される線分と対
象クリップエッジリストセルで表される線分とが図27
(f)の関係にある場合であり、お互いの線分が重なっ
ていない状態である。この場合、図26のフローに移
る。S735の処理は、S730の処理と同じである。
そして、S717の処理へ移る。
【0044】一連の比較処理を行った後、対象クリップ
エッジリストセルが無いか否かを判定する(S71
7)。S717でYesの場合は、対象クリップエッジ
リストセルが無いのでそのスキャンラインKでの処理は
終了してもよい場合である。したがって、残りの描画エ
ッジリストセルを全てフリーにし(S718)、終了す
る。S717でNoの場合は、対象描画エッジリストセ
ルが無いか否かを判定する(S719)。S719でY
esの場合は、対象描画エッジリストセルが無いのでそ
のスキャンラインKでの処理は終了してもよい場合であ
る。したがって、残りのクリップエッジリストセルを全
てフリーにし(S720)、終了する。S719でNo
の場合は、まだ対象クリップエッジリストセルと対象描
画エッジリストセルが両方ある場合であるので、それぞ
れのエッジリストセルを対象とした処理を行うため、S
707の処理へ戻る。
【0045】上記に示した図18から図26までの処理
を1ページ分の全てのスキャンラインに対して行う。こ
れによって、最終的に描画される描画エッジリストが作
成される。
【0046】ここで、例として、描画要素がクリップさ
れる動作について説明する。図17に示す多角形Pを先
程作成したクリップ領域でクリップを行うには、多角形
Pを表す描画ベクターデータが描画データ入力部11か
らベクター生成部12を経由して、エッジリスト生成部
14に送られる。エッジリスト生成部14では、受け取
った描画ベクターデータを処理して描画エッジリストを
作成し、クリップ処理部17へ送る。クリップ処理部1
7では、その描画エッジリストとクリップ情報記憶部1
6に蓄えられているクリップエッジリストを比較しなが
ら、図18から図26に示したフローチャートに従って
処理して行く。その中の1例として、図17で示したス
キャンラインKについて説明する。スキャンラインKに
おける多角形Pの描画エッジリストを受け取り、対象描
画エッジリストとする(図17(a))。スキャンライ
ンKにおけるクリップエッジリスト、つまり、図4
(c)に示したクリップエッジリストをクリップ情報記
憶部16から読み出し、対象クリップエッジリストとす
る(図17(b))。まず、csx1、cex1、x
1、x2の値を比較する。この場合は、csx1<=x
1、cex1<=x2、cex1>=x1であるので
(S715でYesの場合)、図25のフローに従って
対象描画エッジリストセルの終点X座標にcex1をセ
ットし(S731)、新しい描画エッジリストセル(始
点X座標にcex1+1、終点X座標にx2をセットす
る)を作成して、対象描画エッジリストセルの次に挿入
し(S732)、それを対象描画エッジリストセルにし
(S733)、対象クリップエッジリストセルを次のク
リップエッジリストセルにする(S734)。次は、c
sx2、cex2、cex1+1、x2の値を比較す
る。この場合は、csx2>=(cex1+1)、ce
x2<=x2であるので(S714でYesの場合)、
図24のフローに従って対象描画エッジリストセルの始
点X座標にcsx2をセットし(S726)、対象描画
エッジリストセルの終点X座標にcex2をセットし
(S727)、新しい描画エッジリストセルを作成し、
その始点X座標にcex2+1をセットし、その終点X
座標にexをセットし、対象描画エッジリストセルの次
に挿入する(S728)。対象描画エッジリストセルを
次の描画エッジリストセルにし(S729)、次のクリ
ップエッジリストセルを対象クリップエッジリストセル
とする(S730)。次は、クリップエッジリストセル
がないので、残りの描画エッジリストをフリーして終了
する。
【0047】ラスタライズ部18では、以上のようにク
リップ処理部17で処理された描画エッジリストを受け
取り、ラスター変換してページメモリ19へ書き込む。
プリンタ20は、ページメモリ19に書き込まれた情報
を印刷する。例えば、図17で示した描画エッジリスト
をプリントすると、図28のような画像を出力する。こ
こで出力装置は、プリンタに限らず、CRT等の表示装
置でもよいし、また、別の処理装置への入力であっても
よい。
【0048】
【発明の効果】クリップの処理が、クリップエッジリス
トと描画要素のエッジリストの始点座標値と終点座標値
との簡単な比較の繰り返しで行えるために、任意形状の
クリッッピングを、非常に高速に処理できる。また、複
数のクリップ領域の論理演算に対しても、同様なエッジ
リストの始点座標値と終点座標値との簡単な比較の繰り
返しと、簡単な操作によってエッジリストの再構築がで
きるために、非常に高速になる。またこれらは、太さを
もつベクターであっても余分な処理を必要としないため
に同様に、高速化のメリットが得られる。
【図面の簡単な説明】
【図1】本実施例のブロック図である。
【図2】エッジリストの説明図である。
【図3】クリップエッジリストの初期設定例を示す図で
ある。
【図4】クリップエッジリストのマージ例を示す図であ
る。
【図5】クリップエッジリスト間のマージ処理のフロー
チャートである。
【図6】クリップエッジリスト間のマージ処理のフロー
チャートである。
【図7】クリップエッジリスト間のマージ処理のフロー
チャートである。
【図8】クリップエッジリスト間のマージ処理のフロー
チャートである。
【図9】クリップエッジリスト間のマージ処理のフロー
チャートである。
【図10】クリップエッジリスト間のマージ処理のフロ
ーチャートである。
【図11】クリップエッジリスト間のマージ処理のフロ
ーチャートである。
【図12】クリップエッジリスト間のマージ処理のフロ
ーチャートである。
【図13】クリップエッジリスト間のマージ処理のフロ
ーチャートである。
【図14】クリップエッジリスト間のマージ処理のフロ
ーチャートである。
【図15】クリップエッジリスト間のマージ処理のフロ
ーチャートである。
【図16】クリップエッジリスト間の関係を示す図であ
る。
【図17】エッジリストのクリップ例を示す図である。
【図18】クリップ処理のフローチャートである。
【図19】クリップ処理のフローチャートである。
【図20】クリップ処理のフローチャートである。
【図21】クリップ処理のフローチャートである。
【図22】クリップ処理のフローチャートである。
【図23】クリップ処理のフローチャートである。
【図24】クリップ処理のフローチャートである。
【図25】クリップ処理のフローチャートである。
【図26】クリップ処理のフローチャートである。
【図27】エッジリストとクリップエッジリストとの関
係を示す図である。
【図28】出力画像の説明図である。
【符号の説明】
11 描画データ入力部 12 ベクター生成部 13 フォントデータ記憶部 14 エッジリスト生成部 15 クリップデータマージ部 16 クリップ情報記憶部 17 クリップ処理部 18 ラスタライズ部 19 ページメモリ 20 プリンタ

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】入力された描画情報に対して描画を開始す
    る位置である開始点の情報及び描画を終了する位置であ
    る終了点の情報を含むエッジリストに変換する第1のエ
    ッジリスト変換手段と、 前記描画情報の一部を表示するクリップ情報に対してエ
    ッジリストに変換する第2のエッジリスト変換手段と、 ページ全体をクリップするエッジリスト又は前記第2の
    エッジリスト変換手段により変換されたエッジリストを
    記憶する第1のクリップ情報記憶手段と、 前記第2のエッジリスト変換手段によって変換されたク
    リップ情報及び前記第1のクリップ情報記憶手段に記憶
    されたエッジリストをマージ処理するマージ処理手段
    と、 前記マージ処理手段によりマージ処理されたエッジリス
    トを記憶する第2のクリップ情報記憶手段と、 前記第1のエッジリスト変換手段によって変換された描
    画情報のエッジリスト及び前記第2のクリップ情報記憶
    手段に記憶されているエッジリストに基づいてクリップ
    処理しエッジリストを生成するクリップ処理手段と、 前記クリップ処理手段によってクリップ処理されたエッ
    ジリストに基づいて画像を生成する画像生成手段とを有
    することを特徴とする描画装置。
  2. 【請求項2】 入力された描画情報に対して描画を開始
    する位置である開始点の情報及び描画を終了する位置で
    ある終了点の情報を含むエッジリストに変換する第1の
    エッジリスト変換手段と、 前記描画情報の一部を表示するクリップ情報に対してエ
    ッジリストに変換する第2のエッジリスト変換手段と、 ページ全体をクリップするエッジリスト又は前記第2の
    エッジリスト変換手段により変換されたエッジリストを
    記憶する第1のクリップ情報記憶手段と、前記第2のエッ
    ジリスト変換手段によって変換されたクリップ情報及び
    前記第1のクリップ情報記憶手段に記憶されたエッジリ
    ストをマージ処理するマージ処理手段と、 前記マージ処理手段によりマージ処理されたエッジリス
    トを記憶する第2のクリップ情報記憶手段と、 前記第1のエッジリスト変換手段によって変換された描
    画情報のエッジリスト及び前記第2のクリップ情報記憶
    手段に記憶されているエッジリストに基づいてクリップ
    処理しエッジリストを生成するクリップ処理手段とを有
    することを特徴とする描画装置。
JP08539593A 1993-03-19 1993-03-19 描画装置 Expired - Fee Related JP3178156B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08539593A JP3178156B2 (ja) 1993-03-19 1993-03-19 描画装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08539593A JP3178156B2 (ja) 1993-03-19 1993-03-19 描画装置

Publications (2)

Publication Number Publication Date
JPH06274643A JPH06274643A (ja) 1994-09-30
JP3178156B2 true JP3178156B2 (ja) 2001-06-18

Family

ID=13857589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08539593A Expired - Fee Related JP3178156B2 (ja) 1993-03-19 1993-03-19 描画装置

Country Status (1)

Country Link
JP (1) JP3178156B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005586A (en) * 1996-02-17 1999-12-21 Fuji Xerox Co., Ltd. Drawing processing apparatus
JP3008943B1 (ja) 1998-08-18 2000-02-14 富士ゼロックス株式会社 画像処理装置および画像処理方法
US6831660B1 (en) 2000-06-15 2004-12-14 International Business Machines Corporation Method and apparatus for graphics window clipping management in a data processing system

Also Published As

Publication number Publication date
JPH06274643A (ja) 1994-09-30

Similar Documents

Publication Publication Date Title
US4674058A (en) Method and apparatus for flexigon representation of a two dimensional figure
EP0360155B1 (en) Image transformation method and device
EP0396311B1 (en) Image processing apparatus and method
JP2925587B2 (ja) ラスタ化方法
EP0438038B1 (en) Graphics processor
JPH076233A (ja) 曲線を描く装置及び方法
US7948494B2 (en) Character rendering device, display device, and printer
US4849907A (en) Draw processing method and apparatus
GB2115657A (en) Method of storing characters and photo-typsetting apparatus
JP3178156B2 (ja) 描画装置
US4974172A (en) Image processing apparatus
JP3034140B2 (ja) 文字生成方法及びその装置
EP0339758B1 (en) Image processing apparatus for performing projective transformations
JP2806679B2 (ja) 文字発生装置
JP3493745B2 (ja) 図形描画装置
JP2787497B2 (ja) 図形描画方法及び装置
JP2782752B2 (ja) 文字パターン出力装置
JP3517982B2 (ja) 図形描画装置
JP3211591B2 (ja) イメージ処理装置
JP2626792B2 (ja) 毛筆描画方法
JPH049338B2 (ja)
JPH0553559A (ja) 線幅決定方式
JP3244411B2 (ja) キャラクタイメージデータ生成方法及び装置並びにキャラクタ出力方法及び装置
JPS62205482A (ja) Crtデイスプレイ装置のセグメント発生回路
JPH079622B2 (ja) Crtディスプレイ装置のセグメント発生回路

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080413

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090413

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100413

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees