JP2001034772A - 図形処理装置および図形処理方法 - Google Patents

図形処理装置および図形処理方法

Info

Publication number
JP2001034772A
JP2001034772A JP20580299A JP20580299A JP2001034772A JP 2001034772 A JP2001034772 A JP 2001034772A JP 20580299 A JP20580299 A JP 20580299A JP 20580299 A JP20580299 A JP 20580299A JP 2001034772 A JP2001034772 A JP 2001034772A
Authority
JP
Japan
Prior art keywords
display list
vector
processing
value indicating
overlap
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.)
Pending
Application number
JP20580299A
Other languages
English (en)
Inventor
Takashi Nagao
隆 長尾
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
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 filed Critical Fuji Xerox Co Ltd
Priority to JP20580299A priority Critical patent/JP2001034772A/ja
Publication of JP2001034772A publication Critical patent/JP2001034772A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Record Information Processing For Printing (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 クリップ要素が含まれている場合でも、予め
描画要素のクリップ処理を行うことなく、重なり除去可
能な図形処理装置を実現する。 【解決手段】 描画要素とクリップ要素とが混在したデ
ィスプレイリストにおいて、描画要素を構成する直線ベ
クターに関するディスプレイリスト中のベクター方向を
示す値と、クリップ要素を構成する直線ベクターのベク
ター方向を示す値とを異なる値に設定し、さらに併合領
域を構成する直線ベクターのベクター方向を示す値とし
て、描画要素およびクリップ要素のベクター方向を示す
値のいすれとも異なる値を設定してモード判定を行なう
ことにより、予め描画要素のクリップ処理を行うことな
く混在ディスプレイリストの重なり除去を可能な構成と
した。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プリンタやディス
プレイ装置などへ出力を行なうために、図形やアウトラ
インデータで表現された文字などの描画を行う図形処理
装置および図形処理方法に関する。
【0002】
【従来の技術】図形やアウトラインデータで表現された
文字を扱うエディタ、CAD/CAMシステムなどで
は、それをプリンタやディスプレイ装置に出力するため
に、図形の描画処理が行われる。このような描画は、例
えば図2に示すようなブロックを使って処理が進められ
る。
【0003】図2において、まず、ユーザ指示や外部か
らの入力により図形や文字の描画命令が入力されると、
命令解釈部1により解釈され、ベクターデータ生成部2
に入力される。ベクターデータ生成部2は、文字の場合
にはフォント管理部3に要求して文字のアウトラインを
表現するベクターデータを取得する。ストローク(線)
図形は、太さや接続部分の形状をもとに例えば図3に示
すようなベクターデータに変換される。このように変換
された文字、ストローク図形、フィル(塗りつぶし)図
形は、ディスプレイリスト生成部4に入力される。
【0004】ディスプレイリスト生成部4では、まずベ
ジエ、スプラインなどで表現された曲線部分を微小直線
で近似し、図4に示すような多角形のベクターデータに
変換する。次に図7に示すようなディスプレイリスト形
式の表現に変換する。ディスプレイリストは、多角形を
構成するベクターに関するデータの一例として、Di
r:方向フラグ(上向きの場合は+1、下向きの場合は
−1)、Xs:ベクター開始点のX座標、Ye:ベクタ
ー終了点のY座標、Dx:Y座標の+1増加に対するX
の変化量(傾き)、の4つの要素データを持つ。多角形
からディスプレイリストへの変換については、さらに後
段で詳述する。
【0005】このようにして生成されたディスプレイリ
ストデータは、ディスプレイリスト描画部9に入力され
る。ディスプレイリスト描画部9では、入力されたディ
スプレイリストの各辺と出力デバイスの各スキャンライ
ンとの交点座標をDDA(Digital Diffe
rential Analyzer)などの手法で計算
し、各スキャンライン毎にX座標値でソートして塗りつ
ぶしの始点/終点の対応を求め、その区間に対応した、
スキャンラインに平行な線分をメモリ部10上に描画す
る。このようにして描画されたメモリデータをプリンタ
やディスプレイ装置などの出力デバイス11に転送する
ことで、印刷や表示が行われる。
【0006】このような図形描画処理において、ディス
プレイリスト描画部9の動作は、各辺毎のDDAやソー
ト、メモリ描画などを含んでいるため重い処理となり、
特にグラデーションなど重なりを含む複雑な図形を描画
する際には、同じメモリ領域に何度も上書きが発生し、
全体の処理速度を落とす大きな要因となる。さらに近年
のプリンタ装置のように、描画命令を多角形やディスプ
レイリスト、エッジリストなどのレベルで蓄積すること
でページメモリを削減し、プリンタの印字速度に合わせ
てリアルタイムに画像形成を行いながら出力する場合に
は、重なりの多い複雑な部分で画像形成が間に合わずに
絵抜けが生じる可能性がある。
【0007】従来、上記の問題を解決する試みとして、
描画要素から重なりを除去することで処理の高速化やリ
アルタイム描画を行う手法が提案されている。このよう
な考え方を用いた従来技術としては、特開平8−279
050号公報や特開平9−62851号公報、特開平9
−171563号公報、特開平9−281953号公報
などがある。
【0008】
【発明が解決しようとする課題】特開平8−27905
0号公報や特開平9−62851号公報の手法は、描画
要素をエッジリストの形式で蓄積し、同じスキャンライ
ンに対する描画を行うエッジ情報を比較して重なりがあ
る場合にこれを除去するものである。しかし、エッジリ
ストでの描画要素の蓄積は、近年のプリンタ装置のよう
に解像度が高くなると蓄積すべきデータ量が膨大とな
り、メモリコストが増大するなどの欠点がある。
【0009】特開平9−171563号公報や特開平9
−281953号公報の手法は、描画要素を多角形デー
タの形式で蓄積し、2つの多角形について重なり判定を
行い、重なりがある場合にこれを除去するものである。
しかし、多角形レベルで重なり除去を行うためには、多
角形が単純な凸型になっている必要があり、凹型や辺の
交差を含む多角形についてはこれを分割して凸型にする
などの前処理が必要である。また、重なり判定/オーバ
ーレイグラフなどで対象を絞ってはいるものの、基本的
に2つの多角形間の重なり除去を行う方式なので、N個
の処理対象の重なりを完全に除去するためにはN!回の
処理が必要となる。
【0010】このような問題に対して、本願の発明者
は、特願平11−16844号において、ディスプレイ
リスト形式で表現された描画要素間の重なりを除去する
重なり除去手段を持ち、エッジリストと比較して高解像
度の場合でも少ないメモリ量での蓄積を可能とし、また
凸形状に分割するなどの複雑な前処理を行わずかつN回
の処理で重なり除去が可能な図形処理装置を提案した。
【0011】上記の特願平11−16844号で提案さ
れた方式では、最前面に表示または印刷出力される上層
の描画要素に対応するディスプレイリストから下層の描
画要素に対応するディスプレイリストを順次取り出し、
その描画要素よりも上層に描画される描画要素全体を示
す併合領域ディスプレイリストとの間で重なり除去処理
を行うとともに、対象ディスプレイリストと併合領域デ
ィスプレイリストとの併合処理を行って新たな併合領域
ディスプレイリストを生成することで、描画要素の重な
り除去を実現している。
【0012】しかしながら、上記の提案方式では、描画
命令中に描画要素がメモリ描画される領域を制限するク
リップ要素が含まれている場合には、予め描画要素をク
リップ要素でクリップ処理して描画要素のみのディスプ
レイリストに変換しておく必要があり、パフォーマンス
が低下するという欠点があった。
【0013】本発明は以上の点を考慮してなされたもの
であり、クリップ要素が含まれている場合でも、予め描
画要素のクリップ処理を行う事無しに、重なり除去可能
な図形処理装置および図形処理方法を実現する事を目的
とする。
【0014】
【課題を解決するための手段】本発明は、上記の目的を
達成するために成された図形処理装置に関するものであ
る。即ち、本発明は、図形の描画処理を行う図形処理装
置において、図形の描画要素やクリップ要素を記述する
ベクター情報を、前記描画要素やクリップ要素を構成す
るベクターの形状を多角形近似した直線ベクター情報に
変換し、前記直線ベクター情報中に含まれる各直線ベク
ターをベクター開始スキャンライン座標値に基づいてソ
ートして該各直線ベクターの方向、傾き、および横切る
スキャンライン数、またはそれらと等価なデータを含む
情報によって構成されるディスプレイリストを生成する
ディスプレイリスト生成手段と、前記ディスプレイリス
ト生成手段によって生成された、描画要素を表わすディ
スプレイリストと、当該描画要素の描画領域を制限する
クリップ要素を表わすディスプレイリストとをマージ処
理し、描画要素とクリップ要素とが混在したディスプレ
イリストを生成するマージ処理手段と、前記ディスプレ
イリストを蓄積するディスプレイリスト格納手段と、描
画領域に重なりを有する複数のディスプレイリストか
ら、前記描画領域の重なりを除去した新たなディスプレ
イリストを生成する重なり除去手段と、前記新たなディ
スプレイリストの表現する図形を描画するディスプレイ
リスト描画手段とを有することを特徴とする。
【0015】さらに、本発明の図形処理装置において、
前記重なり除去手段は、処理対象のディスプレイリスト
中に描画要素のディスプレイリストとクリップ要素のデ
ィスプレイリストとが混在する場合にも、予め描画要素
のみのディスプレイリストへの変換処理を行なわずに重
なり除去処理を実行する構成を有することを特徴とす
る。
【0016】さらに、本発明の図形処理装置において、
前記マージ処理手段は、生成する前記混在したディスプ
レイリストにおいて、描画要素を構成する直線ベクター
に関するディスプレイリスト中のベクター方向を示す値
と、クリップ要素を構成する直線ベクターに関するディ
スプレイリスト中のベクター方向を示す値と、を異なる
値に設定することを特徴とする。
【0017】さらに、本発明の図形処理装置において、
前記マージ処理手段は、描画要素を構成する直線ベクタ
ーのベクター方向を示す値と、クリップ要素を構成する
直線ベクターのベクター方向を示す値とのいずれか一方
の値を他方の値の2のべき乗倍となる値に設定する構成
を有することを特徴とする。
【0018】さらに、本発明の図形処理装置において、
前記重なり除去手段は、最前面に表示または印刷出力さ
れる上層の描画要素に対応するディスプレイリストから
下層の描画要素に対応するディスプレイリストを順次、
前記ディスプレイリスト格納手段から取り出して、該取
り出した複数の描画要素に対応するディスプレイリスト
に基づいて重なり除去処理を行うことを特徴とする。
【0019】さらに、本発明の図形処理装置において、
前記重なり除去手段は、前記重なり除去処理の対象とな
った複数の描画要素の描画領域全体を示す併合領域ディ
スプレイリストを生成して、新たに前記ディスプレイリ
スト格納手段から取り出されるディスプレイリストとの
新たな重なり除去処理を行うことを特徴とする。
【0020】さらに、本発明の図形処理装置において、
前記重なり除去手段は、処理対象のディスプレイリスト
と、処理対象よりも上層に描画される描画要素全体を示
す併合領域ディスプレイリストをマージして処理を行
い、前記マージを行う際に、併合領域を構成する直線ベ
クターのベクター方向を示す値として、描画要素を構成
する直線ベクターのベクター方向を示す値とも、クリッ
プ要素を構成する直線ベクターのベクター方向を示す値
とも異なる値を用いることを特徴とする。
【0021】さらに、本発明の図形処理装置において、
前記重なり除去手段は、前記処理対象のディスプレイリ
ストの上層に描画される描画要素全体を示す併合領域デ
ィスプレイリストを、前記処理対象のディスプレイリス
トの存在範囲でクリップ処理した範囲についてマージ処
理を実行する構成を有することを特徴とする。
【0022】さらに、本発明の図形処理装置において、
前記重なり除去手段は、描画要素を構成する直線ベクタ
ーのベクター方向を示す値と、クリップ要素を構成する
直線ベクターのベクター方向を示す値と、併合領域を構
成する直線ベクターのベクター方向を示す値として、そ
れぞれが2のべき乗倍の関係となる値を設定することを
特徴とする。
【0023】さらに、本発明の図形処理装置において、
前記重なり除去手段は、描画要素を構成する直線ベクタ
ーのベクター方向を示す値と、クリップ要素を構成する
直線ベクターのベクター方向を示す値と、併合領域を構
成する直線ベクターのベクター方向を示す値とに基づい
て、塗りつぶしの有効および無効領域を決定するモード
判定処理を実行する構成を有することを特徴とする。
【0024】さらに、本発明の図形処理装置において、
前記重なり除去手段は、描画要素を構成する直線ベクタ
ーのベクター方向を示す値と、クリップ要素を構成する
直線ベクターのベクター方向を示す値と、併合領域を構
成する直線ベクターのベクター方向を示す値を用いたビ
ット演算処理によって前記モード判定処理を実行する構
成を有することを特徴とする。
【0025】さらに、本発明の図形処理装置において、
前記ディスプレイリストを出力領域を分割した各部分領
域毎に分割する部分領域分割処理手段を備え、前記重な
り除去手段は前記部分領域毎に重なり除去処理を実行す
る構成であることを特徴とする。
【0026】さらに、本発明は図形の描画処理を行う図
形処理方法において、図形の描画要素やクリップ要素を
記述するベクター情報を、前記描画要素やクリップ要素
を構成するベクターの形状を多角形近似した直線ベクタ
ー情報に変換し、前記直線ベクター情報中に含まれる各
直線ベクターをベクター開始スキャンライン座標値に基
づいてソートして該各直線ベクターの方向、傾き、およ
び横切るスキャンライン数、またはそれらと等価なデー
タを含む情報によって構成されるディスプレイリストを
生成するディスプレイリスト生成ステップと、前記ディ
スプレイリスト生成ステップによって生成された、描画
要素を表わすディスプレイリストと、当該描画要素の描
画領域を制限するクリップ要素を表わすディスプレイリ
ストとをマージ処理し、描画要素とクリップ要素とが混
在したディスプレイリストを生成するマージ処理ステッ
プと、前記ディスプレイリストをディスプレイリスト格
納手段に蓄積するディスプレイリスト格納ステップと、
最前面に表示または印刷出力される上層の描画要素に対
応するディスプレイリストから下層の描画要素に対応す
るディスプレイリストを順次、前記ディスプレイリスト
格納手段から取り出して、該取り出した複数の描画要素
に対応するディスプレイリストに基づいて重なり除去処
理を実行して新たなディスプレイリストを生成する重な
り除去処理ステップと、前記新たなディスプレイリスト
の表現する図形を描画するディスプレイリスト描画ステ
ップとを有することを特徴とする。
【0027】さらに、本発明の図形処理方法において、
前記重なり除去処理ステップは、処理対象のディスプレ
イリストと、処理対象よりも上層に描画される描画要素
全体を示す併合領域ディスプレイリストをマージするマ
ージ処理を含み、前記マージ処理は、併合領域を構成す
る直線ベクターのベクター方向を示す値として、描画要
素を構成する直線ベクターのベクター方向を示す値と
も、クリップ要素を構成する直線ベクターのベクター方
向を示す値とも異なる値を設定する併合領域ベクター方
向値設定処理を含むことを特徴とする。
【0028】さらに、本発明の図形処理装置において、
前記重なり除去処理ステップは、描画要素を構成する直
線ベクターのベクター方向を示す値と、クリップ要素を
構成する直線ベクターのベクター方向を示す値と、併合
領域を構成する直線ベクターのベクター方向を示す値と
に基づいて、塗りつぶしの有効および無効領域を決定す
るモード判定処理を含むことを特徴とする。
【0029】
【発明の実施の形態】以下、図面に基づき本発明に係わ
る図形処理装置および図形処理方法の実施例について説
明する。
【0030】
【実施例】図1は、本発明の図形処理装置の実施例を示
すブロック図である。同図において、図形処理装置は、
命令解釈部1と、ベクターデータ生成部2と、フォント
管理部3と、ディスプレイリスト生成部4と、ディスプ
レイリスト格納部5と、部分領域分割部6と、マージ処
理部7と、重なり除去処理部8と、ディスプレイリスト
描画部9と、メモリ部10と、出力デバイス11とを含
んで構成されている。
【0031】以下、本実施例の各構成要素の概要および
動作について説明する。
【0032】命令解釈部1は、入力された文字/図形な
どの描画命令を解釈し、次のベクターデータ生成部2が
理解できる形式に変換するものである。PostScr
ipt(米国アドビ・システムズ社商標)やInter
press(米国ゼロックス社商標)などのページ記述
言語では、これらの描画命令は文字列やバイナリ列とし
て与えられるので、そのような場合には命令解釈部1は
トークンを切り出し、字句解釈などを行って内部の描画
命令に変換する。
【0033】ベクターデータ生成部2は、命令解釈部1
からの入力を受けて、ベクターデータを生成する。入力
がフィル(塗りつぶし)図形の場合は、命令解釈部1か
ら図形の輪郭を表現するベクターと、偶奇規則/非零規
則などの塗りつぶし規則と、曲線を直線近似する場合の
精度を指示するフラットネス(flatness)値
や、描画色などが与えられるので、その情報をそのまま
出力する。入力がストローク(線)図形の場合には、線
を表現するベクターと、線幅/線種/終端形状/接続形
状などの線属性と、曲線を直線近似する場合の精度を指
示するフラットネス値や、描画色などが与えられるの
で、このうちのベクターと線属性の情報を使って、図3
に示すような輪郭ベクターを生成し、残りの情報ととも
に出力する。入力が文字の場合には、文字コードと、フ
ォントIDと、描画位置や描画色などの情報が与えられ
るので、このうちの文字コードとフォントID、描画位
置の情報をフォント管理部3に送って文字の輪郭ベクタ
ーを取得し、残りの情報とともに出力する。
【0034】フォント管理部3は、各種フォントに対す
るアウトラインベクターデータを記憶するとともに、与
えられた文字コードとフォントIDによって、その文字
に対するアウトラインベクターデータを提供する。
【0035】上記の処理により、入力された文字/図形
は全て、輪郭を表現するベクターデータと描画色、フラ
ットネス値、塗りつぶし規則の情報に変換される。ディ
スプレイリスト生成部4は、これらの入力されたベクタ
ーデータ中に曲線が含まれている場合には、まずその曲
線部分を、誤差がフラットネス値で指定された精度以下
となるように、微小な直線ベクターで近似する処理を行
う。例えば曲線のベクターには、図5に示す4つの制御
点で表現されるベジエ曲線が使われる。この場合直線ベ
クター化の処理は、図5に示す通りベジエ曲線を再帰的
に分割し、高さ(距離d)がフラットネス値より小さく
なった時点で分割を終了する。そして分割された各ベジ
エ曲線の始点と終点を順番に結ぶことにより、直線ベク
ター化が完了する。
【0036】このように直線近似されたベクターデータ
を基にして、ディスプレイリスト生成部4は、次にこれ
をディスプレイリスト形式の表現に変換する。ここでデ
ィスプレイリストとは、例えば図6に示したようなもの
である。入力された多角形ベクターは、始めに各頂点の
Y座標が整数になるように変換される。具体的には、各
辺についてY座標の小さい方の頂点は切上げし、大きい
方の頂点は切捨てし、各辺の傾きが変わらないように整
数化誤差をX座標値で補正する。このようにしてY座標
値を整数化した後、同じ開始Y座標を持つ辺が集められ
てリストで接続される。リストの各要素には、その辺の
方向が上向きか下向きかを+1/−1で表す方向フラグ
Dirと、開始点YsにおけるX座標値Xsと、終了点
のY座標値Yeと、Y座標値の+1増加に対するX座標
値の変化量で表した辺の傾きDxとが格納される。尚、
水平に近い辺など、どのスキャンラインも横切らないも
のについては、ディスプレイリストの要素に登録されな
い。
【0037】このようにして生成されたディスプレイリ
ストは、ディスプレイリスト格納部5に蓄積される。
【0038】これまでの説明は描画要素を対象に行った
が、クリップ領域を表わすクリップ要素についても(色
などが含まれないことを除いて)ほぼ同様に処理が行わ
れ、ディスプレイリストが生成される。ディスプレイリ
スト格納部5には、描画要素に先立って生成されたクリ
ップ要素のディスプレイリストが一時保持されており、
そのクリップ領域中に描画される描画要素が入力されて
ディスプレイリスト化された場合には、マージ処理部7
によりクリップ領域のディスプレイリストとマージさ
れ、再度ディスプレイリスト格納部5に出力される。
【0039】このマージ処理は、図7に示すように、デ
ィスプレイリスト格納部5に一時保持されているクリッ
プ要素(図7における太線)のディスプレイリストの各
辺と、描画要素(図7の細線)のディスプレイリストの
各辺とを、開始スキャンラインの昇順に混合し、かつそ
の際にクリップ要素に含まれている辺については、Di
rを特定の値(図7では±256)に変更する。このD
ir値は、1つのスキャンラインに交差する最大辺数の
2倍以上であればよく、上限がわからない場合には余裕
を持って大きな値を使うこともできる。また、この特定
の値として、256のように2のべき乗を用いると、±
1からの変更が乗算ではなくビットシフトで行え、さら
に後述のように重なり除去処理時の判定処理をビット演
算で行える等、処理をより簡単にできるという効果があ
る。
【0040】以下では、通常128本以上の辺が同一ス
キャンライン中にあることはないとして、256で説明
を行う。尚、マージ時に、両方の要素が共通に存在する
矩形領域やX座標領域またはY座標領域の範囲でディス
プレイリストをクリップすれば、処理をやや高速化でき
る。その一例として、共通Y座標領域でクリップしてマ
ージした例を図8に示す。
【0041】ここまでの処理で、それぞれの描画要素
は、それを表現するディスプレイリストと(もしあれ
ば)その描画要素のクリップ領域を表現するクリップ要
素のディスプレイリストとが混在したディスプレイリス
トに変換される。
【0042】このようにして生成/蓄積されたディスプ
レイリストは、部分領域分割部6により、図9に図示す
るように、ページを所定の幅で分割した部分領域(以
下、バンドと称す)毎に分割され、各バンド毎にディス
プレイリスト格納部5に蓄積される。
【0043】バンド分割するのは、ダブルバッファ方式
により描画/出力することで、メモリ部10の容量を2
バンド分に低減するためである。メモリ部10は、図9
に示すようなページを水平の短冊状に分割した領域の2
個分の容量を持ち、交互に描画と出力デバイス11への
転送が行われる。尚、図9に示す例では、ページを4バ
ンドに分割しているが、分割数はメモリ部10の容量や
処理装置の構成などに基づいて、任意に設定することが
できる。
【0044】尚、ここまでの説明では、ディスプレイリ
スト生成→マージ処理→部分領域分割の順で処理を行っ
たが、ディスプレイリスト生成→部分領域分割→マージ
処理の順で行っても全く問題はない。
【0045】このようにしてバンド単位に分割されて蓄
積された複数のディスプレイリストは、重なり除去処理
部8により重なり除去処理が行われ、再度ディスプレイ
リスト格納部5に格納される。この重なり除去の各処理
については、後段で詳述する。
【0046】このようにして生成/蓄積されたディスプ
レイリストは、1個づつディスプレイリスト描画部9に
入力される。ディスプレイリスト描画部9は、入力され
たディスプレイリストの各辺と出力デバイスの各スキャ
ンラインとの交点座標をDDA(Digital Di
fferential Analyzer)などの手法
で計算し、各スキャンライン毎にX座標値でソートして
塗りつぶしの始点/終点の対応を求め、その区間に対応
した、スキャンラインに平行な線分をメモリ部10上に
描画する。このようにして描画されたメモリデータをプ
リンタやディスプレイ装置などの出力デバイス11に転
送することで、印刷や表示が行われる。
【0047】以上、本発明の図形処理装置の概要につい
て記述した。次に、本発明の主要部である重なり除去処
理部8について詳細に説明する。
【0048】図10は、重なり除去処理部8の実施の一
例を表わすブロック図である。重なり除去処理部8は、
重なり除去制御部81と、アクティブリスト制御部82
と、ディスプレイリストを一時記憶する第1のディスプ
レイリスト記憶部83と第2のディスプレイリスト記憶
部84とから構成されている。
【0049】重なり除去制御部81は、初めに、ディス
プレイリスト格納部5に格納されたディスプレイリスト
を描画順の後ろから取り出し、第2のディスプレイリス
ト記憶部84に一時記憶されたディスプレイリストとマ
ージして新たなディスプレイリストを生成する。
【0050】描画順の後ろから取り出す、という意味に
ついて簡単に説明する。一般的な描画において複数の描
画要素を含む場合、例えば三角形Aの上に一部重なりを
持って四角形Bを描画し、さらに四角形Bに一部重なり
を持って円Cを描画する場合、ディスプレイリスト格納
部5に保持される各描画要素A,B、Cのディスプレイ
リストの各々はA、B、Cの順に並べられる。これは、
まず描画要素Aに関するディスプレイリスト処理を先に
行って、その後、描画要素Bのディスプレイリストの処
理を行うことによってAの描画データの上にBを上書き
し、さらに、最後にCのディスプレイリスト処理を行う
ことで、描画要素Cを描画要素A、Bの上に上書きする
処理を行うためである。このようにディスプレイリスト
格納部5には、印刷上、あるいは画面上において最下層
となる描画要素のディスプレイリストから順に最前面表
示される描画要素のディスプレイリストまでを順番に配
列して保持している。
【0051】本発明の図形処理装置においては、このよ
うな複数の描画要素に対応する複数のディスプレイリス
トがディスプレイリスト格納部5に記憶されている場
合、後列に位置する、すなわち最前面表示すべき描画要
素に関するディスプレイリストから先にディスプレイリ
スト格納部5から取り出す。例えば上述したように、三
角形Aの上に一部重なりを持って四角形Bが描画され、
さらに四角形Bに一部重なりを持って、円Cが描画され
る構成を有する場合、ディスプレイリスト格納部5に
は、ディスプレイリストA、ディスプレイリストB、デ
ィスプレイリストCの順に並べられて記憶されている。
この場合、本発明の図形処理装置では、ディスプレイリ
ストC、ディスプレイリストB、ディスプレイリストA
の順に取り出す。
【0052】ディスプレイリスト格納部5に格納された
ディスプレイリストを描画順の後ろから取り出し、第2
のディスプレイリスト記憶部84に一時記憶されたディ
スプレイリストとマージして新たなディスプレイリスト
を生成する際に、後の処理の必要性から、第2のディス
プレイリスト記憶部84に含まれているベクターについ
ては、Dirを特定の値(例えば±65536)に変更
してマージする。この値65536は、クリップベクタ
のDir値として使用した256に基づいて256×2
56の計算結果によって得られる値である。
【0053】この値は、クリップ要素のディスプレイリ
ストをマージした時と同様に、1つのスキャンラインに
交差する最大ベクタ数の2×(クリップベクタのDir
値)倍以上であればよく、上限がわからない場合には余
裕を持って大きな値を使うこともできる。以下では、通
常128本以上のベクタが同一スキャンライン中にある
ことはなくかつクリップベクタのDir値として±25
6を使用したものとして、Dirの値として±6553
6を用いた例で説明を行う。尚、クリップ要素とのマー
ジの際に述べたと同様に、65536は2のべき乗であ
り、±1からの変更をビットシフト演算で行う事がで
き、さらに後述の判定処理をビット演算で行える。
【0054】尚、マージ時に、第2のディスプレイリス
ト記憶部84に一時記憶されたディスプレイリストを、
ディスプレイリスト格納部5から読み出したディスプレ
イリストのYの存在範囲でクリップすれば処理をやや高
速化できる。図11にマージしたディスプレイリストの
例を示す。図11において、破線で示される領域は併合
領域、すなわち第2のディスプレイリスト記憶部84に
一時記憶されたディスプレイリストであり、この破線領
域のベクタについてはDir値として±65536が用
いられている。
【0055】図12に第2のディスプレイリスト記憶部
84に一時記憶されたディスプレイリストをディスプレ
イリスト格納部5から読み出したディスプレイリストの
Yの存在範囲でクリップしてマージした例を示す。
【0056】以下、重なり除去制御部8の動作を、図1
3〜16に示すフローチャートに沿って説明する。
【0057】始めにステップ1において、処理対象スキ
ャンラインを表わすYcをYminに設定する。このY
minは、対象ディスプレイリストに含まれる辺の開始
スキャンラインY座標の最小値であり、例えば図12に
示すディスプレイリストの場合にはYmin=5であ
る。
【0058】次にステップ2において、アクティブリス
ト制御部82中の各辺とY=Ycとの交点のX座標値を
DDAなどの手法で計算する。尚、Y=Yminの時点
ではアクティブリスト制御部82中には何も辺が登録さ
れていないので、何も行われない。
【0059】ステップ3において、対象ディスプレイリ
ストから、Ycを開始点とする辺があればこれを抜き出
してアクティブリスト制御部82中のアクティブリスト
に追加する。アクティブリストは、対象スキャンライン
に交点を持つ辺のみで構成されたリストであり、例えば
図17のように、Dir,Xs,Ye,Dx以外に後述
する辺のステータス情報を格納するStatus、現在
のスキャンラインとの交点のX座標値Xc、辺の開始ス
キャンラインYsなどの情報が追加される。尚、追加さ
れたばかりの辺は、Status=INIT,Xc=X
s,Ys=Ycとなる。
【0060】ステップ4において、アクティブリスト中
の辺データを、Xcの昇順になるようにソートする。
【0061】次にS1(詳細を図14に示す)に移り、
図14に示すステップ10で変数cdirとodirを
それぞれ0に設定する。ここでcdirのcは現在(C
urrent)を意味し、odirのo(Old)は旧
を意味する。
【0062】ステップ11で、変数iを1に設定する。
ここで変数iは処理対象の辺が第何番目の辺であるかを
示す。これらステップ10,11において各初期値の設
定が完了する。
【0063】ステップ12で、アクティブリストからi
番目の辺データを読み出す。
【0064】ステップ13で、odir=cdirと設
定することで、odirにcdirを代入し、さらに、
cdirに読み出したi番目の辺データのdirの値を
加算する。
【0065】ステップ14で、odir,cdirの値
からモード判定を行う。このモード判定は、図18,1
9に示す規則で行われる。図18,19は、odir、
cdirの両値に基づいて、モードがどのように決定さ
れるかを示す規則を示した図である。ディスプレイリス
トの塗りつぶし規則には非零規則と、偶奇規則があり、
処理すべきクリップ要素/描画要素がいずれの規則によ
って示されたデータであるかによってモード判定は異な
る。
【0066】図18の上段に示す基本条件は、図18の
下段、図19に示す判定条件とANDで成り立っている
ことが必要なものであり、重なり除去処理の場合には、
先ずodirまたはcdirが最上段の上の範囲(例え
ば−32767〜32767など)に入っているかどう
かがチェックされ、その範囲に入っている場合に、クリ
ップ要素の状態(クリップ要素無し/偶奇規則/非零規
則)に応じて2〜4段目のどれかの条件を用いてモード
判定を行う。それぞれのケースにおいて、描画要素が偶
奇規則の場合、非零規則の場合とで判定基準が異なる。
【0067】図18、19において、odir、cdi
rの値のいずれか一方の値のみが実線領域内にあるとき
に、モード=INと判定され、それ以外の場合はモード
=OUTと判定される。点線で示された領域は、その点
線領域に記載された特定条件が満足された場合のみモー
ド=INと判定される。図18、19の点線領域は、
「奇数のみ」の条件が記されており、これら点線領域の
奇数にodir、cdirの値のいずれか一方のみが該
当する場合にのみ、モード=INと判定されることを意
味する。また、図18、19の実線の中央部分の白丸部
分は、実線には該当しない部分であることを示し、例え
ば図19のクリップ要素が偶奇、描画要素が非零規則の
場合において、256を含む実線部分において、odi
r、cdirのいずれかの値のみが256以外のこれら
領域範囲内にあれば、モード=INであるが、256の
場合には、モード=OUTとなる。
【0068】例えば、描画要素が非零規則/クリップ要
素が偶奇規則でodir=0,cdir=1の場合に
は、いずれも実線、点線領域になく、Mode=OUT
となる。また、描画要素が偶奇規則/クリップ要素が非
零規則でodir=257,cdir=256の場合に
は奇数のみの点線領域にodir、cdirが該当し、
odirのみが奇数のみの条件を満足しているので、M
ode=INとなる。
【0069】Mode=INの場合、現在のスキャンラ
イン(Y座標)において、対象の辺(i)からつぎの辺
(i+1)の間で塗りつぶしが有効である。逆に、Mo
de=OUTの場合、現在のスキャンラインにおいて、
対象の辺からつぎの辺までの間で塗りつぶしが無効であ
る。Status=INは当該辺が前回のスキャンライ
ンでMode=INであることを示し、Status=
OUTは前回のスキャンラインでMode=OUTであ
ることを示す。
【0070】図14に示すフローの説明を続ける。ステ
ップ14でMode=OUTと判定された場合、S2
(詳細を図15に示す)に移ってステップ20(図1
5)でi番目の辺のステータス情報Statusが読み
出され、StatusがINの場合にはステップ21
へ、それ以外(OUT,INIT)の場合にはステップ
23に移る。
【0071】辺のステータス情報は、先に説明したよう
に対象スキャンラインに交点を持つ辺のみで構成された
アクティブリスト(図17参照)に、Dir,Xs,Y
e,Dx以外に付加されたベクターに関する情報であ
り、INIT,IN,OUTのいずれかの値を持つ。追
加されたばかりの辺は、Status=INITに設定
され、その後、フローに従って値の変更が実行される。
【0072】ステップ21では、i番目の辺データから
Y=Ys〜Yc−1の部分を、第1のディスプレイリス
ト記憶部83に出力する。より具体的には、例えばi番
目の辺データが、Ys=10,Ye=20,Xs=3.
5,Dx=0.5,Dir=+1であり、Yc=15の
場合には、Ys=10,Ye=14,Xs=3.5,D
x=0.5,Dir=+1の辺データが出力される。
【0073】ステップ22では、ステップ21で出力し
た部分を削除するため、アクティブリスト中のi番目の
辺データを、Ys=Yc,Xs=Xcに変更する。
【0074】ステップ23では、i番目の辺データのス
テータスをOUT(Status=OUT)に変更す
る。
【0075】ステップ24では、i番目の辺データのY
eがYcと等しいかどうかが判定され、等しい場合には
ステップ25でその辺をアクティブリストから削除し、
等しくない場合にはステップ26でiを1増加させる。
以上でS2を終了し、図14に示すステップ15に移
る。
【0076】図14に示すステップ14でMode=I
Nと判定された場合は、S3(詳細を図16に示す)に
移って図16に示すステップ30でi番目の辺のステー
タス情報Statusが読み出され、このStatus
がOUTの場合にはステップ31へ、それ以外(IN,
INIT)の場合にはステップ32に移る。
【0077】ステップ31では、アクティブリスト中の
i番目の辺データを、Ys=Yc,Xs=Xcに変更す
る。
【0078】ステップ32では、i番目の辺データのS
tatus=INに変更する。
【0079】ステップ33では、i番目の辺データのY
eがYcと等しいかどうかが判定され、等しい場合には
ステップ34でその辺を第1のディスプレイリスト記憶
部83に出力してアクティブリストから削除し、等しく
ない場合にはステップ26でiを1増加させる。以上で
S3を終了し、ステップ15に移る。
【0080】図14のステップ15では、アクティブリ
スト中にi番目の辺があるかどうかをチェックし、あれ
ばステップ12に、なければS1を終了して図13に示
すステップ5に移る。
【0081】ステップ5では、YcがYmaxと等しい
かどうかが判定され、等しい場合には処理を終了し、そ
うでない場合にはステップ6でYcを1増加させてステ
ップ2に移る。このYmaxは、対象ディスプレイリス
トに含まれる辺の終了スキャンラインY座標の最大値で
あり、例えば図12に示すディスプレイリストの場合に
はYmax=14である。
【0082】以上、フローチャートを用いて説明した処
理を行うと、アクティブリストは図17に経過の一部を
示すように変更され、その結果として第1のディスプレ
イリスト記憶部83に図20に示す重なり除去処理され
た新たなディスプレイリストが格納される。
【0083】例えば、図12にAで示す描画要素の辺
は、Y=9でクリップ要素の辺Bと交差してその前後で
塗りつぶしの状態が変化し、ModeがINからOUT
となり、S2(図15)において、辺を分割して、交差
点の手前までの分割辺を第1のディスプレイリスト記憶
部83に記憶し、残りの分割辺のStatusをOUT
の状態とする。辺Bの状態はそれまでOUTであり(図
17のY=6参照)、S2においてそのまま状態をOU
Tに保持したままとなっている。そして、Y=9におい
て、Mode=INとなるのでS3(図16)において
Y=8までの辺情報を切り捨てY=9以降のみにし、S
tatusをINの状態に変更する。
【0084】このようにしてクリップ処理を加味した新
たなディスプレイリストの辺が切り出される。
【0085】図20は、図12に示すデイスプレイリス
トから図13〜図16のフローに従って生成された重な
り除去後の新たなディスプレイリストである。図12と
図20を比較して理解されるように、太い実線で囲まれ
た領域(クリップ領域)内の細実線の辺データ(描画要
素)のうち、太い破線で囲まれた領域(併合領域)に覆
われていない部分に関するディスプレイリストのみが残
り、それ以外のベクターに関するデイスプレイリストが
排除された新たなディスプレイリストが図20に示すよ
うに生成される。
【0086】尚、前記フローチャートでの処理の結果、
描画要素が非零規則のディスプレイリストであっても、
出力は偶奇規則に変換される。また、処理後のディスプ
レイリストの辺には、dirの値が±256または±6
5536のものも含まれるが、これはそれぞれ±1に変
換して出力する。または、偶奇規則の場合は辺の上下方
向の情報は意味を持たないので、全て+1などの値に変
換してもよい。
【0087】ここまで述べた処理により、入力ディスプ
レイリストの重なり除去は終了したが、重なり除去処理
部8は、さらに新たな描画要素に関する次のディスプレ
イリストとの重なり除去処理を行うために必要となる併
合領域を表わす併合領域ディスプレイリストの生成処理
を行う。すなわち、上述の処理では描画要素Aと描画要
素Bとの重なり除去を行ったが新たに描画要素Cが入力
された場合に、さらに、描画要素Cに対する(描画要素
A+描画要素B)領域との重なり除去を実行することが
必要となる。従って、この新たな重なり除去処理の前に
併合領域:(描画要素A+描画要素B)を求めることが
必要となる。以下、この処理について説明する。
【0088】始めに、再度第2のディスプレイリスト記
憶部84に一時記憶されているディスプレイリストと入
力ディスプレイリストを重なり除去制御部81でマージ
する。この時には、入力ディスプレイリストのY存在範
囲でのクリップは行わない。
【0089】次に、重なり除去制御部81で先に説明し
たのと同じ処理を行う。但し、図14のステップ14に
示したモード判定において、基本条件は図18上段の下
側に示した条件で行い、また図15のステップ21と図
16のステップ34での辺データの出力先を、第2のデ
ィスプレイリスト記憶部84に変更する。
【0090】その結果、第2のディスプレイリスト記憶
部84には、入力ディスプレイリストと元々第2のディ
スプレイリスト記憶部84に一時記憶されていたディス
プレイリストとを併合した領域を表わす、図21に示す
(偶奇規則の)ディスプレイリストが生成される。
【0091】この併合領域のディスプレイリストは、重
なり除去後のディスプレイリストと同様に、Dir値に
±1、±256、±65536が混在しているが、これ
はそれぞれ±1に変換して出力する。または次の処理を
考慮して±65536や、偶奇規則の場合は辺の上下方
向の情報は意味を持たないので、全て+65536など
の値に変換してもよい。
【0092】以上で1つの描画要素に対する重なり除去
処理は終了であり、ディスプレイリスト格納部5にさら
に下に描画されるディスプレイリストが保持されている
場合には、それを重なり除去処理部6に入力して、これ
まで述べた処理を繰り返す。この一連の処理を順次ディ
スプレイリスト格納部5から取り出した新たなディスプ
レイリストについて実行すれば、すべての描画要素の重
なりが除去されたディスプレイリストが生成される。
【0093】尚、ここでは第2のディスプレイリスト記
憶部84に既にディスプレイリストが記憶されている状
態での処理を説明したが、当然ながら描画順が最も後で
ある描画要素の重なり除去を行う際には、第2のディス
プレイリスト記憶部84には何も格納されていない。そ
の場合には、重なり除去処理は行わずに入力ディスプレ
イリストをそのまま第1のディスプレイリスト記憶部8
3に出力する。併合領域生成処理については、入力ディ
スプレイリストにクリップ要素が含まれておらずかつ偶
奇規則の場合にはそのまま第2のディスプレイリスト記
憶部84に出力し、それ以外の場合には入力ディスプレ
イリストのみで処理を行う。
【0094】また、当然ながら重なり除去処理を必要と
する最後の描画要素に対する処理では、併合領域の生成
処理は不要である。
【0095】また、これまでの説明では、説明を簡略化
するために全ての場合に重なり除去処理を行うとした
が、例えば入力ディスプレイリストと併合ディスプレイ
リストとの間に重なりがないと判断できる場合には、併
合領域生成処理のみを行うなどの処理の簡略化も可能で
ある。重なり判定が複雑な場合には、例えば入力ディス
プレイリスト中の描画要素部分の外接矩形とクリップ要
素部分の外接矩形との共通矩形領域を計算し、その矩形
領域と併合ディスプレイリストの外接矩形領域を比較し
て重なりがない場合には重なり除去処理を省略するなど
の簡易判定も考えられる。
【0096】さらに、図13〜16を用いて説明した処
理フローでは、Ymin〜Ymaxについて毎回Xcを
更新してソートするように説明したが、アクティブリス
ト中の辺データのStatus値は辺の追加/削除/交
差が生じた場合しか変更されないことから、予め追加/
削除/交差の発生するY座標値を求めておき、そのスキ
ャンラインのみ処理する方法も考えられる。
【0097】また別の方法として、ソートを全て省略す
ることも可能である。具体的には、ディスプレイリスト
から辺データをアクティブリストに移動させる際に、既
にアクティブリストに登録されている全ての辺データと
の交差判定を行い、交差がある場合には辺をそこで分割
し、分割された辺データの前半部をアクティブリストに
登録、後半部をディスプレイリストに戻す。さらに前半
部を登録する際に、Xcの昇順となる位置に挿入する。
このようにすれば、アクティブリスト中の辺データは必
ずXcの昇順に並んでいることが保証されるので、ソー
トが不要となる。交差判定はアクティブリスト中に登録
されている辺との間でのみ行われるので、対象数がそれ
ほど多くなることはなく、また2つの辺についてXc1
<Xc2かつDx1<Dx2などの場合には交差のない
ことが明らかなので、これらを除けばさらに処理を高速
化できる。
【0098】また、図18、19に示した条件によるモ
ード判定は、Dir値に2のべき乗を用いた場合には、
簡単なビット演算により実現する事ができる。前述のよ
うに、クリップ要素のDir値として±256、併合領
域のDir値として±65536を使ったものとする
と、以下の条件の時に、基本条件を含めて図18、19
の有効範囲に入っていると判定できる。尚、以下の説明
中の&はビット毎のAND処理を、0xは16進数値を
表わしている。
【0099】 (1)クリップ要素が無い場合 図14のステップ10を、odir=cdir=32768に変更し、 描画要素が偶奇規則の場合 dir&0x10001=0x00001 (重なり除去処理) dir&0x10001=0x10001 (併合領域生成処理) 描画要素が非零規則の場合 (dir&0x10000=0)AND (dir&0x7FFF≠0) (重なり除去処理) (dir&0x10000=0)AND (dir&0x7FFF≠0) (併合領域生成処理)
【0100】 (2)クリップ要素が偶奇規則の場合 図14のステップ10を、odir=cdir=32896に変更し、 描画要素が偶奇規則の場合 dir&0x10101=0x00101 (重なり除去処理) dir&0x10101=0x10101 (併合領域生成処理) 描画要素が非零規則の場合 dir&0x10180=0x00100 (重なり除去処理) dir&0x10180=0x10100 (併合領域生成処理)
【0101】 (3)クリップ要素が非零規則の場合 図14のステップ10を、odir=cdir=32768に変更し、 描画要素が偶奇規則の場合 (dir&0x10001=1)AND (dir&0x7F80≠0) (重なり除去処理) (dir&0x10001=0x10001)AND (dir&0x7F80≠0) (併合領域生成処理) 描画要素が非零規則の場合 (dir&0x10010=0)AND (dir&0x7F80≠0) (重なり除去処理) (dir&0x10010=0x10000)AND (dir&0x7F80≠0) (併合領域生成処理)
【0102】以上で示す(1)は、図18の下段、
(2)は図19の上段、(3)は図19の下段のモード
判定に相当する。上述の処理によれば簡単なビット演算
を用いて、モード判定が可能となるので処理の高速化が
可能となる。
【0103】以上、特定の実施例を参照しながら、本発
明について詳解してきた。しかしながら、本発明の要旨
を逸脱しない範囲で当業者が該実施例の修正や代用を成
し得ることは自明である。すなわち、例示という形態で
本発明を開示してきたのであり、限定的に解釈されるべ
きではない。本発明の要旨を判断するためには、冒頭に
記載した特許請求の範囲の欄を参酌すべきである。
【0104】さらに、本発明による重なり除去処理は、
特願平11−16844号に記載された重なり除去処理
と置き換え可能であり、例えば重なり除去判定手段を設
けて分割された部分領域毎に重なり除去処理を行うかど
うかを判定する、または重なりを全て除去して単層にす
るのではなく描画要素をM個のグループに分けてそれぞ
れを重なり除去してM層に変換するなどの特願平11−
16844号に記載された各種の処理時間短縮手法は、
特願平11−16844号と同様に適用することができ
る。
【0105】
【発明の効果】以上説明したように本発明の図形処理装
置および図形処理方法では、処理対象の要素中にクリッ
プ要素と描画要素とが混在しているかどうかに関わら
ず、ディスプレイリスト形式で表現された描画要素間の
重なり除去が可能な重なり除去手段を持つ構成とした。
従って、図形描画処理における重なり除去処理前に予め
クリップ処理を行うことが不要となり、高速の図形処理
装置を実現することができた。
【図面の簡単な説明】
【図1】 本発明の図形処理装置の実施例を示すブロッ
ク図である。
【図2】 既存の図形処理装置の一例を示すブロック図
である。
【図3】 線図形の塗りつぶし図形への変換を説明する
図である。
【図4】 曲線の微小直線での近似を説明する図であ
る。
【図5】 ベジエ曲線の再帰的な分割を説明する図であ
る。
【図6】 ディスプレイリストを説明する図である。
【図7】 描画要素とクリップ要素との混在ディスプレ
イリストを説明する図である。
【図8】 混在ディスプレイリストのY方向クリップを
説明する図である。
【図9】 本発明の図形処理装置における部分領域への
分割を説明する図である。
【図10】 本発明の図形処理装置における重なり除去
処理部の一例を示すブロック図である。
【図11】 混在ディスプレイリストと併合領域ディス
プレイリストとのマージ後のディスプレイリストを説明
する図である。
【図12】 混在ディスプレイリストと併合領域ディス
プレイリストとのマージ後のディスプレイリストのY方
向クリップを説明する図である。
【図13】 本発明の図形処理装置における重なり除去
処理の手順を示すフローチャート(その1)である。
【図14】 本発明の図形処理装置における重なり除去
処理の手順を示すフローチャート(その2)である。
【図15】 本発明の図形処理装置における重なり除去
処理の手順を示すフローチャート(その3)である。
【図16】 本発明の図形処理装置における重なり除去
処理の手順を示すフローチャート(その4)である。
【図17】 アクティブリストを説明する図である。
【図18】 本発明の図形処理装置における重なり除去
/併合領域生成処理でのモード判定を説明する図(その
1)である。
【図19】 本発明の図形処理装置における重なり除去
/併合領域生成処理でのモード判定を説明する図(その
2)である。
【図20】 本発明の図形処理装置における重なり除去
処理されたディスプレイリストを説明する図である。
【図21】 本発明の図形処理装置における併合処理さ
れたディスプレイリストを説明する図である。
【符号の説明】
1 命令解釈部 2 ベクターデータ生成部 3 フォント管理部 4 ショートベクター生成部 5 ディスプレイリスト格納部 6 部分領域分割部 7 マージ処理部 8 重なり除去処理部 9 ディスプレイリスト描画部 10 メモリ部 11 出力デバイス 81 重なり除去制御部 82 アクティブリスト制御部 83 第1のディスプレイリスト記憶部 84 第2のディスプレイリスト記憶部

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】図形の描画処理を行う図形処理装置におい
    て、 図形の描画要素やクリップ要素を記述するベクター情報
    を、前記描画要素やクリップ要素を構成するベクターの
    形状を多角形近似した直線ベクター情報に変換し、前記
    直線ベクター情報中に含まれる各直線ベクターをベクタ
    ー開始スキャンライン座標値に基づいてソートして該各
    直線ベクターの方向、傾き、および横切るスキャンライ
    ン数、またはそれらと等価なデータを含む情報によって
    構成されるディスプレイリストを生成するディスプレイ
    リスト生成手段と、 前記ディスプレイリスト生成手段によって生成された、
    描画要素を表わすディスプレイリストと、当該描画要素
    の描画領域を制限するクリップ要素を表わすディスプレ
    イリストとをマージ処理し、描画要素とクリップ要素と
    が混在したディスプレイリストを生成するマージ処理手
    段と、 前記ディスプレイリストを蓄積するディスプレイリスト
    格納手段と、 描画領域に重なりを有する複数のディスプレイリストか
    ら、前記描画領域の重なりを除去した新たなディスプレ
    イリストを生成する重なり除去手段と、 前記新たなディスプレイリストの表現する図形を描画す
    るディスプレイリスト描画手段とを有することを特徴と
    する図形処理装置。
  2. 【請求項2】前記重なり除去手段は、処理対象のディス
    プレイリスト中に描画要素のディスプレイリストとクリ
    ップ要素のディスプレイリストとが混在する場合にも、
    予め描画要素のみのディスプレイリストへの変換処理を
    行なわずに重なり除去処理を実行する構成を有すること
    を特徴とする請求項1に記載の図形処理装置。
  3. 【請求項3】前記マージ処理手段は、生成する前記混在
    したディスプレイリストにおいて、描画要素を構成する
    直線ベクターに関するディスプレイリスト中のベクター
    方向を示す値と、クリップ要素を構成する直線ベクター
    に関するディスプレイリスト中のベクター方向を示す値
    と、を異なる値に設定することを特徴とする請求項1ま
    たは2に記載の図形処理装置。
  4. 【請求項4】前記マージ処理手段は、描画要素を構成す
    る直線ベクターのベクター方向を示す値と、クリップ要
    素を構成する直線ベクターのベクター方向を示す値との
    いずれか一方の値を他方の値の2のべき乗倍となる値に
    設定する構成を有することを特徴とする請求項3に記載
    の図形処理装置。
  5. 【請求項5】前記重なり除去手段は、最前面に表示また
    は印刷出力される上層の描画要素に対応するディスプレ
    イリストから下層の描画要素に対応するディスプレイリ
    ストを順次、前記ディスプレイリスト格納手段から取り
    出して、該取り出した複数の描画要素に対応するディス
    プレイリストに基づいて重なり除去処理を行うことを特
    徴とする請求項1乃至4のいずれかに記載の図形処理装
    置。
  6. 【請求項6】前記重なり除去手段は、前記重なり除去処
    理の対象となった複数の描画要素の描画領域全体を示す
    併合領域ディスプレイリストを生成して、新たに前記デ
    ィスプレイリスト格納手段から取り出されるディスプレ
    イリストとの新たな重なり除去処理を行うことを特徴と
    する請求項1乃至5のいずれかに記載の図形処理装置。
  7. 【請求項7】前記重なり除去手段は、処理対象のディス
    プレイリストと、処理対象よりも上層に描画される描画
    要素全体を示す併合領域ディスプレイリストをマージし
    て処理を行い、前記マージを行う際に、併合領域を構成
    する直線ベクターのベクター方向を示す値として、描画
    要素を構成する直線ベクターのベクター方向を示す値と
    も、クリップ要素を構成する直線ベクターのベクター方
    向を示す値とも異なる値を用いることを特徴とする請求
    項1乃至6のいずれかに記載の図形処理装置。
  8. 【請求項8】前記重なり除去手段は、前記処理対象のデ
    ィスプレイリストの上層に描画される描画要素全体を示
    す併合領域ディスプレイリストを、前記処理対象のディ
    スプレイリストの存在範囲でクリップ処理した範囲につ
    いてマージ処理を実行する構成を有することを特徴とす
    る請求項7に記載の図形処理装置。
  9. 【請求項9】前記重なり除去手段は、描画要素を構成す
    る直線ベクターのベクター方向を示す値と、クリップ要
    素を構成する直線ベクターのベクター方向を示す値と、
    併合領域を構成する直線ベクターのベクター方向を示す
    値として、それぞれが2のべき乗倍の関係となる値を設
    定することを特徴とする請求項7または8に記載の図形
    処理装置。
  10. 【請求項10】前記重なり除去手段は、描画要素を構成
    する直線ベクターのベクター方向を示す値と、クリップ
    要素を構成する直線ベクターのベクター方向を示す値
    と、併合領域を構成する直線ベクターのベクター方向を
    示す値とに基づいて、塗りつぶしの有効および無効領域
    を決定するモード判定処理を実行する構成を有すること
    を特徴とする請求項9に記載の図形処理装置。
  11. 【請求項11】前記重なり除去手段は、描画要素を構成
    する直線ベクターのベクター方向を示す値と、クリップ
    要素を構成する直線ベクターのベクター方向を示す値
    と、併合領域を構成する直線ベクターのベクター方向を
    示す値を用いたビット演算処理によって前記モード判定
    処理を実行する構成を有することを特徴とする請求項1
    0に記載の図形処理装置。
  12. 【請求項12】前記ディスプレイリストを出力領域を分
    割した各部分領域毎に分割する部分領域分割処理手段を
    備え、 前記重なり除去手段は前記部分領域毎に重なり除去処理
    を実行する構成であることを特徴とする請求項1乃至1
    1いずれかに記載の図形処理装置。
  13. 【請求項13】図形の描画処理を行う図形処理方法にお
    いて、 図形の描画要素やクリップ要素を記述するベクター情報
    を、前記描画要素やクリップ要素を構成するベクターの
    形状を多角形近似した直線ベクター情報に変換し、前記
    直線ベクター情報中に含まれる各直線ベクターをベクタ
    ー開始スキャンライン座標値に基づいてソートして該各
    直線ベクターの方向、傾き、および横切るスキャンライ
    ン数、またはそれらと等価なデータを含む情報によって
    構成されるディスプレイリストを生成するディスプレイ
    リスト生成ステップと、 前記ディスプレイリスト生成ステップによって生成され
    た、描画要素を表わすディスプレイリストと、当該描画
    要素の描画領域を制限するクリップ要素を表わすディス
    プレイリストとをマージ処理し、描画要素とクリップ要
    素とが混在したディスプレイリストを生成するマージ処
    理ステップと、 前記ディスプレイリストをディスプレイリスト格納手段
    に蓄積するディスプレイリスト格納ステップと、 最前面に表示または印刷出力される上層の描画要素に対
    応するディスプレイリストから下層の描画要素に対応す
    るディスプレイリストを順次、前記ディスプレイリスト
    格納手段から取り出して、該取り出した複数の描画要素
    に対応するディスプレイリストに基づいて重なり除去処
    理を実行して新たなディスプレイリストを生成する重な
    り除去処理ステップと、 前記新たなディスプレイリストの表現する図形を描画す
    るディスプレイリスト描画ステップとを有することを特
    徴とする図形処理方法。
  14. 【請求項14】前記重なり除去処理ステップは、処理対
    象のディスプレイリストと、処理対象よりも上層に描画
    される描画要素全体を示す併合領域ディスプレイリスト
    をマージするマージ処理を含み、 前記マージ処理は、併合領域を構成する直線ベクターの
    ベクター方向を示す値として、描画要素を構成する直線
    ベクターのベクター方向を示す値とも、クリップ要素を
    構成する直線ベクターのベクター方向を示す値とも異な
    る値を設定する併合領域ベクター方向値設定処理を含む
    ことを特徴とする請求項13に記載の図形処理方法。
  15. 【請求項15】前記重なり除去処理ステップは、描画要
    素を構成する直線ベクターのベクター方向を示す値と、
    クリップ要素を構成する直線ベクターのベクター方向を
    示す値と、併合領域を構成する直線ベクターのベクター
    方向を示す値とに基づいて、塗りつぶしの有効および無
    効領域を決定するモード判定処理を含むことを特徴とす
    る請求項14に記載の図形処理方法。
  16. 【請求項16】前記重なり除去処理ステップにおける前
    記モード判定処理は、描画要素を構成する直線ベクター
    のベクター方向を示す値と、クリップ要素を構成する直
    線ベクターのベクター方向を示す値と、併合領域を構成
    する直線ベクターのベクター方向を示す値を用いたビッ
    ト演算処理によるモード判定処理であることを特徴とす
    る請求項15に記載の図形処理方法。
JP20580299A 1999-07-21 1999-07-21 図形処理装置および図形処理方法 Pending JP2001034772A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20580299A JP2001034772A (ja) 1999-07-21 1999-07-21 図形処理装置および図形処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20580299A JP2001034772A (ja) 1999-07-21 1999-07-21 図形処理装置および図形処理方法

Publications (1)

Publication Number Publication Date
JP2001034772A true JP2001034772A (ja) 2001-02-09

Family

ID=16512936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20580299A Pending JP2001034772A (ja) 1999-07-21 1999-07-21 図形処理装置および図形処理方法

Country Status (1)

Country Link
JP (1) JP2001034772A (ja)

Similar Documents

Publication Publication Date Title
US6466229B1 (en) Graphics processing apparatus and graphics processing method
US4674058A (en) Method and apparatus for flexigon representation of a two dimensional figure
JPH0251786A (ja) 走査変換方法
JP2608571B2 (ja) 入力走査画像データのベクトル化のための装置及び方法
JPH076233A (ja) 曲線を描く装置及び方法
US8723884B2 (en) Scan converting a set of vector edges to a set of pixel aligned edges
US5489920A (en) Method for determining the optimum angle for displaying a line on raster output devices
EP0344686B1 (en) Clipping process and processor
US5898439A (en) Method and apparatus for drawing characters which draws curved segments based on approximate points
JP2681367B2 (ja) 図形処理方法及びその装置
US5388166A (en) Image drawing apparatus
JP3266905B2 (ja) 図形処理装置
JP3085175B2 (ja) 描画装置
JP2001034772A (ja) 図形処理装置および図形処理方法
JP3843794B2 (ja) 図形処理装置
EP0479496A2 (en) High speed graphic image generation using multiple steppers
JP3536894B2 (ja) 図形処理装置
JP2002244643A (ja) 画像処理装置
JP3375069B2 (ja) 描画処理装置
JP3692639B2 (ja) 描画処理装置
JP3517982B2 (ja) 図形描画装置
JP2782904B2 (ja) 多角形塗りつぶし方式
JP2857260B2 (ja) 矩形領域の判定方法
JP2613653B2 (ja) 画像処理装置
JPH06168337A (ja) 塗り潰し処理方法