JP2782904B2 - 多角形塗りつぶし方式 - Google Patents

多角形塗りつぶし方式

Info

Publication number
JP2782904B2
JP2782904B2 JP2078081A JP7808190A JP2782904B2 JP 2782904 B2 JP2782904 B2 JP 2782904B2 JP 2078081 A JP2078081 A JP 2078081A JP 7808190 A JP7808190 A JP 7808190A JP 2782904 B2 JP2782904 B2 JP 2782904B2
Authority
JP
Japan
Prior art keywords
polygon
fill
coordinates
filling
memory
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 - Lifetime
Application number
JP2078081A
Other languages
English (en)
Other versions
JPH03278190A (ja
Inventor
光郎 大内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP2078081A priority Critical patent/JP2782904B2/ja
Publication of JPH03278190A publication Critical patent/JPH03278190A/ja
Application granted granted Critical
Publication of JP2782904B2 publication Critical patent/JP2782904B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ディスプレイやプリンタに文字や図形を表
示あるいは印字する際の図形描画における多角形塗りつ
ぶし方式に関し、特に外形が線分で定義された多角形内
を塗りつぶす多角形塗りつぶし方式に関する。
〔従来の技術〕
ディスプレイ上に図形・文字を表示する技術は、急速
に進歩しており、より美しい図形・文字を表示するため
に様々な方式を提案されてきた。特に文字を表示する方
式は、ビットマップ・フォント方式、アウトライン・フ
ォント方式と呼ばれる方式が主流である。
ビットマップ・フォント方式は、文字をm×nビット
のパターンとしてROMなどに格納しておき、画面の1画
素ごとに複数のビットを対応させたビットマップ・メモ
リの任意の位置にそのパターンをそのまま転送する方式
である。この方式は、どんな複雑な文字を表示する場合
でもm×nビットのデータを転送するだけで済むため、
処理が単純で高速であり様々なディスプレイ装置で主流
となっている方式である。しかしながら、この方式には
文字を拡大あるいは縮小した時に次の様な欠点がででく
る。拡大時には斜めの線にジャギーとよばれる階段状の
ギザギザが生じ見栄えが良くない、縮小時には点や線が
ぬけるため文字品質が悪くなるなどである。
そこで文字を拡大・縮小しても品質が劣化しないアウ
トライン・フォント方式がクローズアップされている。
この方式を説明すると、文字情報として文字の外形(ア
ウトライン)を定義する線分の頂点の座標をフォントと
して持たせておき、文字を表示する際にはこれらの頂点
間を直線あるいは曲線で描画し、続いてこの図形内を塗
りつぶす。このようにして生成される文字は、拡大・縮
小するときに、座標値を変換すればよく、その後は上述
した塗りつぶしを行えば良い。このようにすると、与え
られる頂点と頂点の間は直線あるいは曲線で補間される
のでジャギーや線抜けがなくなり、拡大縮小率に関係な
く美しい字体をそのまま保つことができる。
アウトライン・フォントの実際の描画方法について説
明する。まず、フォントROMに格納された文字の外形を
定義する線分の両端点のXY座標を読出し、拡大縮小率に
応じて座標交換を行う。この座標変換は、一般によく知
られているアフィン変換と呼ばれる3×3の行列演算で
あり、変換後の座標値をもとに、文字の外形内を塗りつ
ぶすものである。この方法には2種類あり、EVEN/ODD W
INDING NUMBERルールによる塗りつぶし(以下EOフイル
と呼ぶ)とNON−ZERO WINDING NUMBERルール(以下NZフ
ァイルと呼ぶ)である。
WINDING NUMBER(以下WNという)とは、第5図(A)
に示すように、多角形を構成する線分を左から検査し、
交差した線分が下向きであれば、その線分の右側の領域
のWNを+1し、上向きであれば−1してえられる数値で
ある。このWNをベースにして、どの部分を塗りつぶすか
を決定する方法に2種類あり、これがEOファルとNZフィ
ルである。EOフィルは、第5図(B)に示すようにWNが
奇数の部分だけを塗りつぶすもので、NZフィルは、第5
図(C)に示すようにWNが0でない部分を塗りつぶすも
のである。したがって、同じ多角形でも塗りつぶす規則
により結果が異なる。
EOフィルについては、台形フィルを描画するハードウ
ェアを用いて多角形内を塗りつぶす方式が知られてい
る。まず、台形の4頂点をどう選ぶかについて述べる。
この4頂点のうち、2点は多角形を構成する線分の両端
点であり、他の2点は全頂点のX座標のうちの最小値X
minによって決定する点である。つまり、台形は文字外
形のある線分の両端点の座標を(X1,Y1)、(X2,Y2)と
したときに、この線分を右辺とし、左辺が(Xmin,Y
1)、(Xmin,Y2)の線分として与えられるものである。
この台形を‘0'クリアされたビットマップ・メモリ上へ
描画する。ビットマップ・メモリ上へ書込む際のデータ
処理として、書込むビット位置のデータをリードし、そ
のデータと“1"を排他的ORしてからメモリ上に書込むよ
うにする。こうして全ての線分について台形描画を行う
と所望のアウトライン文字の内側だけが‘1'となる。こ
れは、排他的ORで描画するために、ビットマップ・メモ
リ上の左から右へむかって、奇数番目に交差した点から
つぎの点までが“1"となり、偶数番目に交差した点から
次の点までは‘0'となるからである。
このようにEOフィルによる多角形内塗りつぶしは、台
形フィルを高速に描画できるハードウェアを利用して、
高速にアウトライン文字を描画することができる。
一方、NZフィルを実現する方法としては、多角形の上
から1ラインずつ検査し、1ライン上に存在する線分と
の交点を算出しながら、どの範囲が塗りつぶすべき領域
であるかを判定し描画する方法が使用されている。この
方法は、NZフィルはもちろん、処理の一部を変更するだ
けでEOフィルにも適用できるので、広く使用されてい
る。
〔発明が解決しようとする課題〕
しかし、従来の台形フィルによる方法は、EOフィルに
関しては高速に処理できたが、NZフィルに関しては使用
できなかった。一方、1ライン単位に領域を判定する方
法は、1ライン上に存在する交点の数が多くなると各交
点の座標を計算する時間、交点のソーティング時間が膨
大になり処理が低速であるという欠点をもっていた。EO
フィルに関しては、前述した台形フィルによる方法の方
が一般に十倍高速である。
本発明の目的は、このような問題を解決し、多角形塗
りつぶしを2段階の処理に分けることによってEOフィ
ル、NZフィルのいずれの方法に対しても使用できると共
に、高速に塗りつぶしができる多角形塗りつぶし方式を
提供することにある。
〔課題を解決するための手段〕
本発明の構成は、ディスプレイやプリンタに文字や図
形を表示あるいは印字するために画素ごとに対応したメ
モリを備え、このメモリ上に座標系を定義し、多角形の
頂点群の座標を入力として多角形の内部に位置する前記
メモリ上のビットを塗りつぶす多角形塗りつぶし方式に
おいて、前記頂点群の座標値から予め定めた方法で基準
点の座標値Xをもとめる第1の工程と、前記頂点群のう
ちの頂点Aからつぎの頂点Bへの移動方向をもとめる第
2工程と、前記頂点Aの座標(X1,Y1)と前記頂点Bの
座標(X2,Y2)と、前記座標値Xを参照した座標(X,Y
1)と座標(X,Y2)で決定される台形内を塗りつぶす第
3の工程と、この第3の工程において前記台形内を塗り
つぶす際に、前記移動方向により前記メモリに書かれて
いる内容をリード/モディファイ/ライトする演算モー
ドを少なくとも複数の算術演算の中から選択する第4の
工程と、前記第1から第4の工程によって前記全頂点に
関する台形塗りつぶし処理を終了した後、前記多角形に
外接する長方形内のデータを検査して、特定の基準でデ
ータを変更して別の領域に書込む第5の工程とを備える
ことを特徴とする。
〔実施例〕
次に本発明について図面を参照して説明する。
第1図は本発明の第1の実施例を説明するフローチャ
ート、第2図は第1図を実現するシステムのハードウェ
ア構成図である。本実施例は、ソフトウェア手段によっ
て多角形塗りつぶしを行う場合について述べる。第2図
において、1はCPU、2は主記憶、3はビットマップ・
メモリ、4は表示コントローラである。
まず、本実施例の処理の流れについて説明する。NZフ
ィル、EOフィルいずれもワークメモリを使用し、これを
主記憶2上の一部にマッピングする。CPU1はこのワーク
メモリ上でWNを計算しながら図形の元情報を生成してい
く。主記憶2には、ワークメモリだけでなくCPU1が処理
を実行するためのプログラムやデータが格納される。こ
のあと、CPU1はこのWN情報をベースに、ビットマップ・
メモリ3上に最終図形を描画するのである。ワークメモ
リは、WN値を格納するために使用するので、WN値の最大
値,最小値をあらかじめ想定して1画素に相当するビッ
ト数を決定しておく。本実施例では、1ラスタ上に14本
以下の線分しか存在しないという前提のもとで、WNは4
ビットで表現し、つまりWNの取り得る値の範囲は、−7
≦WN≦7である。ビットマップ・メモリ3に描画された
内容は表示コントローラ4を介してディスプレイに表示
される。
次に、第1図を用いて多角形塗りつぶしの方式いつい
て詳細に説明する。まず、ステップ101〜103のループに
おいて、ステップ101で多角形を形成する線分の端点の
座標(X,Y)をすべてリードし、ステップ102において最
大値Xmax,Ymax,最小値Xmin,Yminを検出する。全座標に
ついてこの処理を終了後、ここで求めた最大,最小値は
使用するワークメモリの大きさを決定するために用い、
(Xmin,Ymin)と(Xmax,Ymax)を対角線の端点とする長
方形内を処理の対象とする。この領域はWN値の格納用と
して使用するので、初期設定としてステップ104におい
てこの領域内のデータを“0"クリアしておく。
次に、ステップ105において多角形上の連続する2点
の座標値をリードする。台形はこの2点の座標値(X1,Y
1)、(X2,Y2)を右辺、(Xmin,Y1)、(Xmin,Y2)を左
辺として決定される。つまり、この台形の上底と下底は
X軸に平行である。台形フィルの演算モードは、ステッ
プ106において2点の座標のY座標により決定する。つ
まり、Y1とY2を比較し、Y1>Y2であれば“+1"モード、
Y1≦Y2であれば“−1"モードとする。
ここまでが台形フィルの前処理であり、以降台形フィ
ルの実際の動作となる。
台形フィルは、ステップ107〜111のループで構成さ
れ、1ラインごとの描画を繰り返すことによって実現す
る。あるラインの処理に入る際には、ステップ107にお
いて右辺を直線発生により座標を生成し、1ライン上の
処理データの範囲を決定する。このライン上のデータを
ステップ108によって、1画素ずつリードし、前述した
演算モードにしたがってその画素値に+1あるいは−1
したあと、同じ番地にリライトする(ステップ109)。
この処理を1ライン上の全画素について実行する。さら
に、この処理を全ラインに繰り返すと1つの台形フィル
の処理が完了する。引続いて、ステップ112において全
ての頂点についての台形フィル処理が終了したかどうか
をチェックし、終了していない場合には、つぎの頂点に
ついての処理を繰り返し実行する。全頂点について終了
すると、その多角形内のWN値が全て決定される。
次に、実際にビットマップ・メモリ3への書込みにな
る。NZフィルかEOフィルかによって処理が異なるのはこ
の部分である。この処理は基本的には、多値のWN値から
1/0の2値の値を生成することである。
まず、ZNフィルについて説明する。ワークメモリ上の
(Xmin,Ymin)と(Xmax,Ymax)を対角線の端点とする長
方形は処理の対象となる多角形に外接する領域である。
この領域内について処理を進める。ステップ113におい
て、この矩形領域内のデータつまりWN値を1画素分づつ
リードし、ステップ115においてWN値が“0"であれば
“0"、WN値が“0"以外であれば“1"とし2値の出力を得
る。この出力値の1/0の従って、データをビットマップ
・メモリ上の所望の位置に書込む。本実施例では、この
出力値が“1"であれば、ステップ116において、相当す
るビットを“1"で描画し、出力値が“0"であれば描画し
ないで、ステップ117にジャンプするようにしている。
これを矩形領域内の全WN値について実行すると処理が完
了する。これはNZフィルの場合である。EOフィルの場合
はWN値を2値化する際に、ステップ115の代りにステッ
プ14を実行し、WNが偶数であれば“0"、奇数であれば
“1"を出力するように変更されるだけである。
以上によって、EOフィル、NZフィルの両方の規則によ
る多角形フィルを実行できる。この場合、どんな多角形
を塗りつぶす際にも、上述したフローと全く同様に処理
することができる。
本発明においては、第1の処理で、従来の台形フィル
を行う際に、ビットマップ・メモリへの書込みの段階で
論理演算だけでなく算術演算をサポートし、台形の左右
直線の方向によりその算術演算の種類を変更し、第2の
処理として、第1の処理を多角形の全ての線分に対して
実行した後に、メモリに格納されているWN値を全て検査
しフィルの種類に応じてそのWNに対応するビットアップ
・メモリ上に描画するか否かを判定するという新しい処
理を導入することにより、EOフィル、NZフィルいずれの
方法による多角形内塗りつぶしをも実現できるようにし
ている。
第3図は本発明の第2の実施例を実施するハードウェ
アのブロック図、第4図は第3図の台形フィル・プロセ
ッサのブロック図であり、本実施例は第1の実施例の一
部をハードウェア化し、高速化した多角形塗りつぶし装
置であり、処理のながれは第1図に示したフローチャー
トと同じである。本実施例は、第1の実施例に第2図に
台形フィル・プロセッサ5が付加されたものである。
ビットマップ・メモリ3は、台形フィル・プロセッサ
5のワークエリアとしても使用され、またCPU1がビット
・マップ・メモリ3を直接アクセスできるようなバスを
用意している。これは、台形フィル・プロセッサ5がア
クセスするメモリをCPU1のバスと切り離すことによって
高速化を図る目的がある。したがって、第1の実施例と
の相違点は、ワークメモリをビットマップ・メモリ3に
マッピングしたこと、フローの一部を台形フィル・プロ
セッサ5に実行させたことだけである。ここでは台形フ
ィル・プロセッサ5の動作を中心に説明する。
台形フィル・プロセッサ5が処理する内容は、第1図
のフローチャートのステップ107〜111の部分であり、こ
の部分をハードウェア化するために第4図の構成をとっ
た。台形フィル・プロセッサの設計のポイントは、1ラ
イン上の複数の画素に対する処理をワード単位に一括し
て実行するようにしている。本実施例では、1ワード16
ビットとし、4画素分のデータを一括して演算する演算
回路などを備えた。
第4図において、10はリードデータ・レジスタ、11は
ライトデータ・レジスタ、12〜15は演算回路、16はアド
レス発生回路、17はDDA発生回路、18はピクセル・カウ
ンタ、19は加算値生成回路、20はエンドフラグである。
ステップ107は、DDA生成回路17により行われ、この結
果、1ライン上の描画すべきピクセル数が決定される。
つづくステップ108,109を1ワード単位で処理するよう
にしている。これは、ビットマップ・メモリ3からリー
ドした1ワードのデータをリードデータ・レジスタ10に
格納し、そのデータに対して演算回路12〜15を同時に動
作させる。1ワードは16ビットなので、各演算回路には
WN値のビット数に相当する4ビットずつデータが入力さ
れる。リードデータ・レジスタ10の内容と共に演算回路
12〜15に入力されるのが加算値である。この加算値は、
加算値生成回路19で生成され、各演算回路ごとに独立し
た値を出力する。この加算値の生成条件は、まず、ステ
ップ106で決定された演算モードが“+1"モードの場合
“1"、演算モードが“−1"の場合“−1"、さらに、ピク
セル・カウンタ18から出力されるエンド・フラグ20がア
クティブのときには演算モードによらず“0"になる。こ
のエンド・フラグ20は1ラインの最終ワードに含まれる
複数の画素のうち、演算の対象にならない画素に対して
アクティブになる。こうして演算回路12〜15で演算され
た個々のデータは、再び1ワードにパックされてライト
データ・レジスタ11に格納され、ビットマップ・メモリ
3にリライトされる。
ステップ110はピクセル・カウンタ18で処理される。
つまり、DDA発生回路17で決定された1ライン上のピク
セル数を初期値として1ワード分処理が終了するごと
に、このピクセル・カウンタ18の内容を4ずつ減算す
る。この結果が負になれば1ラインの処理が終了する。
ステップ111はアドレス発生回路16で行われ、アドレス
発生回路16には座標Y1からY2を減算した値が格納されて
おり、この回数すなわちライン数分アドレスを発生する
と処理を終了するようになっている。
なお、本実施例ではWN値を4ビットとしたが、この数
値に制限されるものではない。またWN値をもとにしたビ
ットマップ・メモリへの書込みに関して、データを書込
むか否かを区別することにしたが、WN値の判定をもと
に、カラーや演算モートを選択するように構成すること
も容易に実現できる。さらに、描画する際に任意形状の
クリッピング領域を定義しておき、その領域内だけが描
画できる範囲とした装置においても、クリッピング領域
をあらかじめ本方式で生成し、実際の多角形をWN値をも
とにビットマップ・メモリへ書込む際に、クリッピング
領域をマスクとして扱った3オペランド演算を応用して
実現することも考えられる。要するに、本発明は、多角
形の内側か外側かをEOメール、NZルールいずれの規則に
よってもほとんど同一の処理で判定できるような方式で
あって、その後の描画形態などの付帯的な事項に制限さ
れるものでない。
〔発明の効果〕
以上述べたように、本発明によれば、台形フィルを処
理の基本としており、もとの多角形の複雑さに存在せず
単純な処理を繰り返して実行することにより、所望のEO
フィル、NZフィルのいずれの多角形塗りつぶしをも高速
に実行できるという効果がある。
【図面の簡単な説明】
第1図は本発明の第1の実施例を説明するフローチャー
ト、第2図は第1図を実施するハードウェアのブロック
図、第3図は本発明の第2の実施例を説明するハードウ
ェアのブロック図、第4図は第3図の台形フィル・プロ
セッサのブロック図、第5図(A)〜(C)は多角形塗
りつぶしの説明図である。 1……CPU、2……主記憶、3……ビットマップ・メモ
リ、4……表示コントローラ、5……台形フィル・コン
トローラ、10……リードデータ・レジスタ、11……ライ
トデータ・レジスタ、12〜15……演算回路、16……アド
レス生成回路、17……DDA生成回路、18……ピクセル・
カウンタ、19……加算生成回路、20……エンド・フラ
グ、101〜117……処理ステップ。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ディスプレイやプリンタに文字や図形を表
    示あるいは印字するために画素ごとに対応したメモリを
    備え、このメモリ上に座標系を定義し、多角形の頂点群
    の座標を入力として多角形の内部に位置する前記メモリ
    上のビットを塗りつぶす多角形塗りつぶし方式におい
    て、前記頂点群の座標値から予め定めた方法で基準点の
    座標値Xをもとめる第1の工程と、前記頂点群のうちの
    頂点Aからつぎの頂点Bへの移動方向をもとめる第2の
    工程と、前記頂点Aの座標(X1,Y1)と前記頂点Bの座
    標(X2,Y2)と、前記座標値Xを参照した座標(X,Y1)
    と座標(X,Y2)で決定される台形内を塗りつぶす第3の
    工程と、この第3の工程において前記台形内を塗りつぶ
    す際に、前記移動方向により前記メモリに書かれている
    内容をリード/モディファイ/ライトする演算モードを
    少なくとも複数の算術演算の中から選択する第4の工程
    と、前記第1から第4の工程によって前記全頂点に関す
    る台形塗りつぶし処理を終了した後、前記多角形に外接
    する長方形内のデータを検査して、特定の基準でデータ
    を変更して別の領域に書込む第5の工程とを備えること
    を特徴とする多角形塗りつぶし方式。
JP2078081A 1990-03-27 1990-03-27 多角形塗りつぶし方式 Expired - Lifetime JP2782904B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2078081A JP2782904B2 (ja) 1990-03-27 1990-03-27 多角形塗りつぶし方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2078081A JP2782904B2 (ja) 1990-03-27 1990-03-27 多角形塗りつぶし方式

Publications (2)

Publication Number Publication Date
JPH03278190A JPH03278190A (ja) 1991-12-09
JP2782904B2 true JP2782904B2 (ja) 1998-08-06

Family

ID=13651896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2078081A Expired - Lifetime JP2782904B2 (ja) 1990-03-27 1990-03-27 多角形塗りつぶし方式

Country Status (1)

Country Link
JP (1) JP2782904B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2806185B2 (ja) * 1992-11-25 1998-09-30 日本電気株式会社 多角形塗りつぶし装置

Also Published As

Publication number Publication date
JPH03278190A (ja) 1991-12-09

Similar Documents

Publication Publication Date Title
JP4101275B2 (ja) 走査線ベースのラスタ画像プロセッサにおける奥行き追跡の方法
JP3919754B2 (ja) 画素順次描画システムにおいて実行される合成演算回数の削減法
JPS63271290A (ja) 文字パタ−ン生成方式
US20150325022A1 (en) Technique for processing a character string for graphical representation on a man/machine interface
US4972330A (en) Clipping process and processor
JP2634851B2 (ja) 画像処理装置
JPH01296389A (ja) 図形処理方法及びその装置
JP2782904B2 (ja) 多角形塗りつぶし方式
KR100361387B1 (ko) 다각형 묘화 방법, 및 다각형 묘화 장치
EP0062669A1 (en) GRAPHICS AND TEXT IMAGE GENERATOR FOR A GRID SCAN DISPLAY.
EP0464794B1 (en) Painting pattern generation system and pattern painting method using the system
JPH02270019A (ja) 高品質文字パターン発生方式
JP3603593B2 (ja) 画像処理方法および装置
JPS63305478A (ja) パタ−ン情報復元装置
JPH07120427B2 (ja) グラフイツクス処理システム
EP0391401A2 (en) Method and apparatus for generating high-quality pattern
JPH1021415A (ja) 図形処理装置並びに図形処理方法
JP2836617B2 (ja) レンダリングプロセッサ
JPH0350686A (ja) 図形処理方式
JPH02168361A (ja) 座標データを発生するパターンデータ発生装置及びプロセッサ
JP2000259845A (ja) 多角形描画方法、および多角形描画装置
JP3139805B2 (ja) 画像処理方法及びその装置
JP2835056B2 (ja) 高品質文字パターン発生方式
JPH0519739A (ja) 文字パターン生成装置
JPH06168337A (ja) 塗り潰し処理方法