JPH0245889A - 領域塗り潰し方法 - Google Patents
領域塗り潰し方法Info
- Publication number
- JPH0245889A JPH0245889A JP19595888A JP19595888A JPH0245889A JP H0245889 A JPH0245889 A JP H0245889A JP 19595888 A JP19595888 A JP 19595888A JP 19595888 A JP19595888 A JP 19595888A JP H0245889 A JPH0245889 A JP H0245889A
- Authority
- JP
- Japan
- Prior art keywords
- point
- straight line
- end point
- area
- coordinates
- 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
Links
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
この発明は、領域塗り潰し方法に関するものであり、例
えば、グラフィックデイスプレィやページプリンタ等に
所要の図形を出力しようとするときに、所望のイメージ
展開をさせるべき対象の文字フォントや図形について、
塗り潰しを必要とする閉領域を、基本のベクトルデータ
から塗り潰していくようにされた領域塗り潰し方法に関
するものである。
えば、グラフィックデイスプレィやページプリンタ等に
所要の図形を出力しようとするときに、所望のイメージ
展開をさせるべき対象の文字フォントや図形について、
塗り潰しを必要とする閉領域を、基本のベクトルデータ
から塗り潰していくようにされた領域塗り潰し方法に関
するものである。
[従来の技術]
第17図は、例えば、ジェイ、デイ−、フ才り−(J、
D、FOLEY)著の[相互コンピュータ・グラフィ・
ンクスの基礎(Fundamentals of In
teractiveCos+puter Graphi
cs)4((著作権−1982、アヂソン・ウニズリ出
版社(八ddison−Wesley Publish
ingCompany)、1984−7月改定版)の第
446頁に開示されているような、従来の領域塗り潰し
方法の説明図である。
D、FOLEY)著の[相互コンピュータ・グラフィ・
ンクスの基礎(Fundamentals of In
teractiveCos+puter Graphi
cs)4((著作権−1982、アヂソン・ウニズリ出
版社(八ddison−Wesley Publish
ingCompany)、1984−7月改定版)の第
446頁に開示されているような、従来の領域塗り潰し
方法の説明図である。
この従来の領域塗り潰し方法によれば、対象の閉領域を
示すデータを所定の整数座標上に展開し、次いで、当該
閉領域内のある1点を指定する。そして、前記ある1点
から閉領域外にはみ出さないようにしながら描画点を移
動させて、所望領域の塗り潰しをしていく。このとき、
閉領域内の全部の点が移動・描画の対象となるために、
ある所定の着目点の上下左右の情報を常に観察しながら
描画点の移動をさせていく。そして、何等かの特異点が
見出されたときには、これに対応する情報を、特別な記
憶手段としてのスタックに蓄積していく。
示すデータを所定の整数座標上に展開し、次いで、当該
閉領域内のある1点を指定する。そして、前記ある1点
から閉領域外にはみ出さないようにしながら描画点を移
動させて、所望領域の塗り潰しをしていく。このとき、
閉領域内の全部の点が移動・描画の対象となるために、
ある所定の着目点の上下左右の情報を常に観察しながら
描画点の移動をさせていく。そして、何等かの特異点が
見出されたときには、これに対応する情報を、特別な記
憶手段としてのスタックに蓄積していく。
そして、このスタック内の蓄積情報がなくなったときに
、ある対象の閉領域の塗り潰しが終了したものとされる
。
、ある対象の閉領域の塗り潰しが終了したものとされる
。
上記のような塗り潰しの際の描画手順を、より詳細に説
明する。まず、対象の閉領域内の任意の1点をスタート
点として指定する。所要の塗り潰し動作は、このスター
ト点から行われるものであるが、このときに上下左右の
点でのデータの黒(1)白(0)のいかんを適当に判定
する。描画動作を実行するときには、現在の点に対する
上下左右の各方向に優先順位を付して、所定の描画規則
に従った描画動作が実行される。
明する。まず、対象の閉領域内の任意の1点をスタート
点として指定する。所要の塗り潰し動作は、このスター
ト点から行われるものであるが、このときに上下左右の
点でのデータの黒(1)白(0)のいかんを適当に判定
する。描画動作を実行するときには、現在の点に対する
上下左右の各方向に優先順位を付して、所定の描画規則
に従った描画動作が実行される。
ここで第17図(a>を参照すると、スタート点” s
”から右側への描画が実行される。いま、描画を実行
する点が“1”まで移動してきたものとすると、その上
部におけるデータが黒(1)から白(0)に変化する。
”から右側への描画が実行される。いま、描画を実行
する点が“1”まで移動してきたものとすると、その上
部におけるデータが黒(1)から白(0)に変化する。
これが特異点として扱われて、対応の情報がスタック(
図示されない)に蓄積される。
図示されない)に蓄積される。
ここでの前記情報は、点゛1゛の上部には対象の閉領域
内に塗り潰しを要する部分が存在することを指示するも
のである。また、この点“1°゛の右側でのデータは黒
(1)であることから、対象の領域の境界であるものと
解釈されて、右側への描画の実行は終了する。
内に塗り潰しを要する部分が存在することを指示するも
のである。また、この点“1°゛の右側でのデータは黒
(1)であることから、対象の領域の境界であるものと
解釈されて、右側への描画の実行は終了する。
次いで、スタート点゛S°′から左側への描画の実行が
再開される。いま、描画を実行する点が“2′′まで移
動してきたものとすると、その上部におけるデータが黒
く1)から白(0)に変化する。これが特異点として扱
われて、対応の情報がスタックに蓄積される。同様にし
て、描画を実行する点が“3゛まで移動してきたものと
すると、ここでも、その上部におけるデータが黒(1)
から白(0)に変化する。これも特異点として汲われて
、対応の情報がスタックに蓄積される。そして、描画を
実行する点の左側のデータが黒(1)になったときには
、対象の領域の境界に到達したものと解釈されて、左側
への描画の実行は終了する。
再開される。いま、描画を実行する点が“2′′まで移
動してきたものとすると、その上部におけるデータが黒
く1)から白(0)に変化する。これが特異点として扱
われて、対応の情報がスタックに蓄積される。同様にし
て、描画を実行する点が“3゛まで移動してきたものと
すると、ここでも、その上部におけるデータが黒(1)
から白(0)に変化する。これも特異点として汲われて
、対応の情報がスタックに蓄積される。そして、描画を
実行する点の左側のデータが黒(1)になったときには
、対象の領域の境界に到達したものと解釈されて、左側
への描画の実行は終了する。
次に、前記のように完成したスタート点を含む横1ライ
ンの下側に関する情報がスタックに蓄積される。ここで
は、点“4゛に関する情報が蓄積されることになる。即
ち、前記の情報は、この点゛4゛°から左側をみて、対
象の閉領域内に塗り潰しを要する部分が存在することを
指示するものである。かくして、スタート点°を含む右
境界から左境界までの横1ラインの描画の実行が終了し
た時点で、点“1”ないし4°゛の情報がスタックに蓄
積されたことになる。即ち、ある所定の1ラインに対し
て、その上部での閉領域の空白部分および下部での当該
閉領域の空白部分が順次に指定されたことになる。
ンの下側に関する情報がスタックに蓄積される。ここで
は、点“4゛に関する情報が蓄積されることになる。即
ち、前記の情報は、この点゛4゛°から左側をみて、対
象の閉領域内に塗り潰しを要する部分が存在することを
指示するものである。かくして、スタート点°を含む右
境界から左境界までの横1ラインの描画の実行が終了し
た時点で、点“1”ないし4°゛の情報がスタックに蓄
積されたことになる。即ち、ある所定の1ラインに対し
て、その上部での閉領域の空白部分および下部での当該
閉領域の空白部分が順次に指定されたことになる。
ここで、スタックに蓄積された情報から所要のものを取
り出し、その内容に基づいて、次に続く1ラインの描画
実行のためのスタート点を決定する。いま、第17図(
b)を参照すると、前記第17図(a)における点“4
°゛に対応する情報の内容に基づき、先の1ラインの直
下に新規な1ラインの描画動作が施されたものである。
り出し、その内容に基づいて、次に続く1ラインの描画
実行のためのスタート点を決定する。いま、第17図(
b)を参照すると、前記第17図(a)における点“4
°゛に対応する情報の内容に基づき、先の1ラインの直
下に新規な1ラインの描画動作が施されたものである。
この第17図(b)においては、点“4″および“5”
に関する情報が、改めてスタックに蓄積されることにな
る。
に関する情報が、改めてスタックに蓄積されることにな
る。
次に、第17図(C)は、前記第17図(b)における
点“5°′に対応する情報の内容に基づき、第3ライン
の左側部分の描画動作が施されたものである。これに続
けて第17図(d)、(e)、(f)の順で部分的な描
画動作が実行されて、第17図(a)における横1ライ
ンより下部の全領域が塗り潰されたことになる。
点“5°′に対応する情報の内容に基づき、第3ライン
の左側部分の描画動作が施されたものである。これに続
けて第17図(d)、(e)、(f)の順で部分的な描
画動作が実行されて、第17図(a)における横1ライ
ンより下部の全領域が塗り潰されたことになる。
この段階において、スタックに残留している情報は、点
“1゛、“2′′および“3′′番こ対応するものであ
る。そして、これらの情報を適当に使用することで、閉
領域の上部についての塗り潰し動作が実行されて、対象
とする閉領域全体の塗り潰しが完了することになる。こ
のときには、スタックに蓄積された情報は完全になくな
っている。
“1゛、“2′′および“3′′番こ対応するものであ
る。そして、これらの情報を適当に使用することで、閉
領域の上部についての塗り潰し動作が実行されて、対象
とする閉領域全体の塗り潰しが完了することになる。こ
のときには、スタックに蓄積された情報は完全になくな
っている。
[発明が解決しようとする課題]
従来の領域塗り潰し方法は以上のようになされるもので
あり、 ■二対像の閉領域内にある所定の1点を規定する必要が
あり、これを省略するためには、この内部点に関するデ
ータを対象の閉領域図形データとは別に用意しておく必
要があること: ■:ある1ラインについて1点毎の描画動作を実行する
ときに、それぞれの点に対する上下左右の点の状態を検
索して、所要の情報をスタックに蓄積させておく必要が
あること; ■;前記の描画動作の実行のためのアルゴリズムが複雑
になるとともに、これを格納させておくための大容量の
メモリが必要であること;■:上記のような動作のため
に多くの時間を必要とし、グラフィックデイスプレィ上
での表示やレーザプリンタによる印字のために多くを割
くことができないこと; というような問題点があった。
あり、 ■二対像の閉領域内にある所定の1点を規定する必要が
あり、これを省略するためには、この内部点に関するデ
ータを対象の閉領域図形データとは別に用意しておく必
要があること: ■:ある1ラインについて1点毎の描画動作を実行する
ときに、それぞれの点に対する上下左右の点の状態を検
索して、所要の情報をスタックに蓄積させておく必要が
あること; ■;前記の描画動作の実行のためのアルゴリズムが複雑
になるとともに、これを格納させておくための大容量の
メモリが必要であること;■:上記のような動作のため
に多くの時間を必要とし、グラフィックデイスプレィ上
での表示やレーザプリンタによる印字のために多くを割
くことができないこと; というような問題点があった。
この発明は上記のような問題点を解決するためになされ
たもので、折れ線のような所定の線分で囲まれた閉領域
を形成する図形データの展開や領域塗り潰しのための描
画アルゴリズムを簡単化して、高速かつ的確な塗り潰し
処理が可能にされた領域塗り潰し方法を得ることを目的
とする。
たもので、折れ線のような所定の線分で囲まれた閉領域
を形成する図形データの展開や領域塗り潰しのための描
画アルゴリズムを簡単化して、高速かつ的確な塗り潰し
処理が可能にされた領域塗り潰し方法を得ることを目的
とする。
[課題を解決するための手段]
この発明に係る領域塗り潰し方法は、対象の図形として
の閉領域の輪郭を構成する所定の輪郭点から、前記閉領
域を表わす座標系の中の1個の座標軸と平行に、前記閉
領域の輪郭に含まれる画素の中の特定のものについて反
転処理を施しながら走査していくことで前記閉領域の塗
り潰しを行うものである。
の閉領域の輪郭を構成する所定の輪郭点から、前記閉領
域を表わす座標系の中の1個の座標軸と平行に、前記閉
領域の輪郭に含まれる画素の中の特定のものについて反
転処理を施しながら走査していくことで前記閉領域の塗
り潰しを行うものである。
[作用]
この発明においては、対象の閉領域の輪郭設定のための
輪郭点が、ある所定の座標軸(例えばY軸)の座標値毎
に1個だけ選択されて、前記閉領域に対する塗り潰し処
理が、前記所定の座標値毎に、他の座標軸(例えばX軸
)に対して平行に、前記輪郭点から1回だけ行われるよ
うにされる。
輪郭点が、ある所定の座標軸(例えばY軸)の座標値毎
に1個だけ選択されて、前記閉領域に対する塗り潰し処
理が、前記所定の座標値毎に、他の座標軸(例えばX軸
)に対して平行に、前記輪郭点から1回だけ行われるよ
うにされる。
[実施例]
以下、この発明の一実施例を図について説明する。第1
図は、この発明の一実施例が適用されるLEDプリンタ
のデータ処理部を示すブロック図である。この第1図に
おいて、文書や図形のような対象のデータは、入力I/
F(1)を介してCPU(2)に加えられる。このCP
U(2)は描画LSI(3)とともにデータ制御部を構
成しており、入力されたデータの解釈がなされて、描画
LSI(3)で使用される描画用コマンドに変換される
。
図は、この発明の一実施例が適用されるLEDプリンタ
のデータ処理部を示すブロック図である。この第1図に
おいて、文書や図形のような対象のデータは、入力I/
F(1)を介してCPU(2)に加えられる。このCP
U(2)は描画LSI(3)とともにデータ制御部を構
成しており、入力されたデータの解釈がなされて、描画
LSI(3)で使用される描画用コマンドに変換される
。
このように変換されたコマンドに基づき対応の展開処理
が施されて、単位量毎に(例えば、所定の1ペ一ジ分の
データ毎に)次段のフレームメモリ(4)に格納される
。このフレームメモリ(4〉は、1画素が1ビツトに対
応する平面座標で表されているものである。そして、こ
のように展開されたデータは、出力指令が出される毎に
、プリンタI /F (5)を介して、出力手段として
の適当なプリンタ(図示されない)に供給される。
が施されて、単位量毎に(例えば、所定の1ペ一ジ分の
データ毎に)次段のフレームメモリ(4)に格納される
。このフレームメモリ(4〉は、1画素が1ビツトに対
応する平面座標で表されているものである。そして、こ
のように展開されたデータは、出力指令が出される毎に
、プリンタI /F (5)を介して、出力手段として
の適当なプリンタ(図示されない)に供給される。
第2図は、この発明の実施例方法の説明のための閉領域
の頂点を示す座標データの例示図である。
の頂点を示す座標データの例示図である。
また、第3図は、前記頂点の座標データに基づいて作成
された閉領域の例示図であり、ここに、各頂点の並べか
たは、前記閉領域の内部を常に右側に見るようにされて
いる。即ち、この第3図で例示されている前記閉領域は
、3本の線分で囲まれた形状のものである。
された閉領域の例示図であり、ここに、各頂点の並べか
たは、前記閉領域の内部を常に右側に見るようにされて
いる。即ち、この第3図で例示されている前記閉領域は
、3本の線分で囲まれた形状のものである。
このようにして表示される平面座標系の全部の座標点に
対応して、黒(1)または白(0)のいずれかの値が付
与されている。例えば、ある閉領域の全部に白(1)が
付与されているときには、当該閉領域は全く塗り潰され
てはいないことを示すことになる。
対応して、黒(1)または白(0)のいずれかの値が付
与されている。例えば、ある閉領域の全部に白(1)が
付与されているときには、当該閉領域は全く塗り潰され
てはいないことを示すことになる。
第4図は、塗り潰し動作が実行されたときの例示図であ
って、前記第2図および第3図で示された閉領域に対す
る展開処理がなされた後の状態を示すものである。
って、前記第2図および第3図で示された閉領域に対す
る展開処理がなされた後の状態を示すものである。
ここで、平面座標系の中のX軸に沿った描画手順につい
て触れておく。
て触れておく。
ステップ1:先頭の頂点を始点とし、次に続く頂点を終
点とする。
点とする。
ステップ2:始点と終点とを結ぶ直線を生成させ、始点
の側から1点の画素を発生させる。
の側から1点の画素を発生させる。
ステップ3:求めた1点からxl、。まで、X軸に平行
な直線を反転モードで描く。なお、X m a wは図
形データの全部の頂点の中で最大のX座標値を表わすも
のである。
な直線を反転モードで描く。なお、X m a wは図
形データの全部の頂点の中で最大のX座標値を表わすも
のである。
ステップ4:終点までの発生がなければ、ステップ2に
戻って、対応の処理をする。
戻って、対応の処理をする。
ステップ5:終点までの描画動作が終了したときには、
現在の終点を始点に変更し、更に次に続く頂点を終点と
して、ステップ2〜4を実行する。
現在の終点を始点に変更し、更に次に続く頂点を終点と
して、ステップ2〜4を実行する。
ステップ6:最後の頂点が始点にされたときには、前記
先頭の頂点を終点として、ステップ2〜4を実行して、
全部の動作を終了する。
先頭の頂点を終点として、ステップ2〜4を実行して、
全部の動作を終了する。
この発明の実施例方法によれば、ある2個の頂点を結ぶ
直線を発生させた点からX m s wまでの、塗り潰
しのための直線の描画動作が、次のようにしてなされる
。
直線を発生させた点からX m s wまでの、塗り潰
しのための直線の描画動作が、次のようにしてなされる
。
(A 2 の を ぶ のいま、
整数座標平面のようなデジタル図形が対象であるとする
と、その上での直線は次のように表される。即ち、ある
1個の座標(xs、ys)から別異の1個の座標(X
s、3’ @)までの直線を表すときには、l y a
y I]l / l x a x s l <
1であるものとすると、前記の直線はl x a x
sl + 1個の点列から構成されることになる。こ
こでの点は、X軸方向には、その始点から終点までの個
々のX座標値毎に1個ずつ置かれることになり、同一の
X座標値を有する点は存在しない。一方、Y軸方向につ
いてみると、l y −y s l + 1個のY座標
値に対してlxa xsl + I IIIの点があ
ることから、x a x s l l y a
y g l gは、y8からy、までのいずれかと重な
ることになる。
整数座標平面のようなデジタル図形が対象であるとする
と、その上での直線は次のように表される。即ち、ある
1個の座標(xs、ys)から別異の1個の座標(X
s、3’ @)までの直線を表すときには、l y a
y I]l / l x a x s l <
1であるものとすると、前記の直線はl x a x
sl + 1個の点列から構成されることになる。こ
こでの点は、X軸方向には、その始点から終点までの個
々のX座標値毎に1個ずつ置かれることになり、同一の
X座標値を有する点は存在しない。一方、Y軸方向につ
いてみると、l y −y s l + 1個のY座標
値に対してlxa xsl + I IIIの点があ
ることから、x a x s l l y a
y g l gは、y8からy、までのいずれかと重な
ることになる。
第512Iは、このような場合の例示図である。この第
5図において、(x s、 y a) = (0,0)
、(X、。
5図において、(x s、 y a) = (0,0)
、(X、。
y 、)= (6,2)なる直線は、対象の閉領域のア
ウトラインの一部を表している。そして、前記の直線は
、下記の7個の点列で構成されている。
ウトラインの一部を表している。そして、前記の直線は
、下記の7個の点列で構成されている。
y=oのとき:x=0.1;
、y=1のとき: x=2.3,4 ;、y=2のとき
:x=5,6; いま、これらの各点に対する描画手順は次のように実行
されることになる。
:x=5,6; いま、これらの各点に対する描画手順は次のように実行
されることになる。
=0のとき:
第1回目の手順で、座標(0,0)から反転処理が実行
されて、前記座標(0,0)を含む右側全部が、−旦反
転して・にされる; 第2回目の手順で、座標(0,1)から反転処理が実行
されて、前記座標(Oll)を含む右側全部が、再度反
転して○にされる。
されて、前記座標(0,0)を含む右側全部が、−旦反
転して・にされる; 第2回目の手順で、座標(0,1)から反転処理が実行
されて、前記座標(Oll)を含む右側全部が、再度反
転して○にされる。
側):
第1回目の手順で、座標(2,1)から反転処理が実行
されて、前記座標(2,1)を含む右側全部が、−旦反
転して・にされる・ 第2回目の手順で、座標(3,1)から反転処理が実行
されて、前記座標(3,1)を含む右側全部が、再度反
転して○にされる。
されて、前記座標(2,1)を含む右側全部が、−旦反
転して・にされる・ 第2回目の手順で、座標(3,1)から反転処理が実行
されて、前記座標(3,1)を含む右側全部が、再度反
転して○にされる。
第3回目の手順で、座標(4,1)から反転処理が実行
されて、前記座標(4,1)を含む右側全部が、更に反
転して・にされる。
されて、前記座標(4,1)を含む右側全部が、更に反
転して・にされる。
=2のとき:
第1回目の手順で、座標(5,2)から反転処理が実行
されて、前記座標(5,2)を含む右側全部が、−旦反
転して・にされる; 第2回目の手順で、座標(6,2)から反転処理が実行
されて、前記座標(6,2)を含む右側全部が、再度反
転して○にされる。
されて、前記座標(5,2)を含む右側全部が、−旦反
転して・にされる; 第2回目の手順で、座標(6,2)から反転処理が実行
されて、前記座標(6,2)を含む右側全部が、再度反
転して○にされる。
このような反転処理が実行された結果が、第6図に示さ
れている。この第6図から理解されるように、ある所定
の閉領域に対するアウトラインを規定するために、同−
Y座標内に2個以上の点が選択されたときには、1ライ
ン毎に実行される反転処理の回数に依存して、所望の塗
り清しが行われないことがある。
れている。この第6図から理解されるように、ある所定
の閉領域に対するアウトラインを規定するために、同−
Y座標内に2個以上の点が選択されたときには、1ライ
ン毎に実行される反転処理の回数に依存して、所望の塗
り清しが行われないことがある。
ところて、この発明の実施例方法を直線の描画に適用す
るときには、理論的には、第7図に例示されているよう
な描画動作の実行が必要とされる。
るときには、理論的には、第7図に例示されているよう
な描画動作の実行が必要とされる。
デジタル式図形上でのこの描画動作においては、Y座標
の始点から終点に至る個数の点を発生させるだけでよく
、対象の直線を構成する全ての点を求める必要はない。
の始点から終点に至る個数の点を発生させるだけでよく
、対象の直線を構成する全ての点を求める必要はない。
ここで第5図に戻ってみると、ここでは、座標(0,0
)、(2,1)および(5,2)の3点だけを選択して
、所望のアウトラインとすれば良いことになる。
)、(2,1)および(5,2)の3点だけを選択して
、所望のアウトラインとすれば良いことになる。
また、l y −y gl / l x −x s l
≧1であるときには、Y方向での直線の点は1点ずつ置
かれることになる。例えば、(xs+ ys>=(0、
O)であり、そして、(xa+ y−)=(2,6)で
あるときには、第8図に例示されているような直線が生
成され、また、これについての描画手順を各点毎に1口
実行するだけで、第9図に例示されているような塗り潰
し図形が生成される。
≧1であるときには、Y方向での直線の点は1点ずつ置
かれることになる。例えば、(xs+ ys>=(0、
O)であり、そして、(xa+ y−)=(2,6)で
あるときには、第8図に例示されているような直線が生
成され、また、これについての描画手順を各点毎に1口
実行するだけで、第9図に例示されているような塗り潰
し図形が生成される。
従って、このやり方においては、ある2個の頂点を結ぶ
直線を構成するための点は、同一のY座標上に2個以上
存在してはならないことになる。
直線を構成するための点は、同一のY座標上に2個以上
存在してはならないことになる。
B 2 の育 の ぎ
関連のある頂点を逐次直線で結びながら描画動作をして
いくときには、ある1個の直線の終点は、次に続く直線
の始点と同一の座標上にある。
いくときには、ある1個の直線の終点は、次に続く直線
の始点と同一の座標上にある。
例えば、第10図に示されているように、2個の直線間
の小角θ(90°≦θく180°)のときに描画手順の
実行をしたものとすると、前記のような継ぎ目の点では
2度の描画手順の実行がなされることになる。このため
に、第11図に示されているように、当該継ぎ目の点で
の塗り潰しができなくなる。これに対して、第12図に
示されるように、2個の直線間の小角θ(0°〈θ<
90 ”)のときに描画手順の実行をしたものとすると
、このときには、第13図に示されるように、塗り潰し
ができることになる。
の小角θ(90°≦θく180°)のときに描画手順の
実行をしたものとすると、前記のような継ぎ目の点では
2度の描画手順の実行がなされることになる。このため
に、第11図に示されているように、当該継ぎ目の点で
の塗り潰しができなくなる。これに対して、第12図に
示されるように、2個の直線間の小角θ(0°〈θ<
90 ”)のときに描画手順の実行をしたものとすると
、このときには、第13図に示されるように、塗り潰し
ができることになる。
なお、これらの現象は、ある直線の方向とその直後の直
線の方向とによって規定されるものである。また、描画
動作を実行しようとする直線の始点を描画対象に含める
か否かは、描画しようとする直線の方向とその直前の直
線の方向とによって規定されるものである。
線の方向とによって規定されるものである。また、描画
動作を実行しようとする直線の始点を描画対象に含める
か否かは、描画しようとする直線の方向とその直前の直
線の方向とによって規定されるものである。
この発明の実施例方法をデジタル図形の塗り潰しのため
に適用するするときには、上記されたような事情に基づ
いて、第14図に示されているように、対象の直線をそ
の方向に応じて16種類に分けて各直線の発生点の変更
がなされている。また、各頂点に間する所要の情報、即
ち、ある対象の直線の始点ならびに終点を描画の対象に
加えるか否かの情報を適宜に取り出すことができるよう
にされている。第15図は、上記16種類の方向毎に描
画の有無を説明する例示図である。この第15図におい
て、X印は描画の有無を後述の第1表で規定するもので
ある。O印は描画の対象ではないことを規定するもので
ある。また、・印は描画の対象であることを規定するも
のである。第16図には、前記各種の直線について、描
画動作の上での条件が与えられた表口が示されている。
に適用するするときには、上記されたような事情に基づ
いて、第14図に示されているように、対象の直線をそ
の方向に応じて16種類に分けて各直線の発生点の変更
がなされている。また、各頂点に間する所要の情報、即
ち、ある対象の直線の始点ならびに終点を描画の対象に
加えるか否かの情報を適宜に取り出すことができるよう
にされている。第15図は、上記16種類の方向毎に描
画の有無を説明する例示図である。この第15図におい
て、X印は描画の有無を後述の第1表で規定するもので
ある。O印は描画の対象ではないことを規定するもので
ある。また、・印は描画の対象であることを規定するも
のである。第16図には、前記各種の直線について、描
画動作の上での条件が与えられた表口が示されている。
その中の第16図(A)である第1表、および、第16
図(B)である第2表には、始点の描画をするか否かの
情報が示されている。
図(B)である第2表には、始点の描画をするか否かの
情報が示されている。
まず、第1表についてみると、その縦軸には直前の直線
の方向が示されており、また、その横軸には描画動作の
対象としての直線の方向が示されている。この第1表に
おいて、 0:始点のY座標と同一の点はいずれも描画をしない; 1:始点のY座標と同一の点の中で、始点および当該始
点から最も遠隔の点は描画をする;2.3.4:始点は
いずれも描画をする。
の方向が示されており、また、その横軸には描画動作の
対象としての直線の方向が示されている。この第1表に
おいて、 0:始点のY座標と同一の点はいずれも描画をしない; 1:始点のY座標と同一の点の中で、始点および当該始
点から最も遠隔の点は描画をする;2.3.4:始点は
いずれも描画をする。
次に、第2表についてみると、その縦軸には最初の直線
の方向が示されており、また、その横軸にはM後の直線
の方向が示されている。この第2表においては、対象の
図形を閉じるための最後の点について、描画する(1)
が描画しない(0)がを指示する情報が示されている。
の方向が示されており、また、その横軸にはM後の直線
の方向が示されている。この第2表においては、対象の
図形を閉じるための最後の点について、描画する(1)
が描画しない(0)がを指示する情報が示されている。
なお、上記実施例では描画LSIが使用されて、フレー
ムメモリへの展開のために反転描画がなされた場合につ
いての説明がなされたけれども、描画LSIを使用する
ことなく、CPUによる全制御の下に描画動作を実行す
るようにしても良い。
ムメモリへの展開のために反転描画がなされた場合につ
いての説明がなされたけれども、描画LSIを使用する
ことなく、CPUによる全制御の下に描画動作を実行す
るようにしても良い。
また、上記実施例では対象の図形のアウトラインを表す
直線を発生させる場合についての説明がなされたけれど
も、そのためのアルゴリズムが比較的簡単なことから、
当該ソフトウェアを適当にハードウェア化することも可
能であって、このようにすることで、より高速な描画動
作を実現することができる。
直線を発生させる場合についての説明がなされたけれど
も、そのためのアルゴリズムが比較的簡単なことから、
当該ソフトウェアを適当にハードウェア化することも可
能であって、このようにすることで、より高速な描画動
作を実現することができる。
また、前記第1表および第2表における情報については
、ある直前の直線における終点の描画動牛の有無に応じ
て変化するものであるから、このような条件に合致する
ものでありさえすれば、これらの第1表および第2表に
例示されている情報に限定される必要はない。
、ある直前の直線における終点の描画動牛の有無に応じ
て変化するものであるから、このような条件に合致する
ものでありさえすれば、これらの第1表および第2表に
例示されている情報に限定される必要はない。
また、上記実施例では、描画点と非描画点との区別を2
値化したデータ0.1で表わすものとして説明されたけ
れども、これに限らず、例えば、中間的な濃淡のある点
に対しても、適当な多段階の設定をしておいて、描画対
象の図形データの値に応じた段階での描画動作の実行を
することができる。
値化したデータ0.1で表わすものとして説明されたけ
れども、これに限らず、例えば、中間的な濃淡のある点
に対しても、適当な多段階の設定をしておいて、描画対
象の図形データの値に応じた段階での描画動作の実行を
することができる。
更に、上記実施例では、2次元平面上での場合について
説明されたけれども、これに限らず、例えば対象の図形
データがある平面上にあるときには、3次元空間での適
用も可能である。
説明されたけれども、これに限らず、例えば対象の図形
データがある平面上にあるときには、3次元空間での適
用も可能である。
また、上記実施例では、折れ線による座標表示に基づく
図形の塗り潰しの場合について説明されたけれども、こ
れに限らず、いわゆるスプライン曲線に基づく図形であ
っても、スプライン関数に従って得られる点を適当な間
隔をもって配置し、これらについて直線近似をさせるこ
とで、はぼ同様な効果が奏せられる。
図形の塗り潰しの場合について説明されたけれども、こ
れに限らず、いわゆるスプライン曲線に基づく図形であ
っても、スプライン関数に従って得られる点を適当な間
隔をもって配置し、これらについて直線近似をさせるこ
とで、はぼ同様な効果が奏せられる。
[発明の効果]
以上説明されたように、この発明に係る領域塗り潰し方
法は、対象の図形としての閉領域の輪郭を構成する所定
の輪郭点から、前記閉領域を表わす座標系の中の1個の
座標軸と平行に、前記閉領域の輪郭に含まれる画素の中
の特定のものについて反転処理を施しながら走査してい
くことで前記閉領域の塗り潰しを行うものであることか
ら、図形データを発生させながら、反転モードにより1
ラインずつ描画動作を実行して所要の塗り潰しをするよ
うにされているために、描画動作が高速で行われるとと
もに、スタックのような特別な記憶手段を必要とするこ
とがなく、また、描画動牛を実行するためのアルゴリズ
ムが簡単であることから、そのための実行プログラムを
短くすることができるという効果が奏せられるものであ
る。
法は、対象の図形としての閉領域の輪郭を構成する所定
の輪郭点から、前記閉領域を表わす座標系の中の1個の
座標軸と平行に、前記閉領域の輪郭に含まれる画素の中
の特定のものについて反転処理を施しながら走査してい
くことで前記閉領域の塗り潰しを行うものであることか
ら、図形データを発生させながら、反転モードにより1
ラインずつ描画動作を実行して所要の塗り潰しをするよ
うにされているために、描画動作が高速で行われるとと
もに、スタックのような特別な記憶手段を必要とするこ
とがなく、また、描画動牛を実行するためのアルゴリズ
ムが簡単であることから、そのための実行プログラムを
短くすることができるという効果が奏せられるものであ
る。
第1図は、この発明の一実施例が適用されるプリンタの
データ処理部を示すブロック図、第2図ないし第13図
は、この発明の一実施例の動作を説明するための例示図
、第14図は、その方向に応じて16種類に分けた対象
の直線毎の発生点の変更例示図、第15図は、16種類
の方向毎に描画の有無を説明する例示図、第16図は、
前記各種の直線について、描画動作の上での条件が与え
られた表口、第17図は、従来の領域塗り潰し方法の説
明図である。 (1)は入力I/F、(2)はCPU、(3)は描画L
SI14)はフレームメモリ、(5)はプリンタ尾1図 尾2図 亮3図 昂7図 y W−,5図 ■ 箔8図 悠9図 W16図 障礎Mどにyう〉X 7’f、1o図 扇11図 、り12図 萬13図 、¥、15図 方向4 γ句5 オ百6 方向7 ・ ・ ・ ・ す勾8 方向9 方向10 オ句11 オ菌12 オ(至)13 方向14 オ句15 ・ × (C1) (C) (e) (b) (d) (f)
データ処理部を示すブロック図、第2図ないし第13図
は、この発明の一実施例の動作を説明するための例示図
、第14図は、その方向に応じて16種類に分けた対象
の直線毎の発生点の変更例示図、第15図は、16種類
の方向毎に描画の有無を説明する例示図、第16図は、
前記各種の直線について、描画動作の上での条件が与え
られた表口、第17図は、従来の領域塗り潰し方法の説
明図である。 (1)は入力I/F、(2)はCPU、(3)は描画L
SI14)はフレームメモリ、(5)はプリンタ尾1図 尾2図 亮3図 昂7図 y W−,5図 ■ 箔8図 悠9図 W16図 障礎Mどにyう〉X 7’f、1o図 扇11図 、り12図 萬13図 、¥、15図 方向4 γ句5 オ百6 方向7 ・ ・ ・ ・ す勾8 方向9 方向10 オ句11 オ菌12 オ(至)13 方向14 オ句15 ・ × (C1) (C) (e) (b) (d) (f)
Claims (1)
- (1)対象の図形としての閉領域の輪郭を構成する所定
の輪郭点から、前記閉領域を表わす座標系の中の1個の
座標軸と平行に、前記閉領域の輪郭に含まれる画素の中
の特定のものについて反転処理を施しながら走査してい
くことで、前記閉領域の塗り潰しを行うことを特徴とす
る領域塗り潰し方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19595888A JPH0245889A (ja) | 1988-08-08 | 1988-08-08 | 領域塗り潰し方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19595888A JPH0245889A (ja) | 1988-08-08 | 1988-08-08 | 領域塗り潰し方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0245889A true JPH0245889A (ja) | 1990-02-15 |
Family
ID=16349810
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP19595888A Pending JPH0245889A (ja) | 1988-08-08 | 1988-08-08 | 領域塗り潰し方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0245889A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5579410A (en) * | 1992-10-09 | 1996-11-26 | Mitsubishi Electric Semiconductor Software Corporation | Region filling circuit and method of filling a region |
-
1988
- 1988-08-08 JP JP19595888A patent/JPH0245889A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5579410A (en) * | 1992-10-09 | 1996-11-26 | Mitsubishi Electric Semiconductor Software Corporation | Region filling circuit and method of filling a region |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4975976A (en) | Image transformation method and device | |
| EP1031946B1 (en) | Recording medium,Image processing method and unit with integrated shaping model data | |
| US4972330A (en) | Clipping process and processor | |
| WO1990009018A1 (fr) | Appareil de traitement d'images | |
| JPH06222899A (ja) | マルチウィンドウ表示方式 | |
| JPH09259290A (ja) | 描画方法 | |
| JPH0245889A (ja) | 領域塗り潰し方法 | |
| JPH09231352A (ja) | ピクセル画像マッピング方法 | |
| JP3872056B2 (ja) | 描画方法 | |
| JP3129717B2 (ja) | 画像処理装置および画像処理方法 | |
| JP2776793B2 (ja) | 画像表示方法およびその表示装置 | |
| JP3132220B2 (ja) | 3次元モデルの形状作成方法 | |
| JP2610825B2 (ja) | 図形処理装置 | |
| JP2002056395A (ja) | 図形描画装置 | |
| JP2886702B2 (ja) | アウトラインフォント処理装置 | |
| JP2613653B2 (ja) | 画像処理装置 | |
| JP3089906B2 (ja) | 描画装置 | |
| JP3338484B2 (ja) | アウトラインフォント変形装置 | |
| JP2782904B2 (ja) | 多角形塗りつぶし方式 | |
| JPH1115994A (ja) | 曲面作成方法 | |
| JPH0350686A (ja) | 図形処理方式 | |
| JPH10143676A (ja) | 画像処理装置、画像処理方法、および記録媒体 | |
| JP3043234B2 (ja) | 図形処理装置及び方法 | |
| JPH08138040A (ja) | 画像描画方法及び画像描画装置 | |
| JP2984336B2 (ja) | 図形処理方法 |