JPH0793570A - 閉図形塗りつぶし方法 - Google Patents

閉図形塗りつぶし方法

Info

Publication number
JPH0793570A
JPH0793570A JP7275094A JP7275094A JPH0793570A JP H0793570 A JPH0793570 A JP H0793570A JP 7275094 A JP7275094 A JP 7275094A JP 7275094 A JP7275094 A JP 7275094A JP H0793570 A JPH0793570 A JP H0793570A
Authority
JP
Japan
Prior art keywords
data
processing
straight line
line
vector
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
JP7275094A
Other languages
English (en)
Inventor
Yoshiyuki Naito
芳幸 内藤
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.)
Graphtec Corp
Original Assignee
Graphtec 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 Graphtec Corp filed Critical Graphtec Corp
Priority to JP7275094A priority Critical patent/JPH0793570A/ja
Publication of JPH0793570A publication Critical patent/JPH0793570A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】 閉図形を定義するベクター信号を処理して当
該閉図形を塗りつぶす処理において、簡単で合理的な方
法を提供する。 【構成】 閉図形を定義するベクターデータを導入し、
それが展開されるべきフレームメモリの記憶セルの位置
に関連した一次処理データを作成し、一次処理データ群
の同一走査ライン上のオンデータ対を認識し、これらオ
ンデータ対間のデータをすべてオンとし、フレームメモ
リの対応する記憶セルに格納されたデータとそれぞれ排
他的論理和をとり、その結果をフレームメモリに格納す
るよう構成した。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、表示器またはプリン
ター等の画像表示装置において、ベクターデータで指定
された図形をフレームメモリに展開し、画像表示装置に
出力するもの等に関し、特に図形の塗りつぶし方法の改
善に関するものである。
【0002】
【従来の技術】図10に示すような図形すなわち、大き
な閉図形の中に小さな円をくりぬいたような図形を考え
る。大きな図形とその中の小さな円とで囲まれた部分を
塗りつぶす際において、従来の方法では図10に示すよ
うにベクターデータ(p1p2、p2p3、p3p4、
・・・、p8p9及びp10を中心とする円)をフレー
ムメモリ上に展開した後、閉図形とそうでない部分の境
界線データを演算し、ついで、各境界線に挟まれた部分
の塗りつぶしオンオフを判別していた。なお、図10に
おいて、4はフレームメモリで格子状に描いた各格子点
が1つの記憶セルを表している。
【0003】
【発明が解決しようとする課題】このため、プロセッサ
の演算あるいは判断が多くなってしまい、処理時間等が
大きくなってしまう問題点があった。また、図形を移動
処理した際等において、当該図形が有効処理領域の外に
はみ出したことによる図形の欠損については考慮されて
おらず、この境界部分に対する塗りつぶし処理が行えな
いという問題点があった。さらに、曲線データ等を処理
した場合、処理装置の演算精度によりその端点座標がず
れてベクトル間のつなぎ部に隙間が生じる場合があっ
た。その結果、このつなぎ部に対する塗りつぶし処理が
行えないといった問題点があった。この発明はこれらの
問題点に鑑みなされたもので、処理が速く、また正確な
図形塗りつぶし方法を提供するものである。
【0004】
【課題を解決するための手段】このため、この発明にお
いては、フレームメモリに展開された閉図形を構成する
1または複数のベクターデータについて、フレームメモ
リの同一走査ラインにおけるオンデータ対を順にさがし
出していき、これらのオンデータ対間を黒データとした
のち、先のデータと排他的論理和を順次とるように構成
したものである。またこのような処理において、有効処
理範囲との境界とを考慮するとともに隣接するベクター
データ間の端点の一致度を考慮するようにしたものであ
る。
【0005】
【作用】図1〜図3を参照して、本発明の原理を説明す
る。図1はこの発明の構成を模式的に示す説明図で、1
は塗りつぶし処理部、2は塗りつぶし信号発生部、3は
排他的論理和回路、4はフレームメモリ、5はCRT表
示器である。
【0006】まず、フレームメモリ4の図形生成部分を
クリアする。塗りつぶし処理部1に一つまたは一連のベ
クター信号からなる塗りつぶし信号が入力される。各ベ
クター信号は、展開されるべきフレームメモリ4の記憶
セルの位置に関連する一次処理データに順次変換され
る。次に、塗りつぶし信号発生部2において、これらの
ベクター信号に基づく一次処理データから前記フレーム
メモリに関する同一走査ライン上の、対となるオンデー
タが存在するか否か判定する。
【0007】図2に示すように、このような塗りつぶし
においては、同一走査ライン上におけるオンデータ対と
して、典型的には(a)、(b)、(c)の3種類のも
のが有り得る。同一走査ラインにおいて、図2(a)に
示す1対のオンデータが存在する場合には、両オンデー
タ(A及びB)を含むその間のすべてをオンデータとす
る。塗りつぶし信号発生部2は、上記オンデータ群を順
次排他的論理和回路3に出力する。排他的論理和回路3
には、もう一つの入力として、上述の順次出力されるオ
ンデータが展開されるべきフレームメモリ4の対応する
記憶セルに格納されたデータ(オンデータまたはオフデ
ータ)が付与される。そして、この排他的論理和回路3
内で塗りつぶし信号発生部2からのオンデータとそれに
対応するフレームメモリ4の記憶セルのデータとが演算
される。フレームメモリ4の最初の状態は、当該図形生
成部分についてはクリアされた状態であるので、排他的
論理和回路3に付与されるフレームメモリに関する入力
データはすべてオフデータとなる。したがって、この場
合の排他的論理和出力はすべてオンとなる。フレームメ
モリ4には、この排他的論理和出力が対応する記憶セル
内に格納される。
【0008】同一走査ラインにおけるオンデータ対が、
図2(b)に示すように、複数対存在した場合には、ま
ずAB間の処理を、次いでCD間の処理を行うよう構成
している。同一走査ラインにおけるオンデータ対が図2
(c)に示すような場合すなわち閉図形内部にくりぬか
れるべき閉図形が存在した場合(この場合において、ベ
クターデータはオンデータA、Bに関するベクターデー
タ、・・・、C、Dに関するベクターデータの順で処理
されるものとする)には、AB間のオンデータ対の処理
を最初に行う。上述の通り、フレームメモリ4は最初ク
リアされているので、AB間に対応するフレームメモリ
4の記憶セルにオンデータが書き込まれる。次いで、C
D間に関する処理が実行される。塗りつぶし信号発生部
2はCD間のすべてをオンデータとし排他的論理和回路
3に順次出力する。また、排他的論理和回路3のもう一
方の端子にはフレームメモリ4の対応する記憶セル群の
データが順次入力されており、両者の排他的論理和が演
算される。先のAB間処理によりフレームメモリ4のA
B間に対応する記憶セルにはオンデータが書き込まれて
いる。したがって、この部分の論理和はオフとなりフレ
ームメモリ4のAB間の記憶セルにはオフデータが格納
される。なお、このような閉図形においては、図3に示
すように図形の頂点の場合には、同一走査ラインにおい
て対となるオンデータが生じない。このような場合、こ
の発明の実施例装置においては、前記オンデータと同一
のダミーのオンデータを生成してオンデータ対として処
理している。以上のように、この発明では、オンデータ
間のすべてのデータをオンデータとした後、フレームメ
モリの対応する記憶セルのデータと排他的論理和をとる
ようにしたので、塗りつぶし処理が簡単になる利点があ
る。
【0009】そして、当該図形が有効処理領域外にはみ
出した場合には、例えば図形の前処理段階において図形
がはみ出したことにより生じた開口部をダミーの線分で
結合して新たに閉図形を生成する処理、あるいは一次処
理データを取得した後にこの一次処理データが有効か否
かを判定し、有効でない(範囲外である)場合には有効
処理領域を示す境界座標を当該走査ラインにおける新た
な一次処理データとする処理を実行することで、描かれ
るべき閉図形が有効処理領域外にはみ出した場合でも正
常な塗りつぶしを行なうことができる。さらに、閉図形
を構成する複数のベクターデータに不連続部が生じてい
た場合、それらの不連続部を結合する処理をおこなわせ
ることで、何らかの事情により不連続部が生じた閉図形
であっても正常な塗りつぶしを行なうことができる。
【0010】
【実施例】以下、図4及び図5を参照して、本発明の塗
りつぶし処理について説明する。まず、図4を参照して
実際の閉図形処理について説明する。なお、図中、11
は塗りつぶし処理部1に設けられた開始位置レジスタで
ある。今、図4に示すように、p1p2、p2p3、p
3p4、p4p5、p6p7、p7p8、p8p9の直
線ベクター信号及び点p10を中心とする円描画ベクタ
ー信号がこの順で入力され処理されるものとする。フレ
ームメモリ4の各記憶セルを表す格子点について、その
位置を表すために仮に座標を付すことにする。左下の格
子点o1の座標を(1,1)、その隣の格子点o2の座
標を(2,1)、・・・、のように付すことにする。な
お、ここではフレームメモリ4のY座標位置を同一とす
るラインを同一走査ラインと呼ぶことにする。まず、開
始位置レジスタ11をクリアする。この開始位置レジス
タ11は各走査ラインに対応した記憶領域をもつもの
で、各走査ラインの最初のオンデータのX座標値を保持
するよう構成されている。
【0011】第1の直線p1p2の処理を行う。直線p
1p2は、上述の座標に従えば、(5,3)、(5,
4)、(4,5)、(3,6)、(2,7)の各記憶セ
ルにオンデータが格納されてフレームメモリ4に、通常
の処理では展開されることになる。この明細書において
は、このような処理により生成された座標データを一次
処理データと呼ぶことにする。座標(5,3)として示
された一次処理データは走査ライン3のオンデータであ
り、またこの走査ラインに対応する開始位置レジスタ1
1の記憶領域3がクリアされている状態であるので、対
応する開始位置レジスタ11の記憶領域3にデータ
「5」を格納する。同様に、座標(5,4)については
開始位置レジスタ11の記憶領域4にデータ「5」を、
座標(4,5)については開始位置レジスタ11の記憶
領域5にデータ「4」を、・・・、というように開始位
置レジスタ11の各走査ラインに対応する記憶領域がク
リアされている限り、展開された各データ値のX座標値
が当該記憶領域に格納されるように構成されている。こ
のような処理は、第4の直線p4p5まで行われる。と
ころで、第3の直線p3p4の一次処理データは(2,
9)、(3,9)、(4,9)、(5,9)、(6,
9)、(7,9)となり、同一走査ライン(この場合に
は第9ライン)に複数のオンデータが生じる。この実施
例においては、同一のベクターデータを処理する際に同
一の走査ライン上に同一のデータが引き続く場合最初の
データを正規のデータとするよう処理している。すなわ
ち、この第9ラインに対応する開始位置レジスタ11の
記憶領域9にはデータ「2」が格納される。
【0012】さて、第5の直線p5p6の一次処理デー
タは、(10,15)、(11,14)、(12,1
3)、・・・となる。ここで、第4の直線と第5の直線
は走査ラインに対して「山(Y方向に頂点を持つ)」の
関係を有している。この関係は、第4の直線の傾きと第
5の直線の傾きを第5の直線の処理前(ベクター信号同
志の演算により)に知ることができる。このような場合
においては、第4の直線の最後のデータまたは第5の直
線の最初のデータ(10,15)について、同一のデー
タ(10,15)をダミーとして発生する。すでに、第
15の走査ラインに対応する開始位置レジスタ11の記
憶領域15にはデータ「10」が格納されているので、
この時点において、1対のオンデータが生成されたこと
になる。なお、この場合には、開始位置レジスタ11の
記憶領域15に格納されたx位置データとダミーのデー
タもともに「10」となり、同一であるので、その間の
データは考慮する必要がなくそのままフレームメモリ4
の対応する記憶セルにオンデータとして保持しておくよ
うにしても良い。この処理が実行された段階で、開始位
置レジスタ11の記憶領域15はクリアされる。さて、
第5の直線p5p6の次の一次処理データは(11,1
4)となる。開始位置レジスタ11の記憶領域14に
は、すでにデータ「9」が格納されているのでこの時点
でも1対のオンデータが生成される。この実施例ではフ
レームメモリ4とは別に一次処理データを作成処理する
ようにしているので、第14の走査線上のこれらのデー
タ「9」及び「11」を含むその間のデータ「10」に
ついてオンデータが作成される。そして、これらのオン
データ群とフレームメモリ4の座標(9,14)、(1
0,14)、(11,14)に対応する記憶セルに格納
されたデータとに関し順次排他的論理和をとる。それぞ
れの記憶セルのデータはクリアされた状態(オフデー
タ)となっているので、上述の演算によりすべてオンデ
ータとなりフレームメモリ4の各記憶セルにはオンデー
タが格納される。同様に、この処理が成された段階で、
開始位置レジスタ11の記憶領域14(第14走査ライ
ン)がクリアされる。これ以降の一次処理データについ
ても同様に順次処理されて、フレームメモリ4内に塗り
つぶしデータが作成格納される。
【0013】第6の直線p6p7の一次処理データ(1
5,8)については、開始位置レジスタ11の第8走査
ラインに対応する記憶領域にすでにデータ2が格納され
ているので、この走査ラインについてもオンデータ対が
生ぜられる。したがって、第8走査ライン上のX座標デ
ータ「2」〜「15」に対応するフレームメモリ4の記
憶セルにオンデータが格納される。以上の処理を第1の
直線p1p2から第9の直線p8p9(p8p1)まで
順次処理することによってこれら第1〜第9の直線によ
って定義された閉図形の内部の塗りつぶしが完了する。
次ぎに、第10のベクターデータ(点p10を中心とす
る円)の処理が行われる。この第10の円データは、例
えば(10,9)、(10,10)、(11,11)、
(12,11)、・・・、(14,9)、・・・、(1
0,8)のように一次処理データが作成される。すなわ
ち、この円データは第7走査ラインから第11走査ライ
ンまでのデータとなっている。ここで、開始位置レジス
タ11の第7走査ライン〜第11走査ラインに対応する
記憶領域7〜11は、先の閉図形処理においてすべてオ
ンデータ対が生成されて塗りつぶし処理が行われた状態
の後であるので、クリアされた状態にある。したがっ
て、第1の一次処理データ(10,9)については、第
9走査ラインに対応する記憶領域9にデータ「10」が
格納される。そして、7番目の一次処理データ(14,
9)が生成されたとき、第9走査ラインにおけるオンデ
ータ対が完成する。そして、第9走査ラインのこの間の
データ(X座標値「10」〜「14」)をオンデータと
して、対応するフレームメモリ4の記憶セルに格納され
たデータと排他的論理和をとる。フレームメモリ4の対
応する記憶セルのデータは先の閉図形処理においてオン
データであるので、この演算結果はオフデータとなり上
記各記憶セルにはオフデータが格納される。このよう
に、この実施例においてはくりぬき処理も容易に行え
る。
【0014】上述の処理の実際においては、1mm当た
り少なくとも8個のデータが存在する極めて精細なデー
タ処理であるので、きれいな塗りつぶし処理を行うこと
ができる。そして、上述の処理では同一の走査ライン上
に同一のオンデータが連続して発生する場合に最初のデ
ータを正規のデータとして開始位置レジスタの対応する
記憶領域に格納するようにした例を述べたが、上記のよ
うに実際上はデータ間隔が極めて微細であるので、同一
の走査ライン上に同一のオンデータが連続する場合には
走査ラインが変更される1個前のデータ(図4の第3の
直線p3p4の場合(6,9)のデータ)を採用するよ
うにした方がきれいな塗りつぶし処理となる場合があ
る。また、走査ラインに対して、「山(または谷)」の
関係にあることを知る方法について、上述の処理におい
ては引き続くベクターデータの一次処理化に先だって、
1個前のベクターデータと引き続くベクターデータとを
比較する方式を用いたが、これとは別に前もってすべて
のベクターデータに関してそれらの関係を把握するよう
にしても良いし、最後の段階で「山(または谷)」関係
を把握して上述の処理を一括して行うようにしても良
い。また、上述の実施例装置においては、同一走査ライ
ン上の対となるオンデータを含めたその間のデータをす
べてオンデータとしてオンデータ群を作成するようにし
たが、対となるオンデータすなわち両端のデータについ
ては含まないものとしてオンデータ群を作成するように
しても良い。さらに、上述の実施例では、フレームメモ
リ4の図形生成部分のクリア処理は最初の段階で行うも
のとしたが、オンデータ対が認識され最初の排他的論理
和処理がなされる前のいずれの段階でクリアしても良
い。また、この実施例ではフレームメモリ4に直接塗り
つぶしを行なうものとしているが他のフレームメモリま
たはその他のメモリを使用して処理をなし塗りつぶしを
含めたすべてのデータ処理がなされた段階でフレームメ
モリ4に書き出すようにしてもよい。なお、閉図形を定
義するベクターデータの処理順序は、図2(c)の場
合、Cに関するベクターデータ、ABに関するベクター
データ及びDに関するベクターデータの順で処理しても
同様な結果が得られる。従って、この発明ではどのよう
な処理順序でも良い。
【0015】図5は、この発明に関わる塗りつぶし処理
の流れの1例を示すフローチャートである。ステップ
(2)では最初のベクター信号を導入する。ステップ
(3)において前段ベクター信号の有無を判定し、前段
ベクター信号がなければステップ(6)に移る。前段ベ
クター信号が存在する場合その関係すなわち「山」また
は「谷」の関係にあるか判定する。「山」または「谷」
の関係にある場合にはステップ(5)にてダミー点を発
生し、ステップ(9)にてフレームメモリ4の対応する
記憶セルに格納されたデータと排他的論理和をとる。
「山」または「谷」の関係でない場合には直線補間すな
わちベクター信号の一次処理を行い最初の一次処理デー
タに関してステップ(7)にて対応する位置レジスタ1
1を参照する。オンデータ対が完成していればステップ
(9)にて塗りつぶしが行われ、ステップ(10)にて
当該位置レジスタをクリアした後ステップ(11)に移
動する。ステップ(7)にてオンデータ対が完成してい
ない場合には当該位置レジスタにその直線補間値(一次
処理データ)を格納する(ステップ(8))。そして、
ステップ(11)にて次の直線補間値(一次処理デー
タ)の有無をチェックし、存在すればステップ(7)に
戻り同様な処理を行う。ステップ(11)にて次の直線
補間値がない場合すなわち一つのベクターデータの処理
が完了した場合には、ステップ(13)にて引き続くベ
クター信号の有無を判定する。あればステップ(14)
にて次のベクター信号を導入してステップ(3)以下の
処理を引き続き行う。ステップ(13)にて引き続くベ
クター信号がない場合にはステップ(15)に移り最初
のベクター信号との関係すなわち「山」または「谷」の
関係があるか否かチェックする。あればステップ(1
6)にて、ダミー点を発生し塗りつぶし処理(ステップ
(17))を行い、ステップ(18)に移る。ステップ
(15)にて「山」、「谷」の関係がない場合には、ス
テップ(18)にて次の組のベクター信号があるか否か
(図4に示す円データのようなベクター信号)チェック
し、あればステップ(14)にて次の組のベクター信号
を導入してステップ(3)以下の処理を行う。
【0016】次ぎに、図6および図7を参照して、有効
処理範囲外に位置付けられた閉図形の処理について説明
する。ここで、図6は処理すべき閉図形の状態を模式的
に示した説明図であり、図7はそのフローチャートであ
る。図6に示した例では、直線p1p2、p2p3、p
3p4、p5p6、p6p7およびp7p8が境界線X
1、Y1と交差し、直線p4p5はすべてが有効処理範
囲外にある。そしてこれらの直線はp1p2、p2
p3、p3p4、p4p5、p8p7、p6p
5、p6p7、p8p1の順で描かれる。また前記
境界線X1、Y1が交差している点を原点p0とする。
この処理においては、線分等のベクターを処理する場
合、まずこのベクターが有効処理範囲内にあるか否かを
判定する。その結果、このベクターの全てが有効処理範
囲外にあると判定された場合には、このベクターを処理
の対象から除外する。そしてこのベクターの一部が有効
処理領域外にあると判定された場合には、このベクター
と境界線との交点を算出し、前記ベクターにおける有効
処理領域外側の端点をこの交点に置き換える。すなわ
ち、このベクターにおける有効処理領域内側の端点と算
出した交点とを結ぶ直線を新たなベクターとする処理を
行なう。また、この実施例装置にはX側の境界線X1に
対応する境界レジスタ12Xが用いられている。この境
界レジスタ12Xは、前記境界線X1に処理ベクターが
交差したり接触した場合にその交点のY座標値を保持す
るもので、先に説明した開始位置レジスタ11と同様な
処理をなすものである。本実施例においては、この境界
レジスタ12Xを使用して境界線X1上にダミーベクタ
ーを発生する。この境界レジスタ12Xは一群のデータ
導入前に一旦クリアされる。また、境界線Y1との交差
部分についてはダミーベクターは生成しない。これは前
述したように本発明がオンデータ対を用いて走査ライン
方向(Y軸方向)に塗りつぶしを行なう方式であり、境
界線Y1上の交点情報(オンデータ)を取得することが
できれば当該境界線Y1上における塗りつぶし処理が行
えるからである。
【0017】以下、具体的な処理について説明する。ま
ず直線p1p2の処理を行なう。この場合、端点p2が
有効処理範囲外にあり、直線p1p2は境界線Y1との
み交差している。従って、ここではその交点p9を算出
し直線p1p2を直線p1p9に置き換える。そして直
線p2p3についても同様な処理が行われ、交点p10
を算出した後に新たな直線p10p3に置き換えられ
る。次ぎに直線p3p4を処理する。この直線p3p4
は有効処理範囲内にて境界線Y1と交差し、さらに有効
処理範囲外にて境界線X1と交差している。まずこの直
線p3p4と境界線X1とが比較され交点p12が算出
される。ここで、この交点p12の座標値に基づいてこ
の交点p12の属性が判定され「X側で境界線X1上で
ありY側にて下限値より下にある点」と認識される。こ
れにより前記境界レジスタ12Xを参照する。この時点
においてこの境界レジスタ12Xはクリアされているの
で、この境界レジスタ12Xに原点p0のY座標値を設
定する。本来ならばこの値は境界線X1と交差した位置
のY座標値を設定するべきであるが、境界線Y1より下
側の範囲は使用しないのでY側下限値、すなわち原点p
0のY座標値を設定する。次いでこの直線p3p4と境
界線Y1とを比較し交点p11を算出する。そしてこの
直線p3p4をp3p11に置き換える。なお、この処
理において、境界線Y1で規定される処理範囲外に前記
境界線X1と交差する線分が複数本存在する場合が考え
られる。この場合、境界レジスタ12Xがクリアされた
状態にあっては原点p0のY座標値を設定する。また既
に境界レジスタ12Xに値が格納されている場合であっ
てその値が原点p0のY座標値であった場合にはこの境
界レジスタ12Xをクリアして次順の処理に移行する。
その値が原点p0のY座標値以外の場合にはその座標と
原点p0との間にダミー線分を生成し、レジスタをクリ
アする処理が行われる。
【0018】次ぎに直線p4p5の処理を行なう。まず
境界線X1、Y1との比較が行なわれる。そしてこの直
線p4p5は「すべて有効処理範囲外にある」と判定さ
れ、これによりこの直線p4p5は以後の処理に関して
対象外となる。次ぎに直線p8p7の処理を行なう。こ
の直線p8p7はX側境界線X1とのみ交差しているの
でこの境界線X1との交点p16が算出され、この直線
p8p7は直線p8p16に置き換えられる。そして交
点p16が算出されたことにより前記境界レジスタ12
Xを参照する。この時点においてこの境界レジスタ12
Xには原点p0のY座標値が格納されておりデータ対が
作成可能であるので、交点p16と原点p0とを結ぶ直
線p16p0を第1のダミー直線として生成する。そし
てこの直線が生成されたことにより前記境界レジスタ1
2Xの値はクリアされる。
【0019】次ぎに直線p6p5の処理を行なう。この
直線p6p5は有効処理範囲内において境界線X1と交
差し、有効処理範囲外にて境界線Y1と交差している。
まず境界線X1と比較され交点p14が算出される。そ
してこの直線p6p5をp6p14に置き換えた後、前
記境界レジスタ12Xを参照する。この時点において境
界レジスタ12Xはクリアされた状態にあるので、前記
交点p14のY座標値を境界レジスタ12Xに格納す
る。次いでこの直線p6p5と境界線Y1とを比較す
る。ここで交点p13が算出されるが、本発明において
は境界線X1上にダミーの線分を生成する構成となって
いるのでこの交点p13は意味を持たない。従って、こ
の交点p13を算出したら次ステップに移行する。勿
論、判定処理を追加することにより境界レジスタ12X
に値を格納した時点で次ステップに移行する構成として
もよい。
【0020】次ぎに直線p6p7の処理を行なう。この
直線p6p7は先に説明した直線p8p7と同様に処理
され、交点p15が算出された後に新たな直線p6p1
5に置き換えられる。次いで境界レジスタ12Xを参照
し、交点p14と交点p15との間に第2のダミー線分
を生成する。そして最後に線分p8p1に対する処理を
行なう。まずこの直線p8p1と境界線X1、Y1との
比較が行われ「範囲内」の判定結果が得られる。この結
果を受けて次ステップに移行する。以上の処理により、
導入された直線データは、p1p9、p10p3、
p3p11、p8p16、p16p0(第1のダ
ミー線分)、p14p6、p6p15、p14p
15(第2のダミー線分)、p8p1の各線分に変換
される。そして、これら各線分は〜の順序で前記し
た塗りつぶし処理手段に導入される。なお、以上はX側
境界線が左側境界部を、Y側境界線が下側境界部をそれ
ぞれ規定している例について説明したが、右側境界部及
び上側境界部についても同様に処理することができる。
また、導入ベクターはどのような順序で入力されたとし
ても、塗りつぶし処理において同じ結果が得られる。
【0021】図7は上述した境界部処理の流れを示すフ
ローチャートである。本実施例装置においてはまずX側
境界線に対する処理が行われる。ステップ(2)で境界
レジスタ12Xの内容をクリアするイニシャライズを行
い、次いでステップ(3)でベクターデータを導入す
る。ステップ(4)ではステップ(3)で導入したベク
ターデータが有効領域内にあるか否かについて判定す
る。そして、「領域内」と判定された場合にはステップ
(5)に移り、また「領域外」と判定された場合にはス
テップ(19)で対象から除外した後にステップ(2
1)へ移行し次順ベクターを処理する。ステップ(5)
では導入ベクターとX側境界線とを比較する。両者が交
差していないと判定された場合にはステップ(16)に
移りY側の処理に移行する。両者が交差していると判定
された場合にはステップ(6)にて両者の交点座標を算
出した後にステップ(7)に移り、この座標が処理領域
内に属するか否かを判定する。ステップ(7)で「領域
内」と判定された場合にはステップ(8)に移り算出し
た座標を交点座標として保持し、「領域外」と判定され
た場合にはステップ(9)に移り上限値又は下限値を交
点座標として保持する。次いでステップ(10)に移り
境界レジスタを参照する。この境界レジスタに値が格納
されていない場合にはステップ(11)にて保持してい
る交点座標を境界レジスタに格納しステップ(16)に
移行する。また境界レジスタに値が格納されている場合
にはステップ(12)にてこの格納値が上下限値である
か否かを判定する。上下限値でない場合、ステップ(1
3)に移行して算出した交点座標(上下限値)と格納座
標との間にダミーの線分を生成し、ステップ(14)に
て境界レジスタをクリアする。また格納値が上下限値で
あった場合、ステップ(15)に移り算出した交点座標
が上下限値であるか否かを判定する。ステップ(15)
で上下限値でないと判定された場合にはステップ(1
3)にてダミーの線分を生成し、上下限値であると判定
された場合にはステップ(14)にて境界レジスタをク
リアする。以上でX側境界線に対する処理が終了する。
【0022】次いでY側境界線に対する処理を行なう。
まずステップ(16)にて導入ベクターとY側境界線と
を比較する。両者が交差していないと判定された場合に
はステップ(21)に移行する。両者が交差していると
判定された場合にはステップ(18)にて両者の交点座
標を算出した後にステップ(19)に移り、この座標が
処理領域内に属するか否かを判定する。ここで「範囲
内」と判定された場合にはステップ(20)にて算出さ
れた交点を端点とする新たな線分を生成しそしてステッ
プ(21)に移行する。一方「範囲外」と判定された場
合にはそのままステップ(21)に移行する。ステップ
(21)では次順ベクターが残存するか否かを判定し、
残存する場合にはステップ(3)にて新たなベクターデ
ータを導入する。
【0023】この境界部の処理は一次処理データ取得時
に行なうこともできる。これは、各ベクターデータから
一次処理データを取得する際に、1つのドットに対する
座標値を取得した後にこのドットが有効処理領域内にあ
るか否かをこの座標値に基づいて判定し、「存在しな
い」と判定した場合には領域外とされた側の座標値を境
界線上の座標値に変換することにより行われる。例え
ば、Y側の境界線が「Y=1」で、線分を展開して得ら
れた一次処理データのXY座標値が(5,−5)であっ
たとする。この場合、Y座標値が「−5」であるので、
この点はY方向で領域外となっていることが判る。そし
て次の段階でこのデータを(5,1)に変換する。この
処理を各ドット毎に行なうことによりはみ出した閉図形
に対する境界部の処理を行なうことができる。
【0024】次いで図8を参照し、本発明における曲線
を含む線分群を処理する際に生じる端点処理について説
明する。図8は、2つの直線間を曲線により補間する場
合について説明する図である。まずこの図を参照し、従
来装置の問題点について示すことにする。図8に示した
図形は、第1の直線p1p2、円弧p2p3、第2の直
線p3p4及び第3の直線p4p1から構成されてい
る。ところで、上記円弧p2p3を処理する場合、この
円弧を複数の短い線分p2p5、p5p6、・・・p1
0p11で近似するとその処理が高速化でき都合がよ
い。しかしながら、この直線による近似は三角関数を使
用する必要があり誤差を伴ってしまう。すなわち円弧を
複数の線分で近似するために、中心座標、半径、始点・
終点角及び分割数等を与え、三角関数により円弧上の近
似点を決定する方法が採られている。このようにして描
画された円弧はその端点を三角関数を使用した演算処理
により決定しているのでこの演算精度に基づくズレが生
じてしまう。そして、最終の短直線の端点p11と第2
の線分の端点p3との間に僅かなズレが生じ、本来閉図
形となる図形の一部が欠落して塗りつぶし処理が正常に
行えなかった。
【0025】本発明においては、このようにずれた端点
座標を補間した後に塗りつぶしを行うよう構成されてい
る。以下、この図8を参照してこの補間動作について説
明する。図8において13は候補点レジスタで、接合さ
れるべき線分の候補となる端点(候補点)が順次格納さ
れるものである。まず、第1の直線p1p2に関する始
点p1、終点p2を導入する。まず始点p1に関し前処
理ベクターにより発生した候補点との一致/非一致が判
定され、次いでこの始点の周囲の所定範囲内に他の候補
点が存在するか否かが判定される。そして、終点p2に
対しても同様の判定処理が行われる。この場合第1の直
線p1p2は最初に描かれた直線であるから、判定結果
はいずれも「存在なし」となる。これを受けて端点p
1、p2を候補点として候補点レジスタ13の記憶セル
1、2に格納する。なお、上記所定範囲は種々条件によ
って規定される距離であるが、1mmあたり8ドット程
度のものにおいて0〜4ドット程度、すなわちコンマ数
mm程度に規定される。図8において、前記点p3とp
11はこの所定範囲内の点同士であるものとする。
【0026】次いで、曲線p2p3に対する処理を行な
う。この曲線p2p3は、先に述べたように複数の短直
線p2p5、・・・p10p11で与えられる。そし
て、これらの短直線群は第1の短直線p2p5から順次
処理される。まず第1の短直線の始点p2と先の上記第
1の直線の終点とが一致するか否かが判定される。この
場合、両者は点p2で一致しているので連続線分と判定
され、これにより候補点レジスタ13の記憶セル2から
点p2が削除される。これで始点p2に対する処理を終
了し終点p5に対する処理が行われる。終点p5につい
ても同様の判定が行われ、まず第1の直線の終点p2と
の比較が行われる。ここでは非一致と判定されて次ステ
ップに移行する。次ステップでは終点p5の周囲に他の
端点(候補点)が存在するか否かを格納の新しい順に判
定する。この場合、候補点レジスタ13の記憶セル1と
の比較、すなわち第1の直線の始点p1との比較が行わ
れるが両者は距離が離れているので非一致と判定され
る。これにより終点p5が候補点レジスタ13の記憶セ
ル2に格納される。以上で第1の短直線に対する処理が
終了する。次いで第2の短直線p5p6が導入される。
この場合の処理も先の第1の短直線p2p5と同様に行
われる。まず第2の短直線の始点p5と第1の短直線の
終点が比較され、両者はp5で一致しているのでこれに
より両者は連続線分と判定される。次に第2の短直線の
終点p6が比較されてこの点p6が候補点レジスタ13
の記憶セル2に格納される。このような処理を最終の短
直線p10p11まで繰り返し実行する。その結果、第
1の直線p1p2から最終の短直線p10p11までが
連続した線分と判定され、そして前記候補点レジスタ1
3の記憶セル1には第1の直線の始点p1が、記憶セル
2には最終の短直線の終点p11が格納される。
【0027】次ぎに第2の直線p3p4が導入される。
まずこの第2の短直線の始点p3と最終の短直線の終点
p11とが一致しているか否かを比較する。この場合非
一致と判定されて次ステップに移行する。次ステップで
は、まず第2の直線の始点p3と候補点レジスタ13の
記憶セル内に格納された候補点とを格納の新しい順に比
較し所定範囲内の点であるか否かを判定する。ここでは
記憶セル2に格納された最終の短直線p11が所定範囲
内の点と判定される。この判定を受けて上記第2の直線
p3p4とこの最終の直線p10p11との結合処理が
行なわれる。この場合には双方の座標が異なっているの
で、最終の短直線の終点座標p11と第2の直線の始点
座標p3との間にダミーの線分p3p11を生成し、上
記最終の短直線p10p11と上記第2の直線p3p4
とを結合する。この結合処理においては、第2の直線p
3p4に関し、この第2の直線の始点座標p3を上記最
終の短直線の終点座標p11に変更し、上記第2の直線
をp11p4としてもよい。このように構成すると、第
2の直線が比較的長い線分である場合に補間した部分が
目立たないといった利点がある。次ぎに第3の直線p4
p1を処理し、一連の処理を終了する。
【0028】図9は上述した端点処理の流れの1例を示
すフローチャートである。ステップ(2)では一つのベ
クター信号の始点座標Psと終点座標Peを導入する。
ここで線分が曲線である場合、このベクター信号は当該
曲線を分割した短直線に相当する。ステップ(3)にお
いて、前回導入したベクター信号の終点座標と今回導入
したベクター信号の始点座標Psとが一致するか判定す
る。一致した場合にはステップ(7)に移り、非一致の
場合にはステップ(4)に移る。ステップ(4)では上
記始点座標Psと候補点バッファに格納された端点座標
とを格納の新しい順に比較する。そしてステップ(5)
へ移り、上記始点座標Psに対し所定範囲内の端点座標
(対象座標という)が存在したか否かを判定する。存在
していた場合にはステップ(6)に移り、この始点座標
Psと対象座標との結合処理を実行する。この結合処理
は、始点座標Psと対象座標との間にダミーの線分を生
成すること、あるいは対象座標を含む線分に対し、その
端点座標を対象座標から始点座標Psに置き換えること
により行われる。そしてステップ(7)では、上記ステ
ップ(6)で結合処理が行われた端点座標、あるいは上
記ステップ(2)で「一致」と判定された端点座標を上
記候補点バッファから削除し、ステップ(9)に移る。
一方、上記ステップ(5)で所定範囲内の端点座標が存
在しなかった場合にはステップ(8)にて上記始点座標
Psを候補点バッファに登録し、ステップ(9)に移
る。ステップ(9)〜(14)では、上述した処理を終
点座標Peについて行っている。そしてこの処理は、先
のステップ(2)〜(8)におけるPsをPeに置き換
えただけであるので、その説明を省略する。そして、ス
テップ(13)あるいはステップ(14)を経るとステ
ップ(15)に移り、ここで全ベクター信号の処理が終
了したか否かを判定する。全ベクター信号が処理された
場合にはステップ(16)に移り塗りつぶし処理に移行
する。一方、未処理のベクター信号がある場合にはステ
ップ(2)に移り次順のベクター信号の処理を行なう。
【0029】
【発明の効果】以上説明したように、この発明によれば
ベクターデータの一次処理値を求めオンデータ対が完成
した段階で塗りつぶし処理を行うよう構成したので、連
続した処理を順次に行うことができ、処理時間を短縮す
ることができる。そして、有効処理領域外にはみ出した
図形をダミーの線分で処理し、新たに閉図形を生成する
ので、図形が有効処理領域外にはみ出した場合でも正常
な塗りつぶしを行なうことができるといった利点があ
る。さらに、曲線を含む図形に対し、演算誤差によって
ずれた曲線の端点と対応する線分の端点とを結合するの
で、正常な塗りつぶしを行なうことができるといった利
点がある。
【図面の簡単な説明】
【図1】図1は、本発明の構成例を模式的に示す説明図
である。
【図2】図2は、本発明の塗りつぶし処理の原理を説明
する模式図である。
【図3】図3は、本発明の塗りつぶし処理の例外を説明
する模式図である。
【図4】図4は、本発明の塗りつぶし方法を説明する模
式図である。
【図5】図5は、本発明の塗りつぶし処理の流れを示す
フローチャートである。
【図6】図6は、本発明の塗りつぶし処理における境界
部処理方法を説明する模式図である。
【図7】図7は、本発明の塗りつぶし処理における境界
部処理の流れを示すフローチャートである。
【図8】図8は、本発明の塗りつぶし処理における端点
部処理方法を説明する模式図である。
【図9】図9は、本発明の塗りつぶし処理における端点
部処理の流れを示すフローチャートである。
【図10】図10は、従来の塗りつぶし方法を説明する
模式図である。
【符号の説明】
1:塗りつぶし処理部 2:塗りつぶし信号発生部 3:排他的論理和回路 4:フレームメモリ 5:CRT表示器

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】閉図形を構成する1個または複数のベクタ
    ーデータを順次取り込み該閉図形の内部を塗りつぶす閉
    図形塗りつぶし方法において、 前記ベクターデータを順次取り込みそれらのベクターデ
    ータが展開されるべきフレームメモリの記憶セルの位置
    に関連する一次処理データを得る段階、 前記得られた一次処理データに関して、前記フレームメ
    モリの同一走査ラインにおけるオンデータ対を認識する
    段階、 前記同一走査ライン上のオンデータ対間のデータをオン
    データとするオンデータ群を作成する段階、 前記生成した同一走査ライン上のオンデータ群と当該オ
    ンデータ群の各々に対応するフレームメモリの記憶セル
    内のデータとの排他的論理和を演算する段階、 前記排他的論理和の結果を前記フレームメモリの対応す
    る記憶セルのデータとする段階、 とを有した閉図形塗りつぶし方法。
  2. 【請求項2】前記閉図形を構成する1個または複数のベ
    クターデータと有効処理範囲を示す境界線との交点とか
    ら境界データを取得し、取得した境界データに基づき前
    記境界線に沿った仮想のベクターデータを生成すること
    により、前記有効処理範囲内に閉図形を生成する段階を
    有してなる請求項1記載の閉図形塗りつぶし方法。
  3. 【請求項3】複数のベクターデータから成る閉図形に関
    し、該複数のベクターデータの各端点の一致度を判定す
    る段階と、接続すべきベクターデータ間の端点が不一致
    である時、それらを結合する段階を設けたことを特徴と
    する請求項1記載の閉図形塗りつぶし方法。
JP7275094A 1993-06-04 1994-03-16 閉図形塗りつぶし方法 Pending JPH0793570A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7275094A JPH0793570A (ja) 1993-06-04 1994-03-16 閉図形塗りつぶし方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5-160272 1993-06-04
JP16027293 1993-06-04
JP7275094A JPH0793570A (ja) 1993-06-04 1994-03-16 閉図形塗りつぶし方法

Publications (1)

Publication Number Publication Date
JPH0793570A true JPH0793570A (ja) 1995-04-07

Family

ID=26413890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7275094A Pending JPH0793570A (ja) 1993-06-04 1994-03-16 閉図形塗りつぶし方法

Country Status (1)

Country Link
JP (1) JPH0793570A (ja)

Similar Documents

Publication Publication Date Title
US6728407B1 (en) Method for automatically determining trackers along contour and storage medium storing program for implementing the same
JP3264619B2 (ja) 画像処理装置および方法
US5355448A (en) Method of generating dot signals corresponding to character pattern and the system therefor
JPH03119387A (ja) デジタル活字面の輪郭を形成する方法およびその装置
JPH0793570A (ja) 閉図形塗りつぶし方法
JPH03233689A (ja) アウトラインデータ描画装置
JP3109585B2 (ja) 三次元オブジェクトデータ生成方法及びその装置並びに三次元オブジェクトデータを生成するプログラムを記録した記録媒体
JP3536894B2 (ja) 図形処理装置
JPH06259507A (ja) 図形分割装置
JP2611020B2 (ja) 物体の認識方法
JP2854588B2 (ja) ラスタベクタ変換方法及び線図形入力装置
JPH09134441A (ja) 曲線の直線近似装置
JPH0786935B2 (ja) 輪郭データ圧縮方法
JPH07109628B2 (ja) 図形情報の表示処理方法
JP3133807B2 (ja) 輪郭抽出方法及びその装置
JP3567728B2 (ja) 画像処理方法および装置
JP3072769B2 (ja) 図形処理方法及び装置
JP2715496B2 (ja) 画像塗りつぶし装置
JPH01205388A (ja) 高品質文字・図形等の生成方式
JPH04308886A (ja) 地図情報入力装置
JPH04342084A (ja) 曲線描画方法及び装置
JPH02130689A (ja) 図形処理装置
JPH02146681A (ja) 等高線抽出方式
JPH0259871A (ja) 画像処理装置および画像処理方法
JPH0319991B2 (ja)