JP2861044B2 - 図形処理装置 - Google Patents

図形処理装置

Info

Publication number
JP2861044B2
JP2861044B2 JP1117332A JP11733289A JP2861044B2 JP 2861044 B2 JP2861044 B2 JP 2861044B2 JP 1117332 A JP1117332 A JP 1117332A JP 11733289 A JP11733289 A JP 11733289A JP 2861044 B2 JP2861044 B2 JP 2861044B2
Authority
JP
Japan
Prior art keywords
line segment
data
end point
line
coordinate
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
Application number
JP1117332A
Other languages
English (en)
Other versions
JPH02297681A (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.)
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 JP1117332A priority Critical patent/JP2861044B2/ja
Publication of JPH02297681A publication Critical patent/JPH02297681A/ja
Application granted granted Critical
Publication of JP2861044B2 publication Critical patent/JP2861044B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 「産業上の利用分野」 本発明は、重なり合う複数の曲線を含んだ任意図形で
囲まれる閉領域の内部を正確に塗り潰すための図形処理
装置に関する。
「従来の技術」 直線あるいは曲線を組み合わせて任意の図形を作成し
たとき、その図形内部を塗り潰すことが必要になる場合
がある。従来は、曲線を含む図形を塗り潰すとき、表示
用メモリ等の記憶手段に輪郭線を描画した後、この内容
を読み取ることによって、塗り潰す範囲を決定してい
た。
第27図はこの従来における塗り潰し方法を説明するた
めのものである。走査線11について述べると、表示用メ
モリを最初の単位区間12から順に単位区間13を単位とし
て読み取る。そして、輪郭線が配置されている単位区間
14および15のデータを記憶することにより、塗り潰す範
囲を決定して、これらの単位区間の塗り潰し処理を行う
ものであった。
この場合、最初に読み取った単位区間14を始点とし、
この次に読み取った単位区間15を終点とし、この間の区
間を塗り潰す。同様に、次の走査線についても、輪郭線
が配置された最初の単位区間を始点とし、以下前記した
処理を繰り返すものである。
「発明が解決しようとする課題」 しかし、この方法では、重なり合った複数の曲線を含
む任意図形で囲まれる閉領域の内部を正確に判定して塗
り潰すことが困難である。
例えば、第28図に示すような、“す”という文字を輪
郭線で表現し、第29図に示すようにこの内部をすべて塗
り潰すものとする。この際、第30図に示すような輪郭線
で表現される1つの閉じた図形を塗り潰すのに、前記し
た従来の方法を用いると、図形の重なり合った部分が生
じる。この結果、第31図に示すような塗り潰しが行わ
れ、塗り残しの部分が幾つか生じてしまう。
以上、ひらがなの一例について示したが、同様の問題
は、曲線を含む輪郭線により表現される漢字、ひらがな
等の文字の字体やその他の図形を塗り潰す場合に同様に
発生する。
そこで、本発明の目的は、複数の曲線を含む任意図形
が重なっていても、これらの任意図形によって囲まれた
閉領域を正確に塗り潰すことのできる図形処理装置を提
供することにある。
「課題を解決するための手段」 請求項1記載の発明では、(イ)閉図形を構成する線
分であって所定の座標軸の一方向にのみ変化する線分ご
とに線分の変化する方向と線分を構成する座標点とを含
む線分データを登録する線分データ登録手段と、(ロ)
この線分データ登録手段に登録された2つの線分データ
を座標軸において順次比較し、両線分の方向が同一かつ
一方の線分の端点の値と他方の線分の端点の値が同一の
場合、一方の線分の端点の値を他方の線分の端点の値と
重複しないように変更する端点変更手段と、(ハ)この
端点変更手段により変更された線分データを用い、座標
軸と直交する方向にこの図形を1ラインずつ走査して塗
り潰す塗り潰し手段とを図形処理装置に具備させる。
すなわち、請求項1記載の発明では閉図形を構成する
各線分について、それらの線分の変化する方向と線分を
構成する座標点とを含む線分データを線分データ登録手
段に登録した後、これらの線分データを順次比較し、両
線分の方向が同一で一方の線分の端点の値と他方の線分
の端点の値が同一の場合、これらの値が重複しないよう
に変更する。そして、この変更された線分データを用い
て、座標軸と直交する方向に図形を1ラインずつ走査し
て塗り潰すようにしている。
また請求項2記載の発明では、請求項1記載の図形処
理装置でデータ登録手段は複数の閉図形の線分データを
登録するとともに、端点変更手段は各閉図形ごとに端点
の値を変更するものであり、塗り潰し手段は複数の閉図
形の線分データを用いて複数の閉図形の塗り潰しを一括
して行うことを特徴としている。
更に請求項3記載の発明では、請求項1または請求項
2記載の図形処理装置で端点変更手段は、線分データの
順次比較において最初に用いた線分と最後に用いた線分
の方向が同一かつ最初の線分の端点の値が最後の線分の
端点の値と同一の場合、一方の線分の端点の値を他方の
線分の値と重複しないように変更することを特徴として
いる。
また、請求項4記載の図形処理装置では、座標軸と直
交する方向に図形の塗り潰し処理を行うためのマスクデ
ータを備え、塗り潰し手段はこのマスクデータを用いて
図形の塗り潰しを行うことを特徴としている。
図1は本発明を別の観点からとらえたものである。こ
の図に示すように、曲線を辿っていったときの方向が所
定の座標軸の一方向にのみ変化しこれと逆方向には変化
しないような範囲でそれぞれ区切られた複数の単位曲線
から構成された図形を、座標点の集合に変換する座標点
変換手段21と、この座標点変換手段21によって変換され
た座標点のうち単位曲線の接合位置で重複した点が存在
する場合にはこれを重複しないように処理する接合位置
座標点処理手段22と、前記した単位曲線のそれぞれにつ
いて前記した座標軸のどの方向に変化している曲線であ
るかを判別する方向判別手段23と、接合位置座標点処理
手段22によって処理された後の座標点の集合に対して方
向判別手段23の判別結果に応じて前記した座標軸と直交
する座標軸方向にこの図形を1ラインずつ走査して塗り
潰す塗り潰し手段24とを図形処理装置に具備させること
も考えられる。また、曲線を辿っていったときの方向が
所定の座標軸の一方向にのみ変化しこれと逆方向には変
化しないような範囲でそれぞれ区切られた複数の単位曲
線から構成された図形を、座標点の集合に変換する座標
点変換手段21と、この座標点変換手段21によって変換さ
れた座標点のうち前記した単位曲線の接合位置で重複し
た点が存在する場合にはこれを所定の座標軸方向に所定
量だけシフトさせる接合位置座標点シフト手段25と、前
記した単位曲線のそれぞれについて座標軸のどの方向に
変化している曲線であるかを判別する方向判別手段23
と、前記した座標軸と直交する方向に図形の塗り潰し処
理を行うためのマスクデータを作成するマスクデータ作
成手段26と、接合位置座標点シフト手段25によって処理
された後の座標点の集合に対して方向判別手段23の判別
結果に応じて前記した座標軸と直交する座標軸方向にこ
の図形を1ラインずつ走査してマスクデータを用いて塗
り潰す塗り潰し手段24とを図形処理装置に具備させるこ
とも考えられる。また、塗り潰そうとする曲線を単位曲
線ごとに座標点の集合に変換し、塗り潰しが残らないよ
うにこれらの単位曲線ごとの座標点相互の重複した点を
シフトさせる等によって調整し、単位曲線が例えばY軸
におけるプラス方向に増加しているか減少しているかに
応じて1ラインずつ走査して塗り潰しを行う。このと
き、マスクデータを用いて塗り潰しを行うことも有効で
ある。
「実施例」 以下、実施例につき本発明を詳細に説明する。
第2図は、本発明の一実施例における図形処理装置の
回路構成の概要を表わしたものである。
この図形処理装置は、次のような各部から構成されて
いる。
(1)データ入力装置31: 塗り潰す図形の座標点を入力するためのキーボード31
−1およびポインティング・デバイスとしてのマウス31
−2によって構成されている。
(2)輪郭線データ管理部32: 複数の閉じた図形のデータを管理しておく場所であ
る。データ入力装置31によって塗り潰す図形の座標点が
入力されると、これが輪郭線データ管理部32に格納され
る。
(3)灰色パターンデータ用マスク・データ作成部33: ここで灰色パターンデータとは、信号“1"と信号“0"
を並べる並べ方によって所望の濃度の灰色を表現するデ
ータである。灰色パターンデータ用マスク・データ作成
部33は、灰色パターンデータを基にしてマスク・データ
を作成する。
(4)描画用マスクデータ管理部34: 描画用のマスクデータを保管する部分である。灰色パ
ターンデータ用マスク・データ作成部33で作成したマス
クデータの保管も行う。
(5)輪郭線データ変換部35: 輪郭線データ管理部32に格納されている図形データを
描画の処理を行い易いように変換する部分である。
(6)輪郭線データ制御部36: 図形を塗り潰すのに不都合のないように線分と線分の
接合点を操作する部分である。
(7)描画処理部37: 描画処理部37は、作成されたマスクデータを取り出し
て、塗り潰しの処理を行う部分である。描画処理部37は
次の3つの部分から構成されている。
走査線データ作成部37−1。
描画領域判定部37−2。
描画データ加工部37−3。
(8)描画領域記憶部38: 表示用の記憶領域である。
(9)表示装置39。
塗り潰された図形等の各種表示を行う部分であり、CR
Tディスプレイやレーザプリンタ等の出力装置で構成さ
れる。
なお、輪郭線データ管理部32等のその他の回路部分
は、プログラムや一時的な格納データを記憶するランダ
ム・アクセス・メモリや、データの記憶手段としての磁
気ディスク装置や光磁気ディスク装置のいずれか1つま
たは双方を使用するものである。
この第2図を用いて、図形処理装置の概要を説明す
る。
オペレータは、まずデータ入力装置31を用いて、マウ
スにより図形の座標点の指示を行う。これにより、その
図形を構成する座標点が輪郭線データ管理部32に格納さ
れる。
次に、指示された点によって構成される図形によって
囲まれた内側を塗り潰すのに使用するために、予め作成
されている幾つかの灰色パターンデータのうち所望のも
のをマウス31−2によって選択し、塗り潰し用のパター
ンデータを得る。
このパターンデータを灰色パターンデータ用のマスク
データ作成部33で、描画用マスクデータ管理部34に格納
してある第3図に示すような描画用のデータ42〜44を使
用して、描画用のパターンデータを作成する。灰色パタ
ーンデータは本実施例で32×32ビットのデータ構成のも
のとする。
描画用のパターンデータは、輪郭線データ変換部35で
各線分、または曲線の座標点を示す点列データに変換さ
れ、図形を塗り潰すのに不都合のないように輪郭線デー
タ制御部36で線分と線分の接合点が操作される。
この後、描画処理部37で処理が行われる。
描画処理部37では、走査線データ作成部37−1が、輪
郭線データ制御部36で作成されたデータを基に走査線と
の交点を求め、このデータを管理する。
描画領域判定部37−2は、この交点と、このとき走査
線と交差した線分の向きを基に、塗り潰す範囲を決定す
る。
塗り潰す範囲が決定されたら、描画データ加工部37−
3は描画用マスクデータ管理部34に格納されているマス
クデータを取り出し、これを描画領域記憶部38へ置く。
描画処理部37における37−1〜37−3の処理が走査に
対象である範囲まで繰り返されると、塗り潰し処理が完
了する。
この処理によって、塗り潰された図形が描画領域記憶
部38に描画され、この内容が表示装置39によって出力さ
れる。
ところで、マスクデータ管理部34は第3図に示す描画
領域管理テーブル41を備えており、このテーブルに示す
内容を管理する。この描画領域管理テーブル41に示す内
容について、以下に順を追って説明する。
ここで使用されるマスクデータ管理部34に格納されて
いる黒インクデータ42は第4図および第5図に示すデー
タであり、白インクデータ43は第6図および第7図に示
すデータである。
これらのデータは始点用、終点用ともに32×32のデー
タ構成で表わす。ここで、第4図、第5図、第6図、第
7図に示される斜線部はビット“1"(オン)を示し、空
白部はビット“0"(オフ)を示す。
これらのデータを使用して、灰色インクデータ44は第
8図に示すように、灰色パターンデータ1ライン分を始
点用32×32ビット、終点用32×32ビットのマスクデータ
を表現し、このマスクデータを16ライン分作成する。
第9図はマスクデータの作成方法を示したものであ
る。灰色パターンデータ(同図a)と黒インクデータ42
(同図b)の論理積をとってマスクデータ(同図c)が
作成される。
このマスクデータ作成の考え方は、特開昭58−191064
号公報に記載されているものに類似している。ただし、
この公報に記載された技術ではマスクデータを毎回作成
するが、本発明ではデータを一度作成するだけで、描画
時にマスクデータ管理部34からマスクデータを取り出し
て処理する点が異なる。
この第3図で描画領域45は描画記憶部38を指してい
て、描画領域予約テーブル41には、この描画領域45の存
在する場所が示されている。
以下、図形の塗り潰し処理について具体的に説明す
る。
まず、輪郭線データ管理部32に格納されている図形デ
ータを描画の処理を行い易いように変換する。この処理
は輪郭線データ変換部35で行う。
ここで、作成されたデータを線分データと呼ぶことに
する。
線分データは、ダブル・ステップ・インクリメンタル
・ジェネレーションまたはブレッセンハムのアルゴリズ
ムを用いて、ドット単位の座標値を示す点列データに変
換したものである。線分データを第10図Cに示す。ここ
で、ドットの数とは座標点の数をいい、傾きを示すフラ
グとはY座標について上向きか下向きかを示すフラグで
ある。
この第10図で、同図Aは始点と終点を結んだ線分を示
す。この線分のデータが同図Bに示すドット単位の座標
値に変換される。同図Dは、同図Bに示した線分データ
が表示装置で表示される様子を表わしたものである。
なお、X軸に平行な線分については、この平行な線分
の前後の線分データにより、この部分を塗り潰すことが
できるので、本実施例ではこれを処理の対象としていな
い。したがって、X軸に平行な線分データは作成しない
ようになっている。
ところで、線分データ管理テーブルは、線分データの
作成と同時に、この線分データと1対1の関係にあるよ
うに作成される。このため、線分データの数と同数の線
分データ管理テーブルが作成される。これを第11図に示
す。
ここで、Y座標に対する線分の方向について説明す
る。
輪郭線の構成線分について、線分の始点のY座標をYB
I、線分の終点のY座標をYEIとして表わすと、YBI<YEI
のとき、線分の方向を+1とし、YBI>YEIのとき線分の
方向を−1とする。これを線分データ管理テーブル122
−1に示す“wf"に記入する。
この線分データ管理テーブル122−1には、この他の
情報を含んでいる。この線分データ管理テーブル122−
1に示す“sgn"は線分データ121−1の座標値の配列上
を移動する方向を+1、−1のいずれかで示す。
“pt_adrには第11図に示すように、線分データの始点
のデータアドレスを記入して、“ep_adr"には線分デー
タの終点のデータアドレスを記入する。
“bfr_y"は線分データの始点“pt_adr"のY座標の値
を記入する。
そして、輪郭線データ制御部36は描画領域判定部37−
2で描画範囲を決定し易いように、線分データにある制
御を加えるものである。
この制御について、第12図に示す七角形の凹凸の図形
を例にとって説明する。
ここで、線分データの始点のY座標をYB2、線分デー
タの終点のY座標をYE2として表わすことにする。
この七角形の線分を示す矢印がすべて上向きに向いて
いるのは、線分データに変換する際に、すべての線分デ
ータが、YB2<YE2となるような線分データに変換したこ
とを示している。
そして、この七角形の凹凸の図形を塗り潰す場合、Y
座標aを走査するとき、線分131の終点、線分132の始
点、線分136上の点の3つが存在し、これらをX座標に
ついて昇順に分類するため、塗り潰し範囲を線分131の
終点、線分132の始点としてしまい、線分136上の点まで
の範囲が塗り残されてしまう。
これを改善するため、第13図に示すように、線分141
の線分データ管理テーブルの“wf"と次の線分142の線分
データ管理テーブルの“wf"が1であり、かつ線分141の
YE2と次の線分142のYB2が等しい場合、線分141の終点14
3をY−1の座標値144にずらす操作を行う。
この操作を線分131と線分132に当てはめると、線分13
1の終点YE2をY−1の座標値にずらす操作を行う。
また、線分135の線分データ管理テーブルの“wfと次
の線分136の線分データ管理テーブルの“wf"が−1であ
り、かつ線分135のYB2と次の線分136のYE2が等しい場
合、線分136の終点YE2をY−1の座標値にずらす操作も
行う。
この操作により、第12図に示すaを走査するときに
は、線分132の始点、線分136上の点の2つの点となるの
で、第14図に示すように塗り残しが発生することなく処
理できる。
この操作を行うことにより、1走査で抽出される点は
すべて偶数となる。
なお、上述したこの処理を輪郭線データ変換部35と輪
郭線データ制御部36の処理は1図形ごとに行われ、図形
の数だけ輪郭線データ変換部35と輪郭線データ制御部36
の処理を行うものである。
次に描画処理部37について説明する。
まず、走査線データ作成部37−1において、線分デー
タ管理テーブルにある“bfr_y"は現在、線分データ上を
走査しているY座標の値が記入されているもので、この
値は線分データのドットのY座標値がY+1の座標値に
なるまで線分データ上を走査するという処理を行うため
に、Y+1の座標値が走査されたときに、線分データ上
の走査を一時停止させるために使用する。このとき、
“bfr_y"の値をY+1とする。
そして、このテーブルにある“pt_adr"に現在線分デ
ータ上を走査している場所を示すアドレスが記入され、
“ep_adr"には線分データの終点を示すアドレスが記入
されている。
このデータを基に、描画領域判定部37−2では、複数
の閉じた図形を塗り潰すための範囲で決定する。
この範囲決定の処理をし易いように、走査線データ作
成部37−1には、走査した線分データのドットのY座標
値が同一である範囲を1つの線で示すために始点(“bg
n_pt")と終点(“end_pt")により表現する。
描画処理部37は、ワインディング方向(“wind_f")
を示す情報を管理する描画位置管理テーブル161を備え
ている。これを第15図に示す。
描画位置管理テーブル161も、線分データ管理テーブ
ルと同様に、線分データと1対1の関係にあるように作
成される。このため、線分データの数と同数個の描画位
置管理テーブル161が作成される。
次に、描画領域判定部37−2において、この描画位置
管理テーブル161を使用して、各線分データに対応する
描画位置管理テーブ161を始点のX座標値について昇順
を並べる。この後、第16図および第17図に示すように描
画位置管理テーブル161のワインディング方向を示す情
報の値を足していき、零となった時点で、この範囲にマ
スクデータを置く。
ここで塗り潰す範囲が決まったら、描画データ加工部
37−3で、この範囲を第3図に示す描画領域45に対応づ
けるマスクデータを描画用マスクデータ管理部34より抽
出する。
このマスクデータが抽出されると、第18図に示すよう
に描画領域記憶部38に書き込む。
ここで、第18図に示す各マスクデータ192、193、194
は描画用マスクデータ管理部34より抽出可能であるが、
マスクデータ191は描画用マスクデータ管理部34より抽
出できない。
このため、第19図に示すように、描画用マスクデータ
管理部34に格納されている黒、白、灰色のインクデータ
いずれかの始点データ201と終点データ202を使用して、
これらのデータの論理積(白は論理和)をとることによ
り、マスクデータ191に対応するデータ203を作成する。
この処理は、描画データ加工部37−3において行うも
のである。
このようにして、走査している図形の内部にマスクデ
ータを置いていく。この処理を描画範囲内において、上
記した処理を繰り返すことにより、塗り潰し処理を完了
するものである。
そして、描画領域記憶部38に書き込まれた内容は、表
示装置によって出力される。
ここで、“す”の字にある曲線部分をどのように処理
するのかについて、第20図に示す。
第20図aに示す“す”の字の曲線部分を楕円で表現す
るものとし、この楕円は時計回り、または反時計回りの
方向と始点、終点を持つ。
この楕円で表現した部分を第20図bに示すように、楕
円の極大、極小値の点により分割する処理を行う。
この分割した部分を線分221〜228で示す。これらの線
分221〜228はある半径を持つ半円で構成されるものであ
る。
ここで、例を挙げて示すと線分221と他の線分222は同
一の半径を持つ半円を極小値で分割したものである。
このように分割した半円をダブル・ステップ・インク
リメンタル・ジェネレーション(または、ブレッセンハ
ム)のアルゴリズムを用いて、線分データに変換するも
のである。
このように処理することにより、線分データはY軸方
向に座標が増加するだけとなるので、この分割された各
々の半円を直線の線分と同様に扱うことができる。
この結果、本発明において第29図に示すように塗り潰
すことが可能となる。
(処理手順) 第21図〜第26図は、第3図に示した図形処理装置で処
理する塗り潰し手順を示したものである。
最初に輪郭線データ管理部32に図形データが入力して
あるとする。この輪郭線データ管理部32の処理を第21図
に示す。
ここでは、図形データを線分データに変換するため
に、まず図形データが輪郭線データ管理部32に存在する
ことを確認する(ステップ;N)。
次に、複数の図形データから1つの図形データを取り
出す(ステップ)。そして、図形を構成する線分があ
ることを確認して(ステップ;N)、この線分を1つ取
り出す(ステップ)。
この線分がX軸に平行でないことを確認し(ステップ
;Y)、これを第10図に示す線分データに変換する(ス
テップ)。
この変換は、ダブル・ステップ・インクリメンタル・
ジェネレーションというアルゴリズムを用いて点列のデ
ータに変換する。
図形を構成する要素に円が含まれているときは、第20
図bに示すように極大点、または極小点があればその点
で円のデータを分割する。
このとき、線分がX軸に平行であるなら(ステップ
;N)、この線分を線分データに変換しない。これは、
この線分がなくても、この前後の線分データにより、こ
の部分の塗り潰しが可能であることによる。
この後、ステップに戻り、図形を構成する線分がす
べて終了すると(ステップ;Y)、この閉じた図形の線
分データの接合部分の制御を行い(ステップ)、ステ
ップに戻る。
ここで、図形の数だけデータ変換の処理が終了すると
(ステップ;Y)、次にY軸方向の描画範囲を求める。
まず、最初にすべての線分データについて処理したか
を確認し(ステップ;N)、図形の塗り潰し範囲を求め
(ステップ)、そして塗り潰し処理が行い易いよう
に、各線分データごとに第14図に示す線分データを管理
するテーブルを作成する(ステップ)。
この後、ステップに戻り、すべての線分データにつ
いて上記処理が終了する(ステップ;Y)まで繰り返
す。
ここで、輪郭線データ制御部36について第22図を用い
て説明する。
まず、すべての線分データについて処理したかを確認
し(第22図ステップ;N)、塗り残し部分が発生しない
ように第13図で示す処理を線分データについて行う。
最初に取り出された線分データを線分データ1、次に
取り出された線分データを線分データ2とする。
このとき、ワインディング・フラグ(“wf")が1で
かつ線分データ1のYE2と線分データ2のYB2が等しいと
き(ステップ)、線分データ1の接合点YE2をY−1
の座標にずらす(ステップ)。
それ以外のとき(ステップ;N)、ワインディング・
フラグが−1でかつ、線分データ1のYB2と線分データ
2のYE2が等しいとき(ステップ;Y)、線分データ2
の終点YE2と線分データ2の終点YE2をY−1の座標にず
らす(ステップ)。
そして、線分データ2を線分データ1とし、次の線分
データを線分データ2とし、ステップに戻る。
この処理をすべての線分データについて行った後(ス
テップ;Y)、図形の開始点と終点の制御を行う。
これは、閉じた図形であるため、この図形の開始点と
終点は同一の座標値である。
この開始点を含む線分データを線分データ1とし、終
点を含む線分データを線分データ2とすると、ワインデ
ィング・フラグが1でかつ、線分データ1の始点の座標
(x,y)と線分データ2の終点の座標(x,y)が等しいと
き(ステップ;Y)、線分データ2の終点のY座標をY
−1の座標にずらす(ステップ)。
それ以外のとき(ステップ;N)、ワインディング・
フラグが−1でかつ、線分データ1の終点の座標(x,
y)と線分データ2の始点の座標(x,y)が等しいとき
(ステップ;Y)、線分データ2の接合点YE2をY−1
の座標にずらす(ステップ)。
次に、第23図に示すように塗り潰し処理を行う。
この塗り潰し処理は、第22図ステップによって求め
られた範囲でY座標の小さい値から走査を始める。
このため、ここで塗り潰し範囲の最大のY座標となっ
たかを確認(第23図ステップ;N)してから、走査線デ
ータ作成部37−1の処理を行い(ステップ)、次に描
画領域判定部37−2の処理を行う(ステップ)。この
走査線データ作成部37−1と描画領域判定部37−2の処
理を塗り積し範囲の最大のY座標となるまで(ステップ
;Y)繰り返すことにより、図形の塗り潰し処理を行う
ものである。
この走査線データ作成部37−1の処理について第24図
に示す。
ここでは、図形を構成する線分データをすべて処理し
ていないことを確認し(第24図ステップ;N)、1線分
データを取り出す(ステップ)。
次に、線分データ管理テーブル(152−1)に格納さ
れているこの線分データのカレント座標を示す値を取り
出す(ステップ)。この値が走査線上にあり(ステッ
プ;Y)、今回の走査で最初に取り出されたのなら(ス
テップ;Y)、第15図に示す描画位置管理テーブル161
に始点として記入する(ステップ)。
そして、この座標が線分データの終点であるとき(ス
テップ;Y)、このテーブルの終点に始点のデータを記
入し(ステップ)、この線分データの走査を終了す
る。
このとき、この座標が線分データの終点でないとき
(ステップ;N)、この線分データの次のドットの座標
値を取り出す(ステップ)。この値が走査線上にあり
(ステップ;Y)、今回の走査で最初に取り出されたも
のでないのなら(ステップ;N)、この線分データの次
のドットの座標値を取り出す(ステップ)。
そして、走査している線分データのドットの座標値の
Y座標値が走査しているY座標よりも大きければ(ステ
ップ;N)、1つ前の座標値を第15図に示す161のテー
ブルに終点として記入して(ステップ)、この線分デ
ータの走査を終了する。
そして、ステップに戻り、すべての線分データの処
理が終了したら(ステップ;Y)、走査線データ作成部
37−1の処理を終了する。
以上の処理で走査線上に置かれるデータが作成できた
ことになる。
そして、描画領域判定部37−2に移る。この処理を第
25図に示す。
ここでは、走査線データ作成部37−1で作成されたデ
ータを始点のX座標値について昇順に並べる(第25図ス
テップ)。この分類にはクイックソート・アルゴリズ
ムを使用する。
次に、走査線上に置くデータが処理されていないこと
を確認し(ステップ;N)、このデータを昇順に1つ取
り出し(ステップ)、ワインディング・フラグをカウ
ンターにセットし、findフラグを零にセットする(ステ
ップ)。
この後、findフラグが零であることを確認し(ステッ
プ;Y)、昇順に並べられたデータを順に1つ取り出し
(ステップ)、このデータのワインディング・フラグ
をカウンターに加える(ステップ)。
このとき、もし、このカウンターが零でないのなら
(ステップ;N)、ステップの処理に戻り、カウンタ
ーが零であるなら(ステップ;Y)、描画データ加工部
37−3において、描画領域記憶部38に描画データを置く
(ステップ)。
そして、findフラグを1にセットする(ステップ
)。この後、ステップの処理に戻る。
このときfindフラグが1であるため(ステップ;
N)、ステップの処理に戻り、データがなくなるまで
(ステップ;Y)、処理を繰り返す。
この処理中に含まれている描画データ加工部37−3の
処理について説明する。
この描画データ加工部37−3では、実際に描画領域記
憶部38に描画データを置く処理を行う。この処理手順を
第26図に示す。
ドット単位の座標値をワード単位の値に変換する(第
26図ステップ)。
このとき描画される範囲が1ワード以内であるとき
(ステップ;Y)、始点用、終点用のマスク・データを
使用して、描画範囲が1ワードとなるデータを作成し、
このデータを描画領域に置く(ステップ)。
また、描画される範囲が1ワード以上であるとき(ス
テップ;N)、始点用のマスクデータを抽出し、このデ
ータを描画領域に置く(ステップ)。
そして、終点のワード数になるまで(ステップ;
N)、第4図に示すマスクデータの配列0番目のデータ
を描画領域に置いていき(ステップ)、終点のワード
数になると(ステップ;Y)、このとき、終点用のマス
クデータを抽出し、このデータを描画領域に置く(ステ
ップ)。
「発明の効果」 以上説明したように請求項1記載の発明によれば、閉
図形を構成する各線分について、それらの線分の変化す
る方向と線分を構成する座標点とを含む線分データを線
分データ登録手段に登録した後、これらの線分データを
順次比較し、両線分の方向が同一で一方の線分の端点の
値と他方の線分の端点の値が同一の場合、これらの値が
重複しないように一方の端点の値を変更し、この変更さ
れた線分データを用いて、座標軸と直交する方向に図形
を1ラインずつ走査して塗り潰すようにした。このた
め、複雑な形状の図形であっても塗り潰しを効率よく行
うことができるという効果がある。
また、請求項2記載の発明によれば、請求項1記載の
発明と同様の効果を得ることができる他、複数の閉図形
について一括して塗り潰しの処理を行うので、閉図形が
重複した複雑な図形の塗り潰しの処理を容易に行うこと
ができるという利点がある。
更に請求項3記載の発明では、請求項1あるいは請求
項2記載の発明と同様の効果を得ることができる他、最
初の線分と最後の線分の端点の値を処理するようにした
ので、閉図形の任意の部分の線分を最初の線分とするこ
とが可能になり、処理が容易になるという効果がある。
また請求項4記載の発明では、請求項1記載の発明と
同様の効果を得ることができる他、マスクデータを備
え、このマスクデータを用いて図形の塗り潰しを行うよ
うにしたので、図形の塗り潰しの処理を任意のパターン
を用いて行うことができるという利点がある。
【図面の簡単な説明】
第1図は本発明を別の観点で示した説明図、第2図〜第
26図は本発明の一実施例を説明するためのもので、この
うち第2図は図形処理装置の回路構成の概要を表わした
ブロック図、第3図は描画領域管理テーブルの内容を示
した説明図、第4図は開始点用の黒インクデータを示す
説明図、第5図は終止点用の黒インクデータを示す説明
図、第6図は開始点用の白インクデータを示す説明図、
第7図は終止点用の白インクデータを示す説明図、第8
図は灰色パターンデータの構成を示す説明図、第9図は
マスクデータの作成方法を示した説明図、第10図は線分
データを説明するためのもので、このうち同図Aは直線
のデータの平面図、同図Bはドット単位の座標値データ
の説明図、同図Cは線分データの説明図、同図Dは座標
値データの表示される様子を示す平面図、第11図は線分
データ管理テーブルの説明図、第12図は七角形の凹凸の
図形の制御を説明するための説明図、第13図は塗り残し
を防ぐための処理を示した説明図、第14図は座標値をず
らした後の七角形の凹凸の図形の塗り潰しの制御を説明
するための説明図、第15図は描画位置管理テーブルを示
した説明図、第16図および第17図は描画位置管理テーブ
ルのワインディング方向を示す情報の値の処理の様子を
示す説明図、第18図は描画領域記憶部への書き込みを示
す説明図、第19図はマスクデータに対応するデータの作
成方法を示す説明図、第20図は“す”の字にある曲線部
分の処理を示した説明図、第21図は輪郭線データ変換部
の動作を示した流れ図、第22図は輪郭線データ制御部の
動作を示した流れ図、第23図は描画処理部の動作を示し
た流れ図、第24図は走査線データ作成部の動作を示した
流れ図、第25図は描画領域判定部の動作を示した流れ
図、第26図は描画データ加工部の動作を示した流れ図、
第27図は従来における塗り潰し方法を示した説明図、第
28図は“す”という文字を輪郭線で表わした説明図、第
29図は“す”という文字の理想的な塗り潰しの状態を示
す説明図、第30図は1つの曲線の内部の塗り潰しを説明
するための説明図、第31図は塗り残しの生じる様子を示
した説明図である。 21……座標点変換手段、 22……接合位置座標点処理手段、 23……方向判別手段、24……塗り潰し手段、 25……接合位置座標点シフト手段、 26……マスクデータ作成手段、 32……輪郭線データ管理部、 33……灰色パターンデータ用マスク・データ作成部、 34……描画用マスクデータ管理部、 35……輪郭線データ変換部、 36……輪郭線データ制御部、 37……描画処理部、 37−1……走査線データ作成部、 37−2……描画領域判定部、 37−3……描画データ加工部、 41……描画領域管理テーブル、 45……描画領域、121……線分データ、 122……線分データ管理テーブル、 131〜136、141、142、221〜228……線分、 191〜194……マスクデータ、 201……始点データ、202……終点データ、 203……データ。

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】閉図形を構成する線分であって所定の座標
    軸の一方向にのみ変化する線分ごとに線分の変化する方
    向と線分を構成する座標点とを含む線分データを登録す
    る線分データ登録手段と、 この線分データ登録手段に登録された2つの線分データ
    を前記座標軸において順次比較し、両線分の方向が同一
    かつ一方の線分の端点の値と他方の線分の端点の値が同
    一の場合、前記一方の線分の端点の値を前記他方の線分
    の端点の値と重複しないように変更する端点変更手段
    と、 この端点変更手段により変更された線分データを用い、
    前記座標軸と直交する方向にこの図形を1ラインずつ走
    査して塗り潰す塗り潰し手段 とを具備することを特徴とする図形処理装置。
  2. 【請求項2】前記データ登録手段は複数の閉図形の線分
    データを登録するとともに、前記端点変更手段は各閉図
    形ごとに端点の値を変更するものであり、前記塗り潰し
    手段は複数の閉図形の線分データを用いて複数の閉図形
    の塗り潰しを一括して行うことを特徴とする請求項1記
    載の図形処理装置。
  3. 【請求項3】前記端点変更手段は、線分データの順次比
    較において最初に用いた線分と最後に用いた線分の方向
    が同一かつ最初の線分の端点の値が最後の線分の端点の
    値と同一の場合、一方の線分の端点の値を他方の線分の
    値と重複しないように変更することを特徴とする請求項
    1または請求項2記載の図形処理装置。
  4. 【請求項4】前記座標軸と直交する方向に図形の塗り潰
    し処理を行うためのマスクデータを備え、前記塗り潰し
    手段はこのマスクデータを用いて図形の塗り潰しを行う
    ことを特徴とする請求項1記載の図形処理装置。
JP1117332A 1989-05-12 1989-05-12 図形処理装置 Expired - Fee Related JP2861044B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1117332A JP2861044B2 (ja) 1989-05-12 1989-05-12 図形処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1117332A JP2861044B2 (ja) 1989-05-12 1989-05-12 図形処理装置

Publications (2)

Publication Number Publication Date
JPH02297681A JPH02297681A (ja) 1990-12-10
JP2861044B2 true JP2861044B2 (ja) 1999-02-24

Family

ID=14709112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1117332A Expired - Fee Related JP2861044B2 (ja) 1989-05-12 1989-05-12 図形処理装置

Country Status (1)

Country Link
JP (1) JP2861044B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6642964B2 (ja) * 2015-01-05 2020-02-12 キヤノン株式会社 情報処理装置、情報処理方法、プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6391788A (ja) * 1986-10-06 1988-04-22 Fujitsu Ltd 図形表示方式

Also Published As

Publication number Publication date
JPH02297681A (ja) 1990-12-10

Similar Documents

Publication Publication Date Title
US5262760A (en) Modifying a graphics display image
KR0167618B1 (ko) 문자 발생 장치 및 방법
JPS63280388A (ja) ラスタ・アウトプット・スキャナ上に埋められた輪郭を表示する方法
US4779081A (en) Graphics in display unit
JP2964841B2 (ja) データ変換装置
US5867172A (en) Thickened and thinned character generating device including elements for removing undesirably formed outline portions
KR0185245B1 (ko) 문자패턴 발생장치 및 방법
US5388166A (en) Image drawing apparatus
JP2861044B2 (ja) 図形処理装置
KR100212412B1 (ko) 문자패턴 생성장치
US6507344B2 (en) Figure processing apparatus, figure processing method, and storing medium
JP3146771B2 (ja) フォントラスタライズ装置およびその方法
KR100254659B1 (ko) 문자 생성 장치
CN1108589C (zh) 填充椭圆图形的方法
KR900004892B1 (ko) 도트 보간장치
JP3082467B2 (ja) アウトラインデータ処理装置
JP3156729B2 (ja) 描画装置
JP3099556B2 (ja) データ変換装置
KR900004949B1 (ko) 보간 도트패턴의 출력제어장치
JP2835056B2 (ja) 高品質文字パターン発生方式
JP3350325B2 (ja) キャラクタ出力装置
JP2771981B2 (ja) 高品質文字パターン発生方式
JP3536894B2 (ja) 図形処理装置
KR900004948B1 (ko) 하선ㆍ방선 생성장치
JP2854588B2 (ja) ラスタベクタ変換方法及び線図形入力装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees