JP3089906B2 - 描画装置 - Google Patents
描画装置Info
- Publication number
- JP3089906B2 JP3089906B2 JP05190715A JP19071593A JP3089906B2 JP 3089906 B2 JP3089906 B2 JP 3089906B2 JP 05190715 A JP05190715 A JP 05190715A JP 19071593 A JP19071593 A JP 19071593A JP 3089906 B2 JP3089906 B2 JP 3089906B2
- Authority
- JP
- Japan
- Prior art keywords
- edge list
- pattern
- list cell
- cell
- clip
- 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
Links
Landscapes
- Image Generation (AREA)
- Image Analysis (AREA)
Description
【0001】
【産業上の利用分野】本発明は、入力されたデータから
ラスター情報に変換する際に、パターンによる塗りつぶ
し処理を行なう描画装置に関するものである。
ラスター情報に変換する際に、パターンによる塗りつぶ
し処理を行なう描画装置に関するものである。
【0002】
【従来の技術】近年、コンピュータグラフィックスやD
TPでは、入力データ、例えばベクター情報を、ピクセ
ルマップ(ビットマップ)などのラスター情報に変換し
て、階調化およびカラー化されたディスプレイやプリン
タに出力する処理を行なっていてる。このような装置に
おいては、ベクター図形の内部をあるパターンを使って
塗りつぶす処理を行なっている。例えば、特開平3−1
71379号公報には、塗りつぶしに用いるパターンの
作成についての記載がある。
TPでは、入力データ、例えばベクター情報を、ピクセ
ルマップ(ビットマップ)などのラスター情報に変換し
て、階調化およびカラー化されたディスプレイやプリン
タに出力する処理を行なっていてる。このような装置に
おいては、ベクター図形の内部をあるパターンを使って
塗りつぶす処理を行なっている。例えば、特開平3−1
71379号公報には、塗りつぶしに用いるパターンの
作成についての記載がある。
【0003】このようなパターンによる塗りつぶし処理
を行なう場合に、例えば、特開昭63−136278号
公報では、塗りつぶしに用いるパターンをピクセルマッ
プパターンとして保持し、このパターンを塗りつぶす領
域に転送することにより行なっている。さらに、任意の
形状の塗りつぶし領域に対応するため、ビットごとにパ
ターンを描くかどうかを判断するためのマスクパターン
もビットマップとして保持し、パターンによる塗りつぶ
し描画の際には、塗りつぶし描画位置に対応するピクセ
ルマップのデータとマスクパターンのデータを論理演算
して、その結果を用いて塗りつぶしを行なう方法も開発
されている。
を行なう場合に、例えば、特開昭63−136278号
公報では、塗りつぶしに用いるパターンをピクセルマッ
プパターンとして保持し、このパターンを塗りつぶす領
域に転送することにより行なっている。さらに、任意の
形状の塗りつぶし領域に対応するため、ビットごとにパ
ターンを描くかどうかを判断するためのマスクパターン
もビットマップとして保持し、パターンによる塗りつぶ
し描画の際には、塗りつぶし描画位置に対応するピクセ
ルマップのデータとマスクパターンのデータを論理演算
して、その結果を用いて塗りつぶしを行なう方法も開発
されている。
【0004】しかし、塗りつぶしに用いるパターンは1
種類ではない場合が多く、複数の塗りつぶしパターンの
それぞれに対応したピクセルマップとマスクのためのビ
ットマップデータを保持するには、非常に大きなメモリ
が必要となる。また、描画時にマスクビットに対する論
理演算を1ピクセルごとに行なう必要があるため、パタ
ーンの塗りつぶしに要する時間も大きい。
種類ではない場合が多く、複数の塗りつぶしパターンの
それぞれに対応したピクセルマップとマスクのためのビ
ットマップデータを保持するには、非常に大きなメモリ
が必要となる。また、描画時にマスクビットに対する論
理演算を1ピクセルごとに行なう必要があるため、パタ
ーンの塗りつぶしに要する時間も大きい。
【0005】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、入力されたデータからラス
ター情報に変換する際に、パターンによる塗りつぶし処
理を行なう描画装置において、使用するメモリを大幅に
減らすとともに、高速な処理が可能な描画装置を提供す
ることを目的とするものである。
情に鑑みてなされたもので、入力されたデータからラス
ター情報に変換する際に、パターンによる塗りつぶし処
理を行なう描画装置において、使用するメモリを大幅に
減らすとともに、高速な処理が可能な描画装置を提供す
ることを目的とするものである。
【0006】
【課題を解決するための手段】本発明は、描画装置にお
いて、入力されたデータからエッジリストを生成するエ
ッジリスト生成手段と、塗りつぶしに用いるパターンを
エッジリストとして記憶するパターン記憶部と、前記エ
ッジリスト生成手段により生成されたエッジリストと前
記パターン記憶部に記憶されているパターンのエッジリ
ストとをマージ処理するパターンマージ手段と、前記パ
ターンマージ手段によりマージ処理されたエッジリスト
を用いて出力処理を行なう出力処理手段を有し、前記塗
りつぶしに用いるパターンを用いて塗りつぶし描画を行
うことを特徴とするものである。パターンマージ手段
は、マージ処理したエッジリストを前記パターン記憶部
に対して新たな塗りつぶしに用いるパターンとして記憶
させる機能を有するように構成することができる。
いて、入力されたデータからエッジリストを生成するエ
ッジリスト生成手段と、塗りつぶしに用いるパターンを
エッジリストとして記憶するパターン記憶部と、前記エ
ッジリスト生成手段により生成されたエッジリストと前
記パターン記憶部に記憶されているパターンのエッジリ
ストとをマージ処理するパターンマージ手段と、前記パ
ターンマージ手段によりマージ処理されたエッジリスト
を用いて出力処理を行なう出力処理手段を有し、前記塗
りつぶしに用いるパターンを用いて塗りつぶし描画を行
うことを特徴とするものである。パターンマージ手段
は、マージ処理したエッジリストを前記パターン記憶部
に対して新たな塗りつぶしに用いるパターンとして記憶
させる機能を有するように構成することができる。
【0007】
【作用】本発明によれば、塗りつぶしに用いるパターン
データをエッジリストというデータでパターン記憶部に
保持することによって、塗りつぶしに用いるパターンデ
ータを記憶しておくために必要なメモリ量を削減でき
る。また、パターンの描画時には、パターン記憶部に保
持されているパターンデータのエッジリストと、入力さ
れた塗りつぶされるパターンのエッジリストをパターン
マージ手段によりマージ処理を行ない、マージ処理され
たエッジリストに従い、各エッジ間の描画処理を行なう
ことにより、所望の画像を得ることができる。このと
き、塗りつぶし処理はエッジリストのマージ処理を行な
うのみであるので、1ピクセルごとの論理演算を行なう
場合に比べ、パターンによる塗りつぶし描画を高速に行
なうことができる。エッジリストは、座標データやラン
レングスデータ、および、対応する色情報等により構成
することができる。また、同様にしてパターンマージ手
段でマージ処理を行ったエッジリストを、パターン記憶
部に対して記憶させることによって、塗りつぶしに用い
るパターンデータの登録を行うことができる。
データをエッジリストというデータでパターン記憶部に
保持することによって、塗りつぶしに用いるパターンデ
ータを記憶しておくために必要なメモリ量を削減でき
る。また、パターンの描画時には、パターン記憶部に保
持されているパターンデータのエッジリストと、入力さ
れた塗りつぶされるパターンのエッジリストをパターン
マージ手段によりマージ処理を行ない、マージ処理され
たエッジリストに従い、各エッジ間の描画処理を行なう
ことにより、所望の画像を得ることができる。このと
き、塗りつぶし処理はエッジリストのマージ処理を行な
うのみであるので、1ピクセルごとの論理演算を行なう
場合に比べ、パターンによる塗りつぶし描画を高速に行
なうことができる。エッジリストは、座標データやラン
レングスデータ、および、対応する色情報等により構成
することができる。また、同様にしてパターンマージ手
段でマージ処理を行ったエッジリストを、パターン記憶
部に対して記憶させることによって、塗りつぶしに用い
るパターンデータの登録を行うことができる。
【0008】
【実施例】図1は、本発明の描画装置の一実施例を含む
システムのブロック構成図である。図中、1はパラメー
タ記憶部、2は描画入力部、3はベクター生成部、4は
フォントデータ記憶部、5はエッジリスト生成部、6は
クリップ処理部、7はクリップメモリ、8は色付け処理
部、9はパターンメモリ、10はエッジリストマージ
部、11はページメモリ、12はラスタライズ部、13
はバッファメモリ、14は出力装置である。
システムのブロック構成図である。図中、1はパラメー
タ記憶部、2は描画入力部、3はベクター生成部、4は
フォントデータ記憶部、5はエッジリスト生成部、6は
クリップ処理部、7はクリップメモリ、8は色付け処理
部、9はパターンメモリ、10はエッジリストマージ
部、11はページメモリ、12はラスタライズ部、13
はバッファメモリ、14は出力装置である。
【0009】描画入力部2は、外部からの入力を受け付
け、コマンドの解釈を行なう。入力されるコマンドとし
ては、グラフィックスや文字等の描画やクリップ指示等
のプリミティブ描画コマンドや、パラメータのセットを
行なう描画パラメータコマンドなどがある。受け付けた
コマンドが描画パラメータコマンドの場合には、パラメ
ータに値をセットするために、パラメータ記憶部1へセ
ットコマンドを送る。図2は、パラメータの一例の説明
図である。セットされるパラメータとしては、例えば、
図2に示すように、座標変換の時に使用する変換マトリ
クスの要素、描画する図形の色、塗りつぶしパターンの
パターン番号、相対座標指定を行なう際に用いる現在の
座標値、描画する線の線幅および線端の形状、描画する
線を接続する場合の接続点における接続形状、文字を描
画する際のタイプフェース、生成したエッジリストの出
力先として出力機器に出力するか塗りつぶしに用いるパ
ターンとして登録するかの情報などがある。もちろん、
このほかのパラメータも存在するが、ここでは省略す
る。
け、コマンドの解釈を行なう。入力されるコマンドとし
ては、グラフィックスや文字等の描画やクリップ指示等
のプリミティブ描画コマンドや、パラメータのセットを
行なう描画パラメータコマンドなどがある。受け付けた
コマンドが描画パラメータコマンドの場合には、パラメ
ータに値をセットするために、パラメータ記憶部1へセ
ットコマンドを送る。図2は、パラメータの一例の説明
図である。セットされるパラメータとしては、例えば、
図2に示すように、座標変換の時に使用する変換マトリ
クスの要素、描画する図形の色、塗りつぶしパターンの
パターン番号、相対座標指定を行なう際に用いる現在の
座標値、描画する線の線幅および線端の形状、描画する
線を接続する場合の接続点における接続形状、文字を描
画する際のタイプフェース、生成したエッジリストの出
力先として出力機器に出力するか塗りつぶしに用いるパ
ターンとして登録するかの情報などがある。もちろん、
このほかのパラメータも存在するが、ここでは省略す
る。
【0010】描画入力部2が受け付けたコマンドが、ク
リップコマンドを含むプリミティブ描画コマンドの場合
には、ベクター生成部3へ描画コマンドを送る。プリミ
ティブ描画コマンドには、グラフィックスの描画や文字
の描画等があり、グラフィックスの描画の場合にはベク
ターデータを、文字の描画の場合には文字コードをベク
ター生成部3へ送る。
リップコマンドを含むプリミティブ描画コマンドの場合
には、ベクター生成部3へ描画コマンドを送る。プリミ
ティブ描画コマンドには、グラフィックスの描画や文字
の描画等があり、グラフィックスの描画の場合にはベク
ターデータを、文字の描画の場合には文字コードをベク
ター生成部3へ送る。
【0011】ベクター生成部3は、グラフィックスの描
画の場合は、ベクターデータをフィル処理とストローク
処理に分けて処理を行なう。フィル処理は、指定された
領域内を塗りつぶす処理である。また、ストローク処理
は、直線、曲線などを描画する処理である。フィル処理
の場合には、パラメータ記憶部1に設定されている変換
マトリクスを使って座標変換のみを行ない、ベクターデ
ータをエッジリスト生成部5へ送る。ストローク処理の
場合には、同じく座標変換を行なった後で、パラメータ
記憶部1に設定されている線幅、線端形状、接続形状等
の線属性を使って、ストロークの輪郭ベクターを発生し
て、エッジリスト生成部5へ送る。文字の描画の場合
は、文字コードと、パラメータ記憶部1に設定されてい
るタイプフェースに従って、フォントデータ記憶部4に
蓄えられているベクターフォントデータを取り出し、変
換マトリクスで座標変換を行ない、エッジリスト生成部
5へベクターデータを送る。
画の場合は、ベクターデータをフィル処理とストローク
処理に分けて処理を行なう。フィル処理は、指定された
領域内を塗りつぶす処理である。また、ストローク処理
は、直線、曲線などを描画する処理である。フィル処理
の場合には、パラメータ記憶部1に設定されている変換
マトリクスを使って座標変換のみを行ない、ベクターデ
ータをエッジリスト生成部5へ送る。ストローク処理の
場合には、同じく座標変換を行なった後で、パラメータ
記憶部1に設定されている線幅、線端形状、接続形状等
の線属性を使って、ストロークの輪郭ベクターを発生し
て、エッジリスト生成部5へ送る。文字の描画の場合
は、文字コードと、パラメータ記憶部1に設定されてい
るタイプフェースに従って、フォントデータ記憶部4に
蓄えられているベクターフォントデータを取り出し、変
換マトリクスで座標変換を行ない、エッジリスト生成部
5へベクターデータを送る。
【0012】エッジリスト生成部5は、ベクターデータ
に対してスキャンコンバージョンを行ない、ランレング
スデータのリストを生成する。ここでいうランレングス
とは、スキャンラインごとに描画プリミティブの内部の
開始点及び終点の座標のペアをその座標値でソートした
リスト構造のデータである。以下、これをエッジリスト
と呼ぶ。もちろん、開始点と長さのデータを有する、い
わゆるランレングスデータであってもよい。
に対してスキャンコンバージョンを行ない、ランレング
スデータのリストを生成する。ここでいうランレングス
とは、スキャンラインごとに描画プリミティブの内部の
開始点及び終点の座標のペアをその座標値でソートした
リスト構造のデータである。以下、これをエッジリスト
と呼ぶ。もちろん、開始点と長さのデータを有する、い
わゆるランレングスデータであってもよい。
【0013】クリップ処理部6では、クリップ領域を示
すベクターデータを、グラフィックスの描画の場合と同
じように処理することにより、クリップエッジリストを
生成し、あらかじめクリップメモリ7に蓄えておく。そ
のクリップエッジリストと描画プリミティブのエッジリ
ストと比較し、クリップする領域外の開始点、終点の座
標値をクリップ領域の端の座標に修正するとによって、
クリップ処理を行なう。クリップ処理が行われたエッジ
リストは、色付け処理部8へ送られる。
すベクターデータを、グラフィックスの描画の場合と同
じように処理することにより、クリップエッジリストを
生成し、あらかじめクリップメモリ7に蓄えておく。そ
のクリップエッジリストと描画プリミティブのエッジリ
ストと比較し、クリップする領域外の開始点、終点の座
標値をクリップ領域の端の座標に修正するとによって、
クリップ処理を行なう。クリップ処理が行われたエッジ
リストは、色付け処理部8へ送られる。
【0014】色付け処理部8では、パラメータ記憶部1
に設定されている色がデバイスに依存したコンスタント
カラーの場合には、各エッジリストに対して、そのコン
スタントカラーが格納された色値アドレスへのポインタ
を与える。もし、パターンによる塗りつぶしの場合に
は、パラメータ記憶部1に設定されているパターン番号
を参照し、あらかじめ生成されたパターンのエッジリス
トと入力されたエッジリストと比較することによって、
パターンによる塗りつぶし処理を行なう。その後、エッ
ジリストは、エッジリストマージ部10へ送られる。
に設定されている色がデバイスに依存したコンスタント
カラーの場合には、各エッジリストに対して、そのコン
スタントカラーが格納された色値アドレスへのポインタ
を与える。もし、パターンによる塗りつぶしの場合に
は、パラメータ記憶部1に設定されているパターン番号
を参照し、あらかじめ生成されたパターンのエッジリス
トと入力されたエッジリストと比較することによって、
パターンによる塗りつぶし処理を行なう。その後、エッ
ジリストは、エッジリストマージ部10へ送られる。
【0015】エッジリストマージ部10は、パラメータ
記憶部1に設定されている出力先を参照し、出力機器へ
のページ出力の場合と、塗りつぶしに用いるパターンと
して登録する場合に分けて処理を行なう。ページ出力の
場合には、ページメモリ11に既に蓄えられている1ペ
ージ全体のエッジリストと、現在入力されたプリミティ
ブのエッジリストの位置関係を比較して、重なりのある
場合には、現在入力されたエッジリストを優先して、ペ
ージメモリ11に蓄えられたエッジリストを作り直し、
1ページのデータが終了するまでは、ページメモリ11
に格納する。また、パターンとして登録する場合には、
パターンメモリ9に蓄えられた指定されたパターンのエ
ッジリストとプリミティブのエッジリストを、ページ出
力の時と同じマージ方法でマージして、パターンメモリ
9のパターンエッジリストを作り直し、パターンメモリ
9に格納する。
記憶部1に設定されている出力先を参照し、出力機器へ
のページ出力の場合と、塗りつぶしに用いるパターンと
して登録する場合に分けて処理を行なう。ページ出力の
場合には、ページメモリ11に既に蓄えられている1ペ
ージ全体のエッジリストと、現在入力されたプリミティ
ブのエッジリストの位置関係を比較して、重なりのある
場合には、現在入力されたエッジリストを優先して、ペ
ージメモリ11に蓄えられたエッジリストを作り直し、
1ページのデータが終了するまでは、ページメモリ11
に格納する。また、パターンとして登録する場合には、
パターンメモリ9に蓄えられた指定されたパターンのエ
ッジリストとプリミティブのエッジリストを、ページ出
力の時と同じマージ方法でマージして、パターンメモリ
9のパターンエッジリストを作り直し、パターンメモリ
9に格納する。
【0016】ラスタライズ部12は、ページメモリ11
から1ページ分のエッジリストをスキャンラインごとに
読み出し、バッファメモリ13にスキャンラインごとに
ラスター展開した結果を書き込む。出力装置14は、バ
ッファメモリ13からプリンタの走査に同期して、ラス
ターデータを読み出し、出力を行なう。出力装置14と
しては、プリンタやディスプレイなど、種々の出力装置
を用いることができる。また、ネットワークなどを介し
て他のワークステーションに送信したり、記憶装置にそ
のまま格納しておくことも可能である。バッファメモリ
13は、出力装置14に合わせて、適宜用いればよく、
不要であればなくてもよい。
から1ページ分のエッジリストをスキャンラインごとに
読み出し、バッファメモリ13にスキャンラインごとに
ラスター展開した結果を書き込む。出力装置14は、バ
ッファメモリ13からプリンタの走査に同期して、ラス
ターデータを読み出し、出力を行なう。出力装置14と
しては、プリンタやディスプレイなど、種々の出力装置
を用いることができる。また、ネットワークなどを介し
て他のワークステーションに送信したり、記憶装置にそ
のまま格納しておくことも可能である。バッファメモリ
13は、出力装置14に合わせて、適宜用いればよく、
不要であればなくてもよい。
【0017】エッジリスト生成部5で生成されるエッジ
リストの生成処理について説明する。図3は、エッジリ
ストの生成の一例の説明図である。図3(A)に示すよ
うな、ある幅を有する曲線のベクターデータがエッジリ
スト生成部5に入力されると、スキャンライン、ここで
は水平方向のラインごとに、開始点、終点のアドレスを
求める。図3(A)の水平線がスキャンラインであり、
スキャンラインの左右の黒丸が始点、終点を示してい
る。求められた開始点、終点の座標は、図3(B)に示
すように、スキャンラインのy座標、開始点と終点のx
座標、色アドレスの増分、色アドレスへのポインタ等の
情報を組にして、エッジリストを作成する。
リストの生成処理について説明する。図3は、エッジリ
ストの生成の一例の説明図である。図3(A)に示すよ
うな、ある幅を有する曲線のベクターデータがエッジリ
スト生成部5に入力されると、スキャンライン、ここで
は水平方向のラインごとに、開始点、終点のアドレスを
求める。図3(A)の水平線がスキャンラインであり、
スキャンラインの左右の黒丸が始点、終点を示してい
る。求められた開始点、終点の座標は、図3(B)に示
すように、スキャンラインのy座標、開始点と終点のx
座標、色アドレスの増分、色アドレスへのポインタ等の
情報を組にして、エッジリストを作成する。
【0018】クリップ処理部6において行われるクリッ
プ処理の動作を説明する。図4、図5は、クリップ処理
部6の動作の一例を示すフローチャート、図6は、2つ
の区間の関係の説明図である。クリップ処理部6では、
クリップメモリ7に格納されているクリップエッジリス
トに基づき、エッジリスト生成部5で生成されたエッジ
リストに対してクリップ処理を行なう。クリップ処理
は、スキャンラインごとに行われる。図4,図5には、
1本のスキャンラインに対するクリップ処理を示してい
る。以下の説明中、クリップエッジリストセルとは、ク
リップすべき1つの区間を示している。また、エッジリ
ストセルとは、開始点から終点までの描画すべき1つの
区間を示している。これらのクリップエッジリストセル
及びエッジリストセルは、それぞれ、座標の小さいもの
から順に並べられているものとする。クリップ処理は、
クリップエッジリストセルとエッジリストセルとの区間
の関係により、それぞれ対応した処理を行なう。2つの
セルの区間の関係としては、図6に示すように、6つの
場合に分類している。クリップエッジリストセルで指定
された区間のみ、画像が出力され、それ以外の区間の画
像は削除される。
プ処理の動作を説明する。図4、図5は、クリップ処理
部6の動作の一例を示すフローチャート、図6は、2つ
の区間の関係の説明図である。クリップ処理部6では、
クリップメモリ7に格納されているクリップエッジリス
トに基づき、エッジリスト生成部5で生成されたエッジ
リストに対してクリップ処理を行なう。クリップ処理
は、スキャンラインごとに行われる。図4,図5には、
1本のスキャンラインに対するクリップ処理を示してい
る。以下の説明中、クリップエッジリストセルとは、ク
リップすべき1つの区間を示している。また、エッジリ
ストセルとは、開始点から終点までの描画すべき1つの
区間を示している。これらのクリップエッジリストセル
及びエッジリストセルは、それぞれ、座標の小さいもの
から順に並べられているものとする。クリップ処理は、
クリップエッジリストセルとエッジリストセルとの区間
の関係により、それぞれ対応した処理を行なう。2つの
セルの区間の関係としては、図6に示すように、6つの
場合に分類している。クリップエッジリストセルで指定
された区間のみ、画像が出力され、それ以外の区間の画
像は削除される。
【0019】まず、図4のS21において、処理を行な
うスキャンラインにクリップエッジリストセルがあるか
否かを判定する。1スキャンライン中に複数のクリップ
すべき区間が存在する場合もある。もし、クリップエッ
ジリストセルが存在しない場合には、クリップ処理を行
なう必要がないので、S22において、当該スキャンラ
インのエッジリストセルをすべて削除し、当該スキャン
ラインの処理を終了する。クリップエッジリストセルが
存在する場合には、S23において、スキャンラインに
存在する最初のクリップエッジリストセルを取り出し、
現在のクリップエッジリストセルとする。
うスキャンラインにクリップエッジリストセルがあるか
否かを判定する。1スキャンライン中に複数のクリップ
すべき区間が存在する場合もある。もし、クリップエッ
ジリストセルが存在しない場合には、クリップ処理を行
なう必要がないので、S22において、当該スキャンラ
インのエッジリストセルをすべて削除し、当該スキャン
ラインの処理を終了する。クリップエッジリストセルが
存在する場合には、S23において、スキャンラインに
存在する最初のクリップエッジリストセルを取り出し、
現在のクリップエッジリストセルとする。
【0020】次に、S24において、当該スキャンライ
ンにエッジリストセルがあるか否かを判定する。もし、
エッジリストセルが存在しない場合には、描画すべきプ
リミティブが存在しないのであるから、S25におい
て、クリップエッジリストセルを解放し、当該スキャン
ラインの処理を終了する。エッジリストセルが存在する
場合には、S26において、スキャンラインに存在する
最初のエッジリストセルを取り出し、現在のエッジリス
トセルとする。
ンにエッジリストセルがあるか否かを判定する。もし、
エッジリストセルが存在しない場合には、描画すべきプ
リミティブが存在しないのであるから、S25におい
て、クリップエッジリストセルを解放し、当該スキャン
ラインの処理を終了する。エッジリストセルが存在する
場合には、S26において、スキャンラインに存在する
最初のエッジリストセルを取り出し、現在のエッジリス
トセルとする。
【0021】上述のようにしてセットされた現在のクリ
ップエッジリストセルと現在のエッジリストセルに基づ
き、S27において、クリップエッジリストセルの開始
点をcsx、終点をcex、S28において、エッジリ
ストセルの開始点をsx、終点をexとする。以下、こ
の座標の位置関係から、クリップ処理を行なう。
ップエッジリストセルと現在のエッジリストセルに基づ
き、S27において、クリップエッジリストセルの開始
点をcsx、終点をcex、S28において、エッジリ
ストセルの開始点をsx、終点をexとする。以下、こ
の座標の位置関係から、クリップ処理を行なう。
【0022】S29において、クリップエッジリストセ
ルの開始点csxとエッジリストセルの終点exを比較
し、クリップエッジリストセルの開始点csxのほうが
大きい場合、すなわち、図6(A)に示す関係の場合に
は、現在のエッジリストセルがクリップエッジリストセ
ルと重複していないことを示しているので、出力すべき
画像はなく、S30において、現在のエッジリストセル
を削除し、次のエッジリストセルを現在のエッジリスト
セルにセットして、S41へ進む。
ルの開始点csxとエッジリストセルの終点exを比較
し、クリップエッジリストセルの開始点csxのほうが
大きい場合、すなわち、図6(A)に示す関係の場合に
は、現在のエッジリストセルがクリップエッジリストセ
ルと重複していないことを示しているので、出力すべき
画像はなく、S30において、現在のエッジリストセル
を削除し、次のエッジリストセルを現在のエッジリスト
セルにセットして、S41へ進む。
【0023】S29の条件に適合しない場合には、S3
1において、クリップエッジリストセルの開始点csx
がエッジリストセルの開始点以上であり、かつ、クリッ
プエッジリストセルの終点cexがエッジリストセルの
終点より大きく、かつ、クリップエッジリストセルの開
始点csxがエッジリストセルの終点ex以下であるか
否かが判定される。この条件は、図6(B)に示すよう
に、クリップエッジリストセルの開始点がエッジリスト
セルの区間内にあり、また、エッジリストセルの終点が
クリップエッジリストセルの区間内にあるような位置関
係の場合を判定している。この場合には、エッジリスト
セルとクリップエッジリストセルの重なっている部分の
みを有効とし、それ以外の部分を削除する必要があるの
で、S32において、エッジリストセルの区間をクリッ
プエッジリストセルの開始点csxからエッジリストセ
ルの終点exまでとするように、エッジリストセルを開
始点sxをクリップエッジリストセルの開始点csxに
セットして、S41へ進む。
1において、クリップエッジリストセルの開始点csx
がエッジリストセルの開始点以上であり、かつ、クリッ
プエッジリストセルの終点cexがエッジリストセルの
終点より大きく、かつ、クリップエッジリストセルの開
始点csxがエッジリストセルの終点ex以下であるか
否かが判定される。この条件は、図6(B)に示すよう
に、クリップエッジリストセルの開始点がエッジリスト
セルの区間内にあり、また、エッジリストセルの終点が
クリップエッジリストセルの区間内にあるような位置関
係の場合を判定している。この場合には、エッジリスト
セルとクリップエッジリストセルの重なっている部分の
みを有効とし、それ以外の部分を削除する必要があるの
で、S32において、エッジリストセルの区間をクリッ
プエッジリストセルの開始点csxからエッジリストセ
ルの終点exまでとするように、エッジリストセルを開
始点sxをクリップエッジリストセルの開始点csxに
セットして、S41へ進む。
【0024】S31の条件にも適合しない場合には、S
33において、クリップエッジリストセルの開始点cs
xがエッジリストセルの開始点sx以下であり、かつ、
クリップエッジリストセルの終点cexがエッジリスト
セルの終点ex以上であるか否かが判定される。この条
件は、図6(C)に示すように、エッジリストセルの区
間がクリップエッジリストセルの区間に含まれてしまう
場合を示している。この場合には、エッジリストセルは
すべて有効であるので、そのまま次のエッジリストセル
の処理に移行すべく、S34において、次のエッジリス
トセルを現在のエッジリストセルとして、S41へ進
む。
33において、クリップエッジリストセルの開始点cs
xがエッジリストセルの開始点sx以下であり、かつ、
クリップエッジリストセルの終点cexがエッジリスト
セルの終点ex以上であるか否かが判定される。この条
件は、図6(C)に示すように、エッジリストセルの区
間がクリップエッジリストセルの区間に含まれてしまう
場合を示している。この場合には、エッジリストセルは
すべて有効であるので、そのまま次のエッジリストセル
の処理に移行すべく、S34において、次のエッジリス
トセルを現在のエッジリストセルとして、S41へ進
む。
【0025】S33の条件にも適合しない場合には、S
35において、クリップエッジリストセルの開始点cs
xがエッジリストセルの開始点sx以上であり、かつ、
クリップエッジリストセルの終点cexがエッジリスト
セルの終点ex以下であるか否かが判定される。この条
件は、図6(D)に示すように、エッジリストセルの区
間内にクリップエッジリストセルの区間が含まれる場合
を示している。この場合には、エッジリストセルのう
ち、クリップエッジリストセルの区間は少なくとも有効
となる。S36において、まず、エッジリストセルの区
間のうち、クリップエッジリストセルの区間を有効とす
るように、エッジリストセルの開始点sxをクリップエ
ッジリストセルの開始点csxとし、エッジリストセル
の終点exをエッジリストセルの終点cexとするよう
にセットする。また、クリップエッジリストセルよりも
座標の大きい部分のエッジリストセルについては、べつ
のクリップエッジリストセルとの関係を判断する必要が
ある。そのため、残りの部分のエッジリストセルを作成
し、次のエッジリストセルとして挿入するとともに、こ
れを現在のエッジリストセルにする。作成するエッジリ
ストセルの開始点はクリップエッジリストセルの終点の
次の点とし、終点はもとのエッジリストセルの終点とす
る。そして、次のクリップエッジリストセルを現在のク
リップエッジリストセルとして、S41へ進む。これ以
降の処理により、新たに作成されたエッジリストセル
と、次のクリップエッジリストセルとの比較処理が行わ
れることになる。
35において、クリップエッジリストセルの開始点cs
xがエッジリストセルの開始点sx以上であり、かつ、
クリップエッジリストセルの終点cexがエッジリスト
セルの終点ex以下であるか否かが判定される。この条
件は、図6(D)に示すように、エッジリストセルの区
間内にクリップエッジリストセルの区間が含まれる場合
を示している。この場合には、エッジリストセルのう
ち、クリップエッジリストセルの区間は少なくとも有効
となる。S36において、まず、エッジリストセルの区
間のうち、クリップエッジリストセルの区間を有効とす
るように、エッジリストセルの開始点sxをクリップエ
ッジリストセルの開始点csxとし、エッジリストセル
の終点exをエッジリストセルの終点cexとするよう
にセットする。また、クリップエッジリストセルよりも
座標の大きい部分のエッジリストセルについては、べつ
のクリップエッジリストセルとの関係を判断する必要が
ある。そのため、残りの部分のエッジリストセルを作成
し、次のエッジリストセルとして挿入するとともに、こ
れを現在のエッジリストセルにする。作成するエッジリ
ストセルの開始点はクリップエッジリストセルの終点の
次の点とし、終点はもとのエッジリストセルの終点とす
る。そして、次のクリップエッジリストセルを現在のク
リップエッジリストセルとして、S41へ進む。これ以
降の処理により、新たに作成されたエッジリストセル
と、次のクリップエッジリストセルとの比較処理が行わ
れることになる。
【0026】S35の条件に適合しない場合には、S3
7において、クリップエッジリストセルの開始点csx
がエッジリストセルの開始点sx以下であり、かつ、ク
リップエッジリストセルの終点cexがエッジリストセ
ルの終点ex以下であり、かつ、クリップエッジリスト
セルの終点cexがエッジリストセルの終点ex以上で
あるか否かが判定される。この条件は、図6(E)に示
すように、クリップエッジリストセルの終点がエッジリ
ストセルの区間内にあり、また、エッジリストセルの開
始点がクリップエッジリストセルの区間内にあるような
位置関係の場合を判定している。この場合には、エッジ
リストセルの開始点からクリップエッジリストセルの終
点までの区間が有効となる。他の区間については、次以
降のクリップエッジリストセルとの判定を行なう必要が
ある。そのため、S38において、まず、エッジリスト
セルの終点exをクリップエッジリストセルの終点ce
xにセットし、さらに、クリップエッジリストセルの終
点cexの次の点からもとのエッジリストセルの終点e
xまでの区間を有する新たなエッジリストセルを作成
し、現在のエッジリストセルの次に挿入するとともに、
これを現在のエッジリストセルにする。そして、次のク
リップエッジリストセルを現在のクリップエッジリスト
セルにして、S41へ進む。これ以降の処理により、新
たに作成されたエッジリストセルと、次のクリップエッ
ジリストセルとの比較処理が行われることになる。
7において、クリップエッジリストセルの開始点csx
がエッジリストセルの開始点sx以下であり、かつ、ク
リップエッジリストセルの終点cexがエッジリストセ
ルの終点ex以下であり、かつ、クリップエッジリスト
セルの終点cexがエッジリストセルの終点ex以上で
あるか否かが判定される。この条件は、図6(E)に示
すように、クリップエッジリストセルの終点がエッジリ
ストセルの区間内にあり、また、エッジリストセルの開
始点がクリップエッジリストセルの区間内にあるような
位置関係の場合を判定している。この場合には、エッジ
リストセルの開始点からクリップエッジリストセルの終
点までの区間が有効となる。他の区間については、次以
降のクリップエッジリストセルとの判定を行なう必要が
ある。そのため、S38において、まず、エッジリスト
セルの終点exをクリップエッジリストセルの終点ce
xにセットし、さらに、クリップエッジリストセルの終
点cexの次の点からもとのエッジリストセルの終点e
xまでの区間を有する新たなエッジリストセルを作成
し、現在のエッジリストセルの次に挿入するとともに、
これを現在のエッジリストセルにする。そして、次のク
リップエッジリストセルを現在のクリップエッジリスト
セルにして、S41へ進む。これ以降の処理により、新
たに作成されたエッジリストセルと、次のクリップエッ
ジリストセルとの比較処理が行われることになる。
【0027】S37の条件に適合しない場合には、S3
9において、クリップエッジリストセルの終点cexが
エッジリストセルの開始点sx以下であるか否かが判定
される。この条件は、図6(F)に示すように、現在の
クリップエッジリストセルの区間内にエッジリストセル
は含まれていない。しかし、別のクリップエッジリスト
セルと重複した区間を有する可能性があるので、S40
において、次のクリップエッジリストセルを現在のクリ
ップエッジリストセルとして、処理を続ける。
9において、クリップエッジリストセルの終点cexが
エッジリストセルの開始点sx以下であるか否かが判定
される。この条件は、図6(F)に示すように、現在の
クリップエッジリストセルの区間内にエッジリストセル
は含まれていない。しかし、別のクリップエッジリスト
セルと重複した区間を有する可能性があるので、S40
において、次のクリップエッジリストセルを現在のクリ
ップエッジリストセルとして、処理を続ける。
【0028】上述の各条件の処理を行なった後、S41
において、現在のクリップエッジリストセルがnul
l、すなわち、当該スキャンラインのクリップエッジリ
ストが終了したか否かを判定し、終了した場合には、残
りのエッジリストは出力されないのですべて削除し、当
該スキャンラインの処理を終了する。現在のクリップエ
ッジリストセルが存在する場合には、S42において、
現在のエッジリストセルがnull、すなわち、当該ス
キャンラインのエッジリストセルが終了したか否かを判
定し、終了した場合には、当該スキャンラインの処理を
終了する。現在のクリップエッジリストセル及び現在の
エッジリストセルが存在する場合には、S27へ戻り、
判定処理をくり返し行なう。
において、現在のクリップエッジリストセルがnul
l、すなわち、当該スキャンラインのクリップエッジリ
ストが終了したか否かを判定し、終了した場合には、残
りのエッジリストは出力されないのですべて削除し、当
該スキャンラインの処理を終了する。現在のクリップエ
ッジリストセルが存在する場合には、S42において、
現在のエッジリストセルがnull、すなわち、当該ス
キャンラインのエッジリストセルが終了したか否かを判
定し、終了した場合には、当該スキャンラインの処理を
終了する。現在のクリップエッジリストセル及び現在の
エッジリストセルが存在する場合には、S27へ戻り、
判定処理をくり返し行なう。
【0029】このようにして、1スキャンラインのクリ
ップ処理を行なう。このような1スキャンラインについ
ての処理をくり返し行ない、各プリミティブに対するク
リップ処理が行われる。クリップ処理の行われたエッジ
リストは色付け処理部8に送られる。
ップ処理を行なう。このような1スキャンラインについ
ての処理をくり返し行ない、各プリミティブに対するク
リップ処理が行われる。クリップ処理の行われたエッジ
リストは色付け処理部8に送られる。
【0030】次に、色付け処理部8において行われる塗
りつぶし処理について説明する。上述のように、パター
ンによる塗りつぶしは、あらかじめ生成されパターンメ
モリ9に格納されているパターンエッジリストと、クリ
ップ処理部6から送られて来るエッジリストと比較し、
マージすることによって、パターンによる塗りつぶし処
理が行なわれる。
りつぶし処理について説明する。上述のように、パター
ンによる塗りつぶしは、あらかじめ生成されパターンメ
モリ9に格納されているパターンエッジリストと、クリ
ップ処理部6から送られて来るエッジリストと比較し、
マージすることによって、パターンによる塗りつぶし処
理が行なわれる。
【0031】まず、パターンエッジリストについて説明
する。図7は、パターンエッジリストの一例の説明図で
ある。パターンエッジリストは、塗りつぶしに用いるパ
ターンのエッジリストであり、エッジリスト自体の構成
は、上述の図3に示したものとほぼ同様である。すなわ
ち、1つのエッジリストのセルは、スキャンラインのy
座標、開始点のx座標、終点のx座標、色アドレスの増
分、色アドレスへのポインタ等の情報を有する。それに
加えて、パターンエッジリストは、1つのパターンの大
きさと、配置する場合の原点のオフセット座標を有す
る。例えば、図7(A)に示した例では、1つのパター
ンの大きさは10×8であり、その中に底辺8、高さ6
の三角形がある。このようなパターンのパターンエッジ
リストは、図7(B)に示すようになる。ここでは、オ
フセットの値は、(0,0)としている。
する。図7は、パターンエッジリストの一例の説明図で
ある。パターンエッジリストは、塗りつぶしに用いるパ
ターンのエッジリストであり、エッジリスト自体の構成
は、上述の図3に示したものとほぼ同様である。すなわ
ち、1つのエッジリストのセルは、スキャンラインのy
座標、開始点のx座標、終点のx座標、色アドレスの増
分、色アドレスへのポインタ等の情報を有する。それに
加えて、パターンエッジリストは、1つのパターンの大
きさと、配置する場合の原点のオフセット座標を有す
る。例えば、図7(A)に示した例では、1つのパター
ンの大きさは10×8であり、その中に底辺8、高さ6
の三角形がある。このようなパターンのパターンエッジ
リストは、図7(B)に示すようになる。ここでは、オ
フセットの値は、(0,0)としている。
【0032】次にパターンのマージ処理について説明す
る。図8乃至図10は、パターンエッジリストのマージ
処理の一例を示すフローチャート、図11は、エッジリ
ストセルとパターンエッジリストセルの関係の説明図で
ある。パターンメモリ9に格納されたパターンエッジリ
ストをもとに、プリミティブ内をパターンによって塗り
つぶす。プリミティブは、上述のようにエッジリストの
形式で与えられる。また、パターンも、パターンエッジ
リストの形式で与えられ、以下の処理では、スキャンラ
インの最大幅に展開され、その後、エッジリストとの比
較によってマージが行われる。ここで、エッジリストセ
ルとは、開始点から終点までの描画すべき1つの区間を
示しており、開始点をsx、終点をexとする。また、
パターンエッジリストセルとは、パターンの開始点から
終点までの区間を示しており、開始点をpsx、終点を
pexとする。これらのエッジリストセル及びパターン
エッジリストセルは、それぞれ、座標の小さいものから
順に並べられているものとする。パターンの大きさは、
x方向がoffsetx、y方向がoffsetyとす
る。
る。図8乃至図10は、パターンエッジリストのマージ
処理の一例を示すフローチャート、図11は、エッジリ
ストセルとパターンエッジリストセルの関係の説明図で
ある。パターンメモリ9に格納されたパターンエッジリ
ストをもとに、プリミティブ内をパターンによって塗り
つぶす。プリミティブは、上述のようにエッジリストの
形式で与えられる。また、パターンも、パターンエッジ
リストの形式で与えられ、以下の処理では、スキャンラ
インの最大幅に展開され、その後、エッジリストとの比
較によってマージが行われる。ここで、エッジリストセ
ルとは、開始点から終点までの描画すべき1つの区間を
示しており、開始点をsx、終点をexとする。また、
パターンエッジリストセルとは、パターンの開始点から
終点までの区間を示しており、開始点をpsx、終点を
pexとする。これらのエッジリストセル及びパターン
エッジリストセルは、それぞれ、座標の小さいものから
順に並べられているものとする。パターンの大きさは、
x方向がoffsetx、y方向がoffsetyとす
る。
【0033】まず、図8のS51において、エッジリス
トのスキャンラインslがプリミティブの大きさを越え
たか、すなわち、塗りつぶしの領域が終了したか否かを
判断し、終了していれば、処理を終了する。スキャンラ
インslが塗りつぶしを行なうラインであれば、S52
において、パターンエッジリストのスキャンラインpl
を求める。パターンエッジリストのスキャンラインpl
は、エッジリストのスキャンラインslをパターンのy
方向の大きさoffsetyで割ったときの余りとす
る。S53において、パターンエッジリストのスキャン
ラインplにパターンエッジリストセルが存在するか否
かを判定する。パターンエッジリストセルが存在しなけ
れば、パターンによる塗りつぶし処理を行なう必要がな
いので、S54において、エッジリストのスキャンライ
ンslをインクリメントして、S51へ戻る。パターン
エッジリストセルが存在する場合には、S55におい
て、パターンエッジリストのスキャンラインplに存在
するパターンエッジリストセルによって、スキャンライ
ンを満たすようにくり返し展開する。すなわち、スキャ
ンライン全体にパターンがくり返し配置されるように、
パターンエッジリストの開始点psx、終点pexに、
パターンのx方向の大きさoffsetxをくり返し足
しながら繋げて、スキャンライン全体のパターンエッジ
リストを作成する。そして、最初のパターンエッジリス
トセルを取り出し、現在のパターンエッジリストセルと
する。
トのスキャンラインslがプリミティブの大きさを越え
たか、すなわち、塗りつぶしの領域が終了したか否かを
判断し、終了していれば、処理を終了する。スキャンラ
インslが塗りつぶしを行なうラインであれば、S52
において、パターンエッジリストのスキャンラインpl
を求める。パターンエッジリストのスキャンラインpl
は、エッジリストのスキャンラインslをパターンのy
方向の大きさoffsetyで割ったときの余りとす
る。S53において、パターンエッジリストのスキャン
ラインplにパターンエッジリストセルが存在するか否
かを判定する。パターンエッジリストセルが存在しなけ
れば、パターンによる塗りつぶし処理を行なう必要がな
いので、S54において、エッジリストのスキャンライ
ンslをインクリメントして、S51へ戻る。パターン
エッジリストセルが存在する場合には、S55におい
て、パターンエッジリストのスキャンラインplに存在
するパターンエッジリストセルによって、スキャンライ
ンを満たすようにくり返し展開する。すなわち、スキャ
ンライン全体にパターンがくり返し配置されるように、
パターンエッジリストの開始点psx、終点pexに、
パターンのx方向の大きさoffsetxをくり返し足
しながら繋げて、スキャンライン全体のパターンエッジ
リストを作成する。そして、最初のパターンエッジリス
トセルを取り出し、現在のパターンエッジリストセルと
する。
【0034】S56において、エッジリストのスキャン
ラインsl内にエッジリストセルがあるか否かを判定す
る。もしなければ、塗りつぶすべき領域は存在しないの
で、S57において、エッジリストのスキャンラインs
lをインクリメントして、S51へ戻る。エッジリスト
セルが存在する場合には、S58において、最初のエッ
ジリストセルを現在のエッジリストセルとし、以下の比
較処理を行なう。
ラインsl内にエッジリストセルがあるか否かを判定す
る。もしなければ、塗りつぶすべき領域は存在しないの
で、S57において、エッジリストのスキャンラインs
lをインクリメントして、S51へ戻る。エッジリスト
セルが存在する場合には、S58において、最初のエッ
ジリストセルを現在のエッジリストセルとし、以下の比
較処理を行なう。
【0035】S59乃至S79は、現在のエッジリスト
セルと現在のパターンエッジリストセルの比較処理であ
る。S59において、現在のパターンエッジリストセル
の開始点と終点を、それぞれ、psx、pexにセット
する。また、S60において、現在のエッジリストセル
の開始点と終点を、それぞれ、sx、exにセットす
る。これらの値により、図11に示すような区間の関係
に分けて処理を行なう。
セルと現在のパターンエッジリストセルの比較処理であ
る。S59において、現在のパターンエッジリストセル
の開始点と終点を、それぞれ、psx、pexにセット
する。また、S60において、現在のエッジリストセル
の開始点と終点を、それぞれ、sx、exにセットす
る。これらの値により、図11に示すような区間の関係
に分けて処理を行なう。
【0036】S61において、パターンエッジリストセ
ルの開始点psxがエッジリストセルの終点exよりも
大きい場合、すなわち、図11(A)の場合には、エッ
ジリストセル内にはパターンは存在しないことを意味す
るので、エッジリストセル内へのパターンのマージは行
なわず、S62において、次のエッジリストセルを現在
のエッジリストセルとして、S77へ進む。
ルの開始点psxがエッジリストセルの終点exよりも
大きい場合、すなわち、図11(A)の場合には、エッ
ジリストセル内にはパターンは存在しないことを意味す
るので、エッジリストセル内へのパターンのマージは行
なわず、S62において、次のエッジリストセルを現在
のエッジリストセルとして、S77へ進む。
【0037】S63では、パターンエッジリストセルの
開始点psxがエッジリストセルの開始点sx以上であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exより大きく、かつ、パターン
エッジリストセルの開始点psxがエッジリストセルの
終点ex以下であるか否かを判断する。この条件は、図
11(B)に示す場合に相当し、パターンエッジリスト
セルの開始点を含む一部区間がエッジリストセルに含ま
れる場合である。この場合、エッジリストセルとパター
ンエッジリストセルの区間が重なる部分が、パターンに
よって塗りつぶされる領域となる。S64において、ま
ず、エッジリストセルの終点をパターンエッジリストセ
ルの開始点psxの手前の点、すなわち、psx−1と
してパターンエッジリストセルの開始点より小さい区間
を確定する。そして、新たなエッジリストセルの開始点
sxをパターンエッジリストセルの開始点psxとし、
終点exをもとのエッジリストセルの終点exとし、色
などの他の属性をパターンエッジリストセルと同じとし
たエッジリストを作成し、現在のエッジリストの次に挿
入する。この処理により、エッジリストセルの終点ex
までの処理は終了するので、挿入した新たなエッジリス
トセルの次のエッジリストセルを現在のエッジリストセ
ルにして、S77へ進む。このとき、パターンエッジリ
ストセルの残りの部分と、次のエッジリストセルとの比
較を行なうので、現在のパターンエッジリストセルはそ
のままである。
開始点psxがエッジリストセルの開始点sx以上であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exより大きく、かつ、パターン
エッジリストセルの開始点psxがエッジリストセルの
終点ex以下であるか否かを判断する。この条件は、図
11(B)に示す場合に相当し、パターンエッジリスト
セルの開始点を含む一部区間がエッジリストセルに含ま
れる場合である。この場合、エッジリストセルとパター
ンエッジリストセルの区間が重なる部分が、パターンに
よって塗りつぶされる領域となる。S64において、ま
ず、エッジリストセルの終点をパターンエッジリストセ
ルの開始点psxの手前の点、すなわち、psx−1と
してパターンエッジリストセルの開始点より小さい区間
を確定する。そして、新たなエッジリストセルの開始点
sxをパターンエッジリストセルの開始点psxとし、
終点exをもとのエッジリストセルの終点exとし、色
などの他の属性をパターンエッジリストセルと同じとし
たエッジリストを作成し、現在のエッジリストの次に挿
入する。この処理により、エッジリストセルの終点ex
までの処理は終了するので、挿入した新たなエッジリス
トセルの次のエッジリストセルを現在のエッジリストセ
ルにして、S77へ進む。このとき、パターンエッジリ
ストセルの残りの部分と、次のエッジリストセルとの比
較を行なうので、現在のパターンエッジリストセルはそ
のままである。
【0038】S65では、パターンエッジリストセルの
開始点psxがエッジリストセルの開始点sx以上であ
り、かつ、パターンエッジリストセルの終点pexとエ
ッジリストセルの終点exが等しく、かつ、パターンエ
ッジリストセルの開始点psxがエッジリストセルの終
点ex以下であるか否かを判断する。この条件は、図1
1(C)に示す場合に相当し、パターンエッジリストセ
ルの区間がエッジリストセルに含まれ、双方の終点が一
致している場合である。この場合も、エッジリストセル
とパターンエッジリストセルの区間が重なる部分が、パ
ターンによって塗りつぶされる領域となる。S66にお
いて、まず、エッジリストセルの終点をパターンエッジ
リストセルの開始点psxの手前の点、すなわち、ps
x−1としてパターンエッジリストセルの開始点より小
さい区間を確定する。そして、新たなエッジリストセル
の開始点sxをパターンエッジリストセルの開始点ps
xとし、終点exをもとのエッジリストセルの終点ex
とし、色などの他の属性をパターンエッジリストセルと
同じとしたエッジリストを作成し、現在のエッジリスト
の次に挿入する。この処理により、エッジリストセルの
終点exまでの処理は終了するので、挿入した新たなエ
ッジリストセルの次のエッジリストセルを現在のエッジ
リストセルにする。また、パターンエッジリストセルも
終点pexまで到達したので、次のパターンエッジリス
トセルを現在のパターンエッジリストセルとして、S7
7へ進む。
開始点psxがエッジリストセルの開始点sx以上であ
り、かつ、パターンエッジリストセルの終点pexとエ
ッジリストセルの終点exが等しく、かつ、パターンエ
ッジリストセルの開始点psxがエッジリストセルの終
点ex以下であるか否かを判断する。この条件は、図1
1(C)に示す場合に相当し、パターンエッジリストセ
ルの区間がエッジリストセルに含まれ、双方の終点が一
致している場合である。この場合も、エッジリストセル
とパターンエッジリストセルの区間が重なる部分が、パ
ターンによって塗りつぶされる領域となる。S66にお
いて、まず、エッジリストセルの終点をパターンエッジ
リストセルの開始点psxの手前の点、すなわち、ps
x−1としてパターンエッジリストセルの開始点より小
さい区間を確定する。そして、新たなエッジリストセル
の開始点sxをパターンエッジリストセルの開始点ps
xとし、終点exをもとのエッジリストセルの終点ex
とし、色などの他の属性をパターンエッジリストセルと
同じとしたエッジリストを作成し、現在のエッジリスト
の次に挿入する。この処理により、エッジリストセルの
終点exまでの処理は終了するので、挿入した新たなエ
ッジリストセルの次のエッジリストセルを現在のエッジ
リストセルにする。また、パターンエッジリストセルも
終点pexまで到達したので、次のパターンエッジリス
トセルを現在のパターンエッジリストセルとして、S7
7へ進む。
【0039】S67では、パターンエッジリストセルの
開始点psxがエッジリストセルの開始点sx以上であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exより小さいか否かを判断す
る。この条件は、図11(D)に示す場合に相当し、パ
ターンエッジリストセルがエッジリストセルに含まれる
場合である。この場合、パターンエッジリストセルの区
間が、パターンによって塗りつぶされる領域となる。S
68において、まず、エッジリストセルの終点をパター
ンエッジリストセルの開始点psxの手前の点、すなわ
ち、psx−1としてパターンエッジリストセルの開始
点より小さい区間を確定する。そして、パターンエッジ
リストセルの区間を新たなエッジリストセルとするた
め、開始点sxをパターンエッジリストセルの開始点p
sxとし、終点exをパターンエッジリストセルの終点
pexとし、色などの他の属性をパターンエッジリスト
セルと同じとしたエッジリストを作成し、現在のエッジ
リストの次に挿入する。この処理により、エッジリスト
セルのうち、パターンエッジリストセルの終点pexま
での処理は終了するが、残りの区間は未処理であるの
で、残りの区間の新しいエッジリスト、すなわち、開始
点sxをパターンエッジリストセルの終点の次の点pe
x+1とし、終点exを現在のエッジリストセルの終点
exとするエッジリストセルを作成し、先に挿入したエ
ッジリストセルの次に挿入するとともに、このエッジリ
ストセルを現在のエッジリストセルとして、以後の処理
を行なう。この残りの区間の新しいエッジリストにおい
て、色などの属性は、もとのエッジリストの属性と同じ
とする。一方、次のパターンエッジリストセルを現在の
パターンエッジリストセルとして、次のパターンエッジ
リストセルについての処理に移る。そして、S77へ進
む。
開始点psxがエッジリストセルの開始点sx以上であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exより小さいか否かを判断す
る。この条件は、図11(D)に示す場合に相当し、パ
ターンエッジリストセルがエッジリストセルに含まれる
場合である。この場合、パターンエッジリストセルの区
間が、パターンによって塗りつぶされる領域となる。S
68において、まず、エッジリストセルの終点をパター
ンエッジリストセルの開始点psxの手前の点、すなわ
ち、psx−1としてパターンエッジリストセルの開始
点より小さい区間を確定する。そして、パターンエッジ
リストセルの区間を新たなエッジリストセルとするた
め、開始点sxをパターンエッジリストセルの開始点p
sxとし、終点exをパターンエッジリストセルの終点
pexとし、色などの他の属性をパターンエッジリスト
セルと同じとしたエッジリストを作成し、現在のエッジ
リストの次に挿入する。この処理により、エッジリスト
セルのうち、パターンエッジリストセルの終点pexま
での処理は終了するが、残りの区間は未処理であるの
で、残りの区間の新しいエッジリスト、すなわち、開始
点sxをパターンエッジリストセルの終点の次の点pe
x+1とし、終点exを現在のエッジリストセルの終点
exとするエッジリストセルを作成し、先に挿入したエ
ッジリストセルの次に挿入するとともに、このエッジリ
ストセルを現在のエッジリストセルとして、以後の処理
を行なう。この残りの区間の新しいエッジリストにおい
て、色などの属性は、もとのエッジリストの属性と同じ
とする。一方、次のパターンエッジリストセルを現在の
パターンエッジリストセルとして、次のパターンエッジ
リストセルについての処理に移る。そして、S77へ進
む。
【0040】S69では、パターンエッジリストセルの
開始点psxがエッジリストセルの開始点sx以下であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exより大きいか否かを判断す
る。この条件は、図11(E)に示す場合に相当し、パ
ターンエッジリストセルの区間にエッジリストセルが含
まれる場合である。この場合、エッジリストセルの区間
すべてに、パターンを展開することになる。S70にお
いて、エッジリストセルの開始点sx、終点exはその
ままにして、色など他の属性をパターンエッジリストセ
ルと同じとする。これにより、エッジリストセルの区間
の塗りつぶしが行われたことになる。そして、次のエッ
ジリストセルを現在のエッジリストセルとして、S77
へ進む。このとき、パターンエッジリストセルはそのま
まである。
開始点psxがエッジリストセルの開始点sx以下であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exより大きいか否かを判断す
る。この条件は、図11(E)に示す場合に相当し、パ
ターンエッジリストセルの区間にエッジリストセルが含
まれる場合である。この場合、エッジリストセルの区間
すべてに、パターンを展開することになる。S70にお
いて、エッジリストセルの開始点sx、終点exはその
ままにして、色など他の属性をパターンエッジリストセ
ルと同じとする。これにより、エッジリストセルの区間
の塗りつぶしが行われたことになる。そして、次のエッ
ジリストセルを現在のエッジリストセルとして、S77
へ進む。このとき、パターンエッジリストセルはそのま
まである。
【0041】S71では、パターンエッジリストセルの
開始点psxがエッジリストセルの開始点sx以下であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exと等しいか否かを判断する。
この条件は、図11(F)に示す場合に相当し、パター
ンエッジリストセルの区間にエッジリストセルが含ま
れ、終点が等しい場合である。この場合も、エッジリス
トセルの区間すべてに、パターンを展開することにな
る。S72において、エッジリストセルの開始点sx、
終点exはそのままにして、色など他の属性をパターン
エッジリストセルと同じとする。これにより、エッジリ
ストセルの区間の塗りつぶしが行われたことになる。そ
して、次のエッジリストセルを現在のエッジリストセル
とするとともに、次のパターンエッジリストセルを現在
のパターンエッジリストセルとして、次のエッジリスト
セル及びパターンエッジリストセルの処理に移行する。
そして、S77へ進む。
開始点psxがエッジリストセルの開始点sx以下であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exと等しいか否かを判断する。
この条件は、図11(F)に示す場合に相当し、パター
ンエッジリストセルの区間にエッジリストセルが含ま
れ、終点が等しい場合である。この場合も、エッジリス
トセルの区間すべてに、パターンを展開することにな
る。S72において、エッジリストセルの開始点sx、
終点exはそのままにして、色など他の属性をパターン
エッジリストセルと同じとする。これにより、エッジリ
ストセルの区間の塗りつぶしが行われたことになる。そ
して、次のエッジリストセルを現在のエッジリストセル
とするとともに、次のパターンエッジリストセルを現在
のパターンエッジリストセルとして、次のエッジリスト
セル及びパターンエッジリストセルの処理に移行する。
そして、S77へ進む。
【0042】S73では、パターンエッジリストセルの
開始点psxがエッジリストセルの開始点sx以下であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exより小さく、かつ、パターン
エッジリストセルの終点pexがエッジリストセルの開
始点sx以上であるか否かを判断する。この条件は、図
11(G)に示す場合に相当し、エッジリストセルの開
始点からパターンエッジリストセルの終点までが、パタ
ーンによって塗りつぶされる領域となる。S74におい
て、まず、塗りつぶされる領域、すなわち、エッジリス
トセルの開始点sxを開始点とし、パターンエッジリス
トセルの終点pexを終点とする新たなエッジリストセ
ルを作成する。作成したエッジリストセルの色などの他
の属性は、パターンエッジリストセルの属性とする。作
成したエッジリストセルを現在のエッジリストセルの前
に挿入する。そして、現在のエッジリストセルの開始点
をパターンエッジリストセルの終点pexの次の点、す
なわち、pex+1として、残りの区間の判定を行な
う。また、次のパターンエッジリストセルを現在のパタ
ーンエッジリストセルにして、S77へ進む。
開始点psxがエッジリストセルの開始点sx以下であ
り、かつ、パターンエッジリストセルの終点pexがエ
ッジリストセルの終点exより小さく、かつ、パターン
エッジリストセルの終点pexがエッジリストセルの開
始点sx以上であるか否かを判断する。この条件は、図
11(G)に示す場合に相当し、エッジリストセルの開
始点からパターンエッジリストセルの終点までが、パタ
ーンによって塗りつぶされる領域となる。S74におい
て、まず、塗りつぶされる領域、すなわち、エッジリス
トセルの開始点sxを開始点とし、パターンエッジリス
トセルの終点pexを終点とする新たなエッジリストセ
ルを作成する。作成したエッジリストセルの色などの他
の属性は、パターンエッジリストセルの属性とする。作
成したエッジリストセルを現在のエッジリストセルの前
に挿入する。そして、現在のエッジリストセルの開始点
をパターンエッジリストセルの終点pexの次の点、す
なわち、pex+1として、残りの区間の判定を行な
う。また、次のパターンエッジリストセルを現在のパタ
ーンエッジリストセルにして、S77へ進む。
【0043】S75では、パターンエッジリストセルの
終点pexがエッジリストセルの開始点sxよりも小さ
い場合、すなわち、図11(H)に示すように、重なる
部分のない場合には、現在のパターンエッジリストセル
によっては、現在のエッジリストセル内に塗りつぶしが
行なわれないことを意味するので、S76において、次
のパターンエッジリストセルを現在のパターンエッジリ
ストセルとして、S77へ進む。
終点pexがエッジリストセルの開始点sxよりも小さ
い場合、すなわち、図11(H)に示すように、重なる
部分のない場合には、現在のパターンエッジリストセル
によっては、現在のエッジリストセル内に塗りつぶしが
行なわれないことを意味するので、S76において、次
のパターンエッジリストセルを現在のパターンエッジリ
ストセルとして、S77へ進む。
【0044】上述の区間別の処理が終了すると、S77
において、現在のパターンエッジリストセルがnul
l、すなわち、パターンエッジリストのスキャンライン
pl中にパターンエッジリストセルが存在するか否かを
判定する。存在しない場合には、当該スキャンラインの
処理は終了したので、S78において、エッジリストの
スキャンラインslをインクリメントし、S51へ戻
り、次のスキャンラインについての処理を行なう。パタ
ーンエッジリストセルが存在する場合には、S79にお
いて、現在のエッジリストセルがnull、すなわち、
エッジリストのスキャンラインsl中にエッジリストセ
ルが存在するか否かを判定する。存在しない場合には、
当該スキャンラインには、塗りつぶしを行なう区間は存
在しないので、S80において、エッジリストのスキャ
ンラインslをインクリメントし、S51へ戻り、次の
スキャンラインについての処理を行なう。パターンエッ
ジリストセル及びエッジリストセルが存在する場合に
は、S59へ戻り、各セルの区間に応じた処理がくり返
し行われることになる。
において、現在のパターンエッジリストセルがnul
l、すなわち、パターンエッジリストのスキャンライン
pl中にパターンエッジリストセルが存在するか否かを
判定する。存在しない場合には、当該スキャンラインの
処理は終了したので、S78において、エッジリストの
スキャンラインslをインクリメントし、S51へ戻
り、次のスキャンラインについての処理を行なう。パタ
ーンエッジリストセルが存在する場合には、S79にお
いて、現在のエッジリストセルがnull、すなわち、
エッジリストのスキャンラインsl中にエッジリストセ
ルが存在するか否かを判定する。存在しない場合には、
当該スキャンラインには、塗りつぶしを行なう区間は存
在しないので、S80において、エッジリストのスキャ
ンラインslをインクリメントし、S51へ戻り、次の
スキャンラインについての処理を行なう。パターンエッ
ジリストセル及びエッジリストセルが存在する場合に
は、S59へ戻り、各セルの区間に応じた処理がくり返
し行われることになる。
【0045】このようにして、パターンエッジリストに
基づき、エッジリストとのマージを行なって、プリミテ
ィブ内をパターンによって塗りつぶすことができる。プ
リミティブごとの処理が終了すると、エッジリストマー
ジ部10において、プリミティブごとに作成されるエッ
ジリストを各ページごとのエッジリストにマージする。
各ページごとのエッジリストは、ページメモリ11に蓄
えられており、1ページ分のプリミティブのマージが終
了すると、ラスタライズ部12において、各スキャンラ
インごとにエッジリストが読み出され、ドットに展開さ
れて出力装置14に送られる。
基づき、エッジリストとのマージを行なって、プリミテ
ィブ内をパターンによって塗りつぶすことができる。プ
リミティブごとの処理が終了すると、エッジリストマー
ジ部10において、プリミティブごとに作成されるエッ
ジリストを各ページごとのエッジリストにマージする。
各ページごとのエッジリストは、ページメモリ11に蓄
えられており、1ページ分のプリミティブのマージが終
了すると、ラスタライズ部12において、各スキャンラ
インごとにエッジリストが読み出され、ドットに展開さ
れて出力装置14に送られる。
【0046】図12は、出力結果の一例の説明図であ
る。図では、カラーによる表現ができないので、ハッチ
ングを変えて色の差を表現している。図12に示した例
では、円の内部をある色(図では右下がりのハッチング
で表現)で塗りつぶした後、上述の図7(A)に示した
パターンによって内部を塗りつぶした場合の出力画像を
示している。図12のように、円の内部に図7(A)に
示した三角形がくり返し現われた画像が得られる。
る。図では、カラーによる表現ができないので、ハッチ
ングを変えて色の差を表現している。図12に示した例
では、円の内部をある色(図では右下がりのハッチング
で表現)で塗りつぶした後、上述の図7(A)に示した
パターンによって内部を塗りつぶした場合の出力画像を
示している。図12のように、円の内部に図7(A)に
示した三角形がくり返し現われた画像が得られる。
【0047】
【発明の効果】以上の説明から明らかなように、本発明
によれば、入力されたデータからラスター情報に変換す
る描画装置において、パターンによる塗りつぶし処理を
行なう場合に、入力データ及びパターンをエッジリスト
データとして蓄え、エッジリスト間のマージ処理により
塗りつぶし処理を行なうことにより、パターンのための
メモリを大幅に減らすことができるとともに、描画時に
ピクセルごとの論理演算を行なう必要がないので、高速
な塗りつぶし処理が可能となるという効果がある。
によれば、入力されたデータからラスター情報に変換す
る描画装置において、パターンによる塗りつぶし処理を
行なう場合に、入力データ及びパターンをエッジリスト
データとして蓄え、エッジリスト間のマージ処理により
塗りつぶし処理を行なうことにより、パターンのための
メモリを大幅に減らすことができるとともに、描画時に
ピクセルごとの論理演算を行なう必要がないので、高速
な塗りつぶし処理が可能となるという効果がある。
【図1】 本発明の描画装置の一実施例を含むシステム
のブロック構成図である。
のブロック構成図である。
【図2】 パラメータの一例の説明図である。
【図3】 エッジリストの生成の一例の説明図である。
【図4】 クリップ処理部6の動作の一例を示すフロー
チャートである。
チャートである。
【図5】 クリップ処理部6の動作の一例を示すフロー
チャートである。
チャートである。
【図6】 2つの区間の関係の説明図である。
【図7】 パターンエッジリストの一例の説明図であ
る。
る。
【図8】 パターンエッジリストのマージ処理の一例を
示すフローチャートである。
示すフローチャートである。
【図9】 パターンエッジリストのマージ処理の一例を
示すフローチャートである。
示すフローチャートである。
【図10】 パターンエッジリストのマージ処理の一例
を示すフローチャートである。
を示すフローチャートである。
【図11】 エッジリストセルとパターンエッジリスト
セルの関係の説明図である。
セルの関係の説明図である。
【図12】 出力結果の一例の説明図である。
1 パラメータ記憶部、2 描画入力部、3 ベクター
生成部、4 フォントデータ記憶部、5 エッジリスト
生成部、6 クリップ処理部、7 クリップメモリ、8
色付け処理部、9 パターンメモリ、10 エッジリ
ストマージ部、11 ページメモリ、12 ラスタライ
ズ部、13 バッファメモリ、14 出力装置。
生成部、4 フォントデータ記憶部、5 エッジリスト
生成部、6 クリップ処理部、7 クリップメモリ、8
色付け処理部、9 パターンメモリ、10 エッジリ
ストマージ部、11 ページメモリ、12 ラスタライ
ズ部、13 バッファメモリ、14 出力装置。
Claims (2)
- 【請求項1】 入力されたデータからエッジリストを生
成するエッジリスト生成手段と、塗りつぶしに用いるパ
ターンをエッジリストとして記憶するパターン記憶部
と、前記エッジリスト生成手段により生成されたエッジ
リストと前記パターン記憶部に記憶されているパターン
のエッジリストとをマージ処理するパターンマージ手段
と、前記パターンマージ手段によりマージ処理されたエ
ッジリストを用いて出力処理を行なう出力処理手段を有
し、前記塗りつぶしに用いるパターンを用いて塗りつぶ
し描画を行うことを特徴とする描画装置。 - 【請求項2】 前記パターンマージ手段は、マージ処理
したエッジリストを前記パターン記憶部に対して新たな
塗りつぶしに用いるパターンとして記憶させる機能を有
していることを特徴とする請求項1に記載の描画装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05190715A JP3089906B2 (ja) | 1993-07-02 | 1993-07-02 | 描画装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05190715A JP3089906B2 (ja) | 1993-07-02 | 1993-07-02 | 描画装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0721396A JPH0721396A (ja) | 1995-01-24 |
JP3089906B2 true JP3089906B2 (ja) | 2000-09-18 |
Family
ID=16262625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05190715A Expired - Fee Related JP3089906B2 (ja) | 1993-07-02 | 1993-07-02 | 描画装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3089906B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5760728B2 (ja) * | 2011-06-14 | 2015-08-12 | 富士ゼロックス株式会社 | 画像処理装置、画像形成装置、及びプログラム |
-
1993
- 1993-07-02 JP JP05190715A patent/JP3089906B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0721396A (ja) | 1995-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5388166A (en) | Image drawing apparatus | |
US5053759A (en) | Method of and apparatus for generating high-quality pattern | |
JP3285930B2 (ja) | 画像処理装置 | |
JP3009525B2 (ja) | ベクトル画像描画装置 | |
JPH0816144A (ja) | アウトラインフォント展開方法およびアウトラインフォント展開装置 | |
JPH01296389A (ja) | 図形処理方法及びその装置 | |
JP3089906B2 (ja) | 描画装置 | |
JPH06162210A (ja) | 画像処理装置 | |
JP3085175B2 (ja) | 描画装置 | |
JPH02270019A (ja) | 高品質文字パターン発生方式 | |
JP3146771B2 (ja) | フォントラスタライズ装置およびその方法 | |
JP2000013601A (ja) | 印刷情報処理装置、中間データ生成装置および方法 | |
JP3129717B2 (ja) | 画像処理装置および画像処理方法 | |
JP3452049B2 (ja) | 描画装置及び描画方法 | |
JP2004334533A (ja) | 画像処理装置および画像処理方法 | |
JP3536894B2 (ja) | 図形処理装置 | |
JPH0691938A (ja) | 印刷制御装置 | |
JP2710350B2 (ja) | 画像処理装置および画像処理装置の画像処理方法 | |
JP3209359B2 (ja) | 画像出力装置 | |
JPH05183753A (ja) | カラー画像出力装置及びその方法 | |
JP2835056B2 (ja) | 高品質文字パターン発生方式 | |
JP2001092981A (ja) | 画像処理装置および画像処理方法 | |
JPH06168337A (ja) | 塗り潰し処理方法 | |
JPH0350686A (ja) | 図形処理方式 | |
JP2823925B2 (ja) | ベクタ・ラスタ変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080721 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090721 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100721 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110721 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |