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

多角形塗りつぶし方式

Info

Publication number
JPH03278190A
JPH03278190A JP2078081A JP7808190A JPH03278190A JP H03278190 A JPH03278190 A JP H03278190A JP 2078081 A JP2078081 A JP 2078081A JP 7808190 A JP7808190 A JP 7808190A JP H03278190 A JPH03278190 A JP H03278190A
Authority
JP
Japan
Prior art keywords
fill
polygon
value
coordinates
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.)
Granted
Application number
JP2078081A
Other languages
English (en)
Other versions
JP2782904B2 (ja
Inventor
Mitsuo Ouchi
大内 光郎
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
NEC 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 NEC Corp filed Critical NEC Corp
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

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

Claims (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 true JPH03278190A (ja) 1991-12-09
JP2782904B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06162212A (ja) * 1992-11-25 1994-06-10 Nec Corp 多角形塗りつぶし装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06162212A (ja) * 1992-11-25 1994-06-10 Nec Corp 多角形塗りつぶし装置

Also Published As

Publication number Publication date
JP2782904B2 (ja) 1998-08-06

Similar Documents

Publication Publication Date Title
US5016001A (en) Pattern data generating system
JPS6158083A (ja) 高速メモリ−・システム、デ−タ処理方法及びメモリ−・セグメント
JPS63271290A (ja) 文字パタ−ン生成方式
US20150325022A1 (en) Technique for processing a character string for graphical representation on a man/machine interface
JPH0540463A (ja) 多階調文字発生装置
JPH01296389A (ja) 図形処理方法及びその装置
US5519412A (en) Pattern processing method
CA1200025A (en) Graphic and textual image generator for a raster scan display
KR100361387B1 (ko) 다각형 묘화 방법, 및 다각형 묘화 장치
JPH05120441A (ja) ベクトル画像描画装置
JPH02270019A (ja) 高品質文字パターン発生方式
JPH10247241A (ja) 畳み込み走査ラインレンダリング
JPH03278190A (ja) 多角形塗りつぶし方式
JP3603593B2 (ja) 画像処理方法および装置
JPS6339947B2 (ja)
US5659336A (en) Method and apparatus for creating and transferring a bitmap
JP2806679B2 (ja) 文字発生装置
JP3129717B2 (ja) 画像処理装置および画像処理方法
JP2835056B2 (ja) 高品質文字パターン発生方式
JP3517982B2 (ja) 図形描画装置
JPH0350686A (ja) 図形処理方式
JPH0823741B2 (ja) ベクトル文字もしくはベクトル図形の処理方法
JP2000259845A (ja) 多角形描画方法、および多角形描画装置
JPH0950272A (ja) アウトラインフォント生成方法およびアウトラインフォント生成装置
JPH0752466B2 (ja) ラスターオペレーション装置およびその方法