JPH0319991B2 - - Google Patents
Info
- Publication number
- JPH0319991B2 JPH0319991B2 JP59099482A JP9948284A JPH0319991B2 JP H0319991 B2 JPH0319991 B2 JP H0319991B2 JP 59099482 A JP59099482 A JP 59099482A JP 9948284 A JP9948284 A JP 9948284A JP H0319991 B2 JPH0319991 B2 JP H0319991B2
- Authority
- JP
- Japan
- Prior art keywords
- point
- boundary
- closed curve
- value
- filling
- 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
Links
- 238000000034 method Methods 0.000 claims description 42
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 3
- 206010064127 Solar lentigo Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Digital Computer Display Output (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の詳細な説明】
<産業上の利用分野>
本発明は、画像の輪郭線を表わす閉曲線データ
が表示メモリに書込まれたラスタスキヤン型表示
装置において、前記閉曲線領域内の塗りつぶしを
簡単なハードウエア構成で効率良く行うことが出
来る塗りつぶし方式に関する。
が表示メモリに書込まれたラスタスキヤン型表示
装置において、前記閉曲線領域内の塗りつぶしを
簡単なハードウエア構成で効率良く行うことが出
来る塗りつぶし方式に関する。
<従来技術>
ラスタスキヤン型表示装置において、例えば、
第1図で示すような、境界を0で表わされた閉曲
線の領域内にSで表わされる塗りつぶし要求が与
えられた場合、これを開始点として前記閉曲線領
域内の点を第2図の●で示すように塗りつぶされ
る。
第1図で示すような、境界を0で表わされた閉曲
線の領域内にSで表わされる塗りつぶし要求が与
えられた場合、これを開始点として前記閉曲線領
域内の点を第2図の●で示すように塗りつぶされ
る。
この塗りつぶし方式として、例えば、1982年度
にAddison−Wesley Pub.Co.より出版された、J.
D.Foley,A.D.Dam共著“Fudamentals of
Interactive Comput−er Graphics”P.448〜451
に記載されているような方式が知られている。
にAddison−Wesley Pub.Co.より出版された、J.
D.Foley,A.D.Dam共著“Fudamentals of
Interactive Comput−er Graphics”P.448〜451
に記載されているような方式が知られている。
この文献に示されている第1の方式は、閉曲線
によつて囲まれた領域内の任意の点に塗りつぶし
要求が与えられた場合、要求された画素を中心に
これに4方(左、右、上、下隣り)、或は8方
(左、右、上、下、斜め隣り)より隣接する画素
を一定のルールに従つてチエツクし、塗りつぶす
べき画素を順次特定していくものである。
によつて囲まれた領域内の任意の点に塗りつぶし
要求が与えられた場合、要求された画素を中心に
これに4方(左、右、上、下隣り)、或は8方
(左、右、上、下、斜め隣り)より隣接する画素
を一定のルールに従つてチエツクし、塗りつぶす
べき画素を順次特定していくものである。
第3図は、このような方式によつて塗りつぶし
が行われて行く状態をす説明図である。0で表わ
される閉曲線の領域内にSで表わされる塗りつぶ
し要求が与えられた場合、S点を開始点として、
回帰的定義に従つた処理が繰り返し行われ、塗り
つぶすべき画素が順次特定されて行く。本具体例
の場合、開始点Sより下側に1,2と移動し、下
側の境界点に当つて左方に折れ、上側に3,4…
…7と折り返し、上側の境界点に当つて左方に折
れ、更に、下側に8,9,A,B……というよう
に、一定の順序で塗りつぶしが行われる。
が行われて行く状態をす説明図である。0で表わ
される閉曲線の領域内にSで表わされる塗りつぶ
し要求が与えられた場合、S点を開始点として、
回帰的定義に従つた処理が繰り返し行われ、塗り
つぶすべき画素が順次特定されて行く。本具体例
の場合、開始点Sより下側に1,2と移動し、下
側の境界点に当つて左方に折れ、上側に3,4…
…7と折り返し、上側の境界点に当つて左方に折
れ、更に、下側に8,9,A,B……というよう
に、一定の順序で塗りつぶしが行われる。
この文献に示された第2の方式は、前記閉曲線
で囲まれた領域内に塗りつぶし要求が与えられた
場合、これに隣接する水平方向の画素を順次塗り
つぶして行く方法である。この場合、塗りつぶし
が終了したあと、次に塗りつぶしを行う部分を探
し出すべく、塗りつぶしが行なわれた水平線に隣
接する上側及び下側の水平線が走査される。これ
によつて得られたデータはスタツクに蓄積され、
これらデータの中から次に塗りつぶすべき部分が
選択されて、これを塗りつぶすようにしている。
で囲まれた領域内に塗りつぶし要求が与えられた
場合、これに隣接する水平方向の画素を順次塗り
つぶして行く方法である。この場合、塗りつぶし
が終了したあと、次に塗りつぶしを行う部分を探
し出すべく、塗りつぶしが行なわれた水平線に隣
接する上側及び下側の水平線が走査される。これ
によつて得られたデータはスタツクに蓄積され、
これらデータの中から次に塗りつぶすべき部分が
選択されて、これを塗りつぶすようにしている。
第4図乃至第6図は、このような方式によつて
塗りつぶしが行われて行く状態を示す説明図であ
る。第4図において、Sで表された塗りつぶし要
求が与えられた場合、これに隣接する水平方向の
画素が、●で示すように、順次塗りつぶされて行
く。この後、塗りつぶされた水平線に隣接する上
側及び下側の水平線が走査れ、これらに関するデ
ータがスタツクに蓄積される。第4図中、1,2
はこれらデータのスタツク番号を代表的に表した
ものである。本具体例の場合、画素グループ2が
次に塗りつぶされる水平部分として選択され、第
5図に示すようにこの部分が塗りつぶされる。
塗りつぶしが行われて行く状態を示す説明図であ
る。第4図において、Sで表された塗りつぶし要
求が与えられた場合、これに隣接する水平方向の
画素が、●で示すように、順次塗りつぶされて行
く。この後、塗りつぶされた水平線に隣接する上
側及び下側の水平線が走査れ、これらに関するデ
ータがスタツクに蓄積される。第4図中、1,2
はこれらデータのスタツク番号を代表的に表した
ものである。本具体例の場合、画素グループ2が
次に塗りつぶされる水平部分として選択され、第
5図に示すようにこの部分が塗りつぶされる。
この後、第4図における場合と同様、塗りつぶ
しが完了した水平線に隣接する上側及び下側の水
平線が走査され、次に塗りつぶしを行う部分が特
定され、第6図に示すように、第5図における画
素グループ2が塗りつぶされる。
しが完了した水平線に隣接する上側及び下側の水
平線が走査され、次に塗りつぶしを行う部分が特
定され、第6図に示すように、第5図における画
素グループ2が塗りつぶされる。
しかしながら、これら従来方式において、第1
の方式の場合、夫々の手続は簡単であるが、画素
一つ一つについて、回帰的定義に従つた処理を繰
り返し実行する必要があり、時間が掛る欠点があ
つた。更に、メモリスペースが限られているよう
な場合、スタツクがオーバフローしてしまう欠点
があつた。
の方式の場合、夫々の手続は簡単であるが、画素
一つ一つについて、回帰的定義に従つた処理を繰
り返し実行する必要があり、時間が掛る欠点があ
つた。更に、メモリスペースが限られているよう
な場合、スタツクがオーバフローしてしまう欠点
があつた。
また、第2の方式では、前記閉曲線の領域内の
全ての画素を2度走査する必要があり、時間が掛
る欠点がある他、次に塗りつぶしを行う部分を探
し出す為、塗りつぶしが完了した水平線に隣接す
る水平線の走査を行わなければならず、この走査
によるデータの量は前記閉曲線によつて作られる
図形の形態によつて著しく変化するので、複雑な
形態の図形にも正しく対処出来るようにする為に
は充分大きなメモリを用意する必要があつた。
全ての画素を2度走査する必要があり、時間が掛
る欠点がある他、次に塗りつぶしを行う部分を探
し出す為、塗りつぶしが完了した水平線に隣接す
る水平線の走査を行わなければならず、この走査
によるデータの量は前記閉曲線によつて作られる
図形の形態によつて著しく変化するので、複雑な
形態の図形にも正しく対処出来るようにする為に
は充分大きなメモリを用意する必要があつた。
<発明が解決しようとする課題>
本発明の目的は、画像の輪郭線を表わす閉曲線
データが予め表示メモリに書込まれたラスタスキ
ヤン型表示装置において、前記閉曲線の領域内の
塗りつぶしを簡単なハードウエア構成で効率良く
行える塗りつぶし方式を実現することにある。
データが予め表示メモリに書込まれたラスタスキ
ヤン型表示装置において、前記閉曲線の領域内の
塗りつぶしを簡単なハードウエア構成で効率良く
行える塗りつぶし方式を実現することにある。
<課題を解決するための手段>
本発明の方法は、画像の輪郭線を表わす閉曲線
データが書込まれたラスタスキヤン型表示装置に
おいて、 (a) 前記閉曲線領域内の任意の点に塗りつぶし要
求が与えられたとき、この点を水平方向に移動
させて前記閉曲線と交わる点を求める工程と、 (b) これを開始点としてこの点に隣接する画素を
時計回り、或は反時計回りに走査して前記閉曲
線との交点を求め、これを新たな境界点として
先の場合と同様な走査を行い更に新たな境界点
を検出する動作を、前記閉曲線上を辿つて前記
開始点まで繰り返し行う工程と、 (c) 前記境界点の検出毎に、前回の境界点と新た
な境界点とを比較し、これら境界点のY座標値
の変化傾向を検出する工程と、 (d) 前記境界点のY座標値の変化傾向が予め定め
た増加傾向或は減少傾向である場合、この境界
点から水平に前記閉曲線と交わる点まで塗りつ
ぶしを行う工程 とよりなる表示装置における閉曲線内塗りつぶし
方式である。
データが書込まれたラスタスキヤン型表示装置に
おいて、 (a) 前記閉曲線領域内の任意の点に塗りつぶし要
求が与えられたとき、この点を水平方向に移動
させて前記閉曲線と交わる点を求める工程と、 (b) これを開始点としてこの点に隣接する画素を
時計回り、或は反時計回りに走査して前記閉曲
線との交点を求め、これを新たな境界点として
先の場合と同様な走査を行い更に新たな境界点
を検出する動作を、前記閉曲線上を辿つて前記
開始点まで繰り返し行う工程と、 (c) 前記境界点の検出毎に、前回の境界点と新た
な境界点とを比較し、これら境界点のY座標値
の変化傾向を検出する工程と、 (d) 前記境界点のY座標値の変化傾向が予め定め
た増加傾向或は減少傾向である場合、この境界
点から水平に前記閉曲線と交わる点まで塗りつ
ぶしを行う工程 とよりなる表示装置における閉曲線内塗りつぶし
方式である。
<実施例>
先ず、本発明による塗りつぶし方式の原理につ
いて第7図及び第8図に従い説明を行う。水平、
垂直方向の座標位置をXn,Ynで表わす。第7図
で示すような、閉曲線L1によつて囲された領域
内の任意の点(Xb,Ya)に塗りつぶし要求が与
えられた場合、この点を通る水平線と閉曲線L1
との交点(Xa,Ya)を先ず見付け、この点を開
始点とする。この点から、閉曲線L1を例えば時
計回り方向Ar1に移動しながら、水平線をXで
順次塗りつぶして行く。一周して開始点(Xa,
Ya)に戻つたところで閉曲線L1の領域内の塗
りつぶしは完了する。
いて第7図及び第8図に従い説明を行う。水平、
垂直方向の座標位置をXn,Ynで表わす。第7図
で示すような、閉曲線L1によつて囲された領域
内の任意の点(Xb,Ya)に塗りつぶし要求が与
えられた場合、この点を通る水平線と閉曲線L1
との交点(Xa,Ya)を先ず見付け、この点を開
始点とする。この点から、閉曲線L1を例えば時
計回り方向Ar1に移動しながら、水平線をXで
順次塗りつぶして行く。一周して開始点(Xa,
Ya)に戻つたところで閉曲線L1の領域内の塗
りつぶしは完了する。
閉曲線L1上を時計回り方向Ar1に進んで行
く過程を第8図に従い説明する。第8図は第7図
に示す閉曲線L1の部分を拡大して示したもの
で、黒点で表わされた開始点(Xa,Ya)を中心
にこれに8方より隣接する画素が示されている。
これらのうち、斜線の点は、閉曲線L1を構成す
る画素で、この閉曲線は予め表示メモリに書込ま
れている。
く過程を第8図に従い説明する。第8図は第7図
に示す閉曲線L1の部分を拡大して示したもの
で、黒点で表わされた開始点(Xa,Ya)を中心
にこれに8方より隣接する画素が示されている。
これらのうち、斜線の点は、閉曲線L1を構成す
る画素で、この閉曲線は予め表示メモリに書込ま
れている。
開始点(Xa,Ya)が決ると、この点を中心に
反時計回り方向Ar2に隣接する8つの画素のア
ドレスをチエツクする。閉曲線L1と最初に交わ
る点、即ち、(Xa−1,Ya+1)の点が新たな
境界点として特定される。次にこれを新たな開始
点として先の場合と同様な走査を行い更に新たな
境界点を検出して行く。このような動作を繰り返
し行うことによつて、開始点(Xa,Ya)まで閉
曲線L1上を辿つて行くことが出来る。
反時計回り方向Ar2に隣接する8つの画素のア
ドレスをチエツクする。閉曲線L1と最初に交わ
る点、即ち、(Xa−1,Ya+1)の点が新たな
境界点として特定される。次にこれを新たな開始
点として先の場合と同様な走査を行い更に新たな
境界点を検出して行く。このような動作を繰り返
し行うことによつて、開始点(Xa,Ya)まで閉
曲線L1上を辿つて行くことが出来る。
更に、前記境界点が検出される毎にその前の境
界点から水平に閉曲線L1と交わる点まで塗りつ
ぶしが行われる。尚、この場合、同じ水平線が2
度塗りつぶしが行われないようにする為、前記境
界点の垂直方向の変化傾向が特定の方向にある場
合、例えば、新たな境界点のYnの値が前回の境
界点のものと比べ増加しているときだけ水平線の
塗りつぶしを行う。
界点から水平に閉曲線L1と交わる点まで塗りつ
ぶしが行われる。尚、この場合、同じ水平線が2
度塗りつぶしが行われないようにする為、前記境
界点の垂直方向の変化傾向が特定の方向にある場
合、例えば、新たな境界点のYnの値が前回の境
界点のものと比べ増加しているときだけ水平線の
塗りつぶしを行う。
ところで、閉曲線L1の形状は第7図に示すよ
うな簡単な形状ばかりとは限らない。複雑な閉曲
線の場合も有り得る。以下、このような場合の本
発明の実施例について説明を行う。第9図は複雑
な閉曲線L2の部分を拡大して示したもので、黒
並びに斜線の点はこの閉曲線を構成する画素を表
わす。尚、以下の説明では、閉曲線L2上の開始
点を見付ける行程、即ち、閉曲線L2内の任意の
点に塗りつぶし要求が出され、この点を通る水平
線と閉曲線L2との交点を求め、開始点とする行
程についての説明は省略されている。今、黒点の
位置から矢印Ar3方向に閉曲線L2上を進もで
行くものとする。
うな簡単な形状ばかりとは限らない。複雑な閉曲
線の場合も有り得る。以下、このような場合の本
発明の実施例について説明を行う。第9図は複雑
な閉曲線L2の部分を拡大して示したもので、黒
並びに斜線の点はこの閉曲線を構成する画素を表
わす。尚、以下の説明では、閉曲線L2上の開始
点を見付ける行程、即ち、閉曲線L2内の任意の
点に塗りつぶし要求が出され、この点を通る水平
線と閉曲線L2との交点を求め、開始点とする行
程についての説明は省略されている。今、黒点の
位置から矢印Ar3方向に閉曲線L2上を進もで
行くものとする。
第10図は本発明の塗りつぶし方式を実行する
為の制御回路を、第11図はその作を説明する為
のフローチヤートを示す。これらに従い、第9図
における塗りつぶしの状態を説明する。
為の制御回路を、第11図はその作を説明する為
のフローチヤートを示す。これらに従い、第9図
における塗りつぶしの状態を説明する。
第10図において、ALUは演算装置、AB及び
DBはデータバス、OBは出力バスである。Xは
X値がREAD,WRITEされるレジスタ、YはY
値がREAD,WRITEされるレジスタ、Prxlは閉
曲線L2上において、現在位置より一つ前の境界
(閉曲線L2)の左端のX値がREAD,WRITE
されるレジスタ、Prxrは現在位置より一つ前の
境界の右端のx値がREAD,WRITEされるレジ
スタ、Cxlは現在位置の境界の左端のx値が
READ,WRITEされるレジスタ、Cxrは現在位
置の境界の右端のx値がREAD,WRITEされる
レジスタ、Pryは現在位置より一つ前の境界のy
値がREAD,WRITEされるレジスタ、Cyは現在
位置の境界のy値がREAD,WRITEされるレジ
スタ、CNTRはカウンタである。MEMは閉曲線
L2に関するグラフイツク情報が記憶されたメモ
リ、CLOGは第11図における各種の論演算を実
行する為のコントロール・ロジツクである。
DBはデータバス、OBは出力バスである。Xは
X値がREAD,WRITEされるレジスタ、YはY
値がREAD,WRITEされるレジスタ、Prxlは閉
曲線L2上において、現在位置より一つ前の境界
(閉曲線L2)の左端のX値がREAD,WRITE
されるレジスタ、Prxrは現在位置より一つ前の
境界の右端のx値がREAD,WRITEされるレジ
スタ、Cxlは現在位置の境界の左端のx値が
READ,WRITEされるレジスタ、Cxrは現在位
置の境界の右端のx値がREAD,WRITEされる
レジスタ、Pryは現在位置より一つ前の境界のy
値がREAD,WRITEされるレジスタ、Cyは現在
位置の境界のy値がREAD,WRITEされるレジ
スタ、CNTRはカウンタである。MEMは閉曲線
L2に関するグラフイツク情報が記憶されたメモ
リ、CLOGは第11図における各種の論演算を実
行する為のコントロール・ロジツクである。
今、黒点の位置において、左端のx値(Cxl)
をα、右端のx値(Cxr)をβ,y値(Cy)をγ
とする。尚、第9図より明らかな通り、現在位置
より一つ前の境界の左端のx値(Prxl)並びに
右端のx値(Prxr)はβであり、一つ前の境界
のy値(Pry)はγ−1である。
をα、右端のx値(Cxr)をβ,y値(Cy)をγ
とする。尚、第9図より明らかな通り、現在位置
より一つ前の境界の左端のx値(Prxl)並びに
右端のx値(Prxr)はβであり、一つ前の境界
のy値(Pry)はγ−1である。
二つの黒点の回りを反時計回りに隣接する画素
のアドレスをチエツクし、閉曲線L2との交点を
検出し、塗りつぶしを行う行程について第11図
のフローチヤートに従い説明を行う。ステツプ1
において、Prxr+1(=β+1)が求められ、レ
ジスタXに書込まれる。ステツプ2において、
Cy−1(=γ−1)が求められ、レジスタYに書
込まれる。これらステツプによつて、走査される
画素の開始点が決まる。
のアドレスをチエツクし、閉曲線L2との交点を
検出し、塗りつぶしを行う行程について第11図
のフローチヤートに従い説明を行う。ステツプ1
において、Prxr+1(=β+1)が求められ、レ
ジスタXに書込まれる。ステツプ2において、
Cy−1(=γ−1)が求められ、レジスタYに書
込まれる。これらステツプによつて、走査される
画素の開始点が決まる。
ステツプ3において、Cxr−Prxr(=0)が求
められ、カウンタCNTRに記憶される。ステツ
プ4において、カウンタCNTRの値が0以上か
判断される。この例では、0であるから、ステツ
プ5に進んで、ここで、X(=β+1)、Y(=γ
−1)が境界にあるか判断される。X,Yは境界
にないから、ステツプ6に移り、カウンタ
CNTRの値から1を引いたものが新たなカウン
タ値として記憶され、ステツプ7でX+1が新た
な値としてレジスタXに書込まれる。
められ、カウンタCNTRに記憶される。ステツ
プ4において、カウンタCNTRの値が0以上か
判断される。この例では、0であるから、ステツ
プ5に進んで、ここで、X(=β+1)、Y(=γ
−1)が境界にあるか判断される。X,Yは境界
にないから、ステツプ6に移り、カウンタ
CNTRの値から1を引いたものが新たなカウン
タ値として記憶され、ステツプ7でX+1が新た
な値としてレジスタXに書込まれる。
この後、ステツプ4に戻るが、本例の場合、カ
ウンタCNTRの値は−1となつて、ループを抜
け出て、ステツプ8に移る。尚、ステツプ5にお
いて、X,Yが境界にある場合には、B以下の塗
りつぶし、並びに初期化のステツプに移る。
ウンタCNTRの値は−1となつて、ループを抜
け出て、ステツプ8に移る。尚、ステツプ5にお
いて、X,Yが境界にある場合には、B以下の塗
りつぶし、並びに初期化のステツプに移る。
ステツプ8でCxr+1(=β+1)が求められ、
これがレジスタXに書込まれ、ステツプ9でCy
+1(=γ+1)が求められ、これがレジスタY
に書込まれ、また、ステツプ10でCxr−Cxl+
2(=3)が求められ、これがカウンタCNTRに
記憶される。これらステツプと、これら以降のス
テツプ11〜14とは、右端の黒点(β,γ)の
右斜め上の画素(β+1,γ+1)から左方に走
査する過程に相当する。
これがレジスタXに書込まれ、ステツプ9でCy
+1(=γ+1)が求められ、これがレジスタY
に書込まれ、また、ステツプ10でCxr−Cxl+
2(=3)が求められ、これがカウンタCNTRに
記憶される。これらステツプと、これら以降のス
テツプ11〜14とは、右端の黒点(β,γ)の
右斜め上の画素(β+1,γ+1)から左方に走
査する過程に相当する。
尚、黒点(β,γ)の右隣りの画素が飛ばされ
て前記右斜め上の画素に移つているが、前記右隣
りの画素は、一つ前の境界点が検出する走査で、
予め境界にないことが確認されている(後出のB
以下の初期化のステツプを参照)為、スキツプさ
れている。
て前記右斜め上の画素に移つているが、前記右隣
りの画素は、一つ前の境界点が検出する走査で、
予め境界にないことが確認されている(後出のB
以下の初期化のステツプを参照)為、スキツプさ
れている。
ステツプ11において、カウンタCNTRの値
が0以上か判断される。この例では、3であるか
ら、次のステツプ12に進んで、ここで、X(=
β+1)、Y(=γ+1)が境界にあるか判断され
る。このときのX,Yは境界にないから、ステツ
プ13に移り、カウンタCNTRの値から1を引
いたものが新たなカウンタ値として記憶され、ス
テツプ14でX−1が新たな値としてレジスタX
に書込まれる。
が0以上か判断される。この例では、3であるか
ら、次のステツプ12に進んで、ここで、X(=
β+1)、Y(=γ+1)が境界にあるか判断され
る。このときのX,Yは境界にないから、ステツ
プ13に移り、カウンタCNTRの値から1を引
いたものが新たなカウンタ値として記憶され、ス
テツプ14でX−1が新たな値としてレジスタX
に書込まれる。
この後、ステツプ11に戻るが、本例の場合、
このループを3回まわつて、4回目にB以下のス
テツプに移つて行く。
このループを3回まわつて、4回目にB以下のス
テツプに移つて行く。
A以下のステツプは、右端の黒点の右斜め上の
画素(β+1,γ+1)から左端の黒点の左斜め
上の画素(α−1,γ+1)までの走査で境界が
見付けられないときのステツプを示す。
画素(β+1,γ+1)から左端の黒点の左斜め
上の画素(α−1,γ+1)までの走査で境界が
見付けられないときのステツプを示す。
第9図において点線で示した位置に境界がある
ような場合、走査は左端の黒点から更に反時計回
りに行う必要がある。ステツプ15,16は走査
の開始点(α−1,γ−1)を定める為のもので
ある。尚、開始点が、左端の黒点の左隣りの画素
を飛ばし、前記黒点の左斜め下の画素(α−1,
γ−1)からとなつているが、これは、前記左隣
りの画素は、一つ前の境界点を検出する走査の過
程で境界にないことが確認されている為である。
ような場合、走査は左端の黒点から更に反時計回
りに行う必要がある。ステツプ15,16は走査
の開始点(α−1,γ−1)を定める為のもので
ある。尚、開始点が、左端の黒点の左隣りの画素
を飛ばし、前記黒点の左斜め下の画素(α−1,
γ−1)からとなつているが、これは、前記左隣
りの画素は、一つ前の境界点を検出する走査の過
程で境界にないことが確認されている為である。
ステツプ17で、Prxl−Cxlが記憶され、ステ
ツプ18で、カウンタCNTRの値が0以上が判
断される。次のステツプ19で、X,Yが境界に
あるか判断され、境界にない場合にはステツプ2
0に移り、カウンタCNTRの値から1を引いた
ものが新たなカウンタ値として記憶され、ステツ
プ21において、X+1を新たな値として、レジ
スタXに書込まれる。
ツプ18で、カウンタCNTRの値が0以上が判
断される。次のステツプ19で、X,Yが境界に
あるか判断され、境界にない場合にはステツプ2
0に移り、カウンタCNTRの値から1を引いた
ものが新たなカウンタ値として記憶され、ステツ
プ21において、X+1を新たな値として、レジ
スタXに書込まれる。
この後、ステツプ18に戻るが、本例のように
点線の画素の位置が境界にある場合には、一回目
でこのループを抜け出てB以下のステツプに移
る。尚、ステツプ18でNOとなつた場合は、閉
曲線L2が不連続であることになる。
点線の画素の位置が境界にある場合には、一回目
でこのループを抜け出てB以下のステツプに移
る。尚、ステツプ18でNOとなつた場合は、閉
曲線L2が不連続であることになる。
B以下のステツプにおいて、ステツプ22は塗
りつぶしのサブルーチンで、現在の境界(黒点の
位置)のy値(Cy)、一つ前の境界のy値
(Pry)、今回の走査によつて検出された境界のy
値(Y)が比較され、 Pry<Cy<Yのとき、即ち、現在の境界点の変
化傾向が増加傾向にあるときに、右端の黒点の隣
りの位置(Cxr+1,Cy)から右へ反対側の境界
まで塗りつぶしが行われる。
りつぶしのサブルーチンで、現在の境界(黒点の
位置)のy値(Cy)、一つ前の境界のy値
(Pry)、今回の走査によつて検出された境界のy
値(Y)が比較され、 Pry<Cy<Yのとき、即ち、現在の境界点の変
化傾向が増加傾向にあるときに、右端の黒点の隣
りの位置(Cxr+1,Cy)から右へ反対側の境界
まで塗りつぶしが行われる。
ステツプ23〜32は次の境界点を検出する走
査に先立ち行う初期化ステツプである。ステツプ
23,24において、新たな境界の右端のx値が
求められる。右端が求められた場合、ステツプ2
5において、現在の境界の右端のx値(Cxr)を
一つ前の境界の右端のx値に関するレジスタ
Prxrに書込み、ステツプ26において、X−1
(ステツプ23において、X+1→xとされてい
る。)をレジスタCxrに書込む。
査に先立ち行う初期化ステツプである。ステツプ
23,24において、新たな境界の右端のx値が
求められる。右端が求められた場合、ステツプ2
5において、現在の境界の右端のx値(Cxr)を
一つ前の境界の右端のx値に関するレジスタ
Prxrに書込み、ステツプ26において、X−1
(ステツプ23において、X+1→xとされてい
る。)をレジスタCxrに書込む。
ステツプ27,28において、新たな境界の左
端のx値が求められる。左端が求められた場合、
ステツプ29において、現在の境界の左端のx値
(Cxl)を一つ前の境界の左端のx値に関するレ
ジスタPrxlに書込み、ステツプ30において、
X+1(ステツプ27において、X−1→xとさ
れている。)をレジスタCxlに書込む。
端のx値が求められる。左端が求められた場合、
ステツプ29において、現在の境界の左端のx値
(Cxl)を一つ前の境界の左端のx値に関するレ
ジスタPrxlに書込み、ステツプ30において、
X+1(ステツプ27において、X−1→xとさ
れている。)をレジスタCxlに書込む。
ステツプ31,32において、y値の更新が行
われる。即ち、ステツプ31において、現在の境
界のy値(Cy)が一つ前の境界のy値に関する
レジスタPryに書込まれ、現在32において、新
たな境界のy値が現在の境界のy値に関するレジ
スタCyに書込まれる。この後、ステツプ1に戻
つて、新たな境界点の検出の為の走査が行われ
る。
われる。即ち、ステツプ31において、現在の境
界のy値(Cy)が一つ前の境界のy値に関する
レジスタPryに書込まれ、現在32において、新
たな境界のy値が現在の境界のy値に関するレジ
スタCyに書込まれる。この後、ステツプ1に戻
つて、新たな境界点の検出の為の走査が行われ
る。
このような動作を繰り返し行うことによつて、
黒点で示す開始点まで閉曲線L2上を辿つて行く
ことによつて、この閉曲線で囲まれる部分が塗り
つぶされる。尚、前記本発明の実施例では、境界
点の回りを反時計回りに走査して、新たな境界点
を検出するようにしているが、これに限らず、時
計回りに走査して境界点を検出するようにしても
良い。
黒点で示す開始点まで閉曲線L2上を辿つて行く
ことによつて、この閉曲線で囲まれる部分が塗り
つぶされる。尚、前記本発明の実施例では、境界
点の回りを反時計回りに走査して、新たな境界点
を検出するようにしているが、これに限らず、時
計回りに走査して境界点を検出するようにしても
良い。
<効 果>
本発明の塗りつぶし方式によれば、境界点の回
りを走査する為の記憶内容は、前記境界点の直
前、現在、直後の座標データであり、従来方式と
比較して少なく、メモリスケールをその分、縮小
することが出来る。更に、本発明の方式によれ
ば、境界点に隣接する小数の画素を走査し、新た
な境界点を見付け、直線を引くものである為、第
1の従来方式で示したような、閉曲線内の全画素
について回帰的定義に従つた塗りつぶし処理を繰
返し行うもの、或は、第2の従来方式のように、
塗りつぶしは水平線単位で行うものの、次の塗り
つぶしの準備の為に隣接する水平線を一々走査し
なければならないものと比較し、塗りつぶしに必
要な時間を大幅に短縮することが出来る。加え
て、本発明の方式では、新たな境界点が検出され
る毎に、境界点の垂直方向の変化傾向がチエツク
され、例えば、現在の境界点の変化傾向が増加傾
向にあるときにだけ、水平線の塗りつぶしを行う
ようにして、同じ水平線が2度塗りつぶされない
ようにした為、時間が更に節約出来る。
りを走査する為の記憶内容は、前記境界点の直
前、現在、直後の座標データであり、従来方式と
比較して少なく、メモリスケールをその分、縮小
することが出来る。更に、本発明の方式によれ
ば、境界点に隣接する小数の画素を走査し、新た
な境界点を見付け、直線を引くものである為、第
1の従来方式で示したような、閉曲線内の全画素
について回帰的定義に従つた塗りつぶし処理を繰
返し行うもの、或は、第2の従来方式のように、
塗りつぶしは水平線単位で行うものの、次の塗り
つぶしの準備の為に隣接する水平線を一々走査し
なければならないものと比較し、塗りつぶしに必
要な時間を大幅に短縮することが出来る。加え
て、本発明の方式では、新たな境界点が検出され
る毎に、境界点の垂直方向の変化傾向がチエツク
され、例えば、現在の境界点の変化傾向が増加傾
向にあるときにだけ、水平線の塗りつぶしを行う
ようにして、同じ水平線が2度塗りつぶされない
ようにした為、時間が更に節約出来る。
第1図乃至第6図は、従来の塗りつぶし方式の
説明図、第7図及び第8図は本発明方式の原理説
明図、第9図は本発明方式の説明図、第10図は
本発明方式を実行する為の制御回路のブロツク線
図、第11図は本発明方式の動作を説明する為の
フローチヤートである。 L1,L2……閉曲線、ALU……演算装置、
X,Y,Prxl,Prxr,Cxl,Cxr,Cy,Pry……
レジスタ、MEM……グラフイツク情報を記憶す
るメモリ、CLOG……コントロール・ロジツク。
説明図、第7図及び第8図は本発明方式の原理説
明図、第9図は本発明方式の説明図、第10図は
本発明方式を実行する為の制御回路のブロツク線
図、第11図は本発明方式の動作を説明する為の
フローチヤートである。 L1,L2……閉曲線、ALU……演算装置、
X,Y,Prxl,Prxr,Cxl,Cxr,Cy,Pry……
レジスタ、MEM……グラフイツク情報を記憶す
るメモリ、CLOG……コントロール・ロジツク。
Claims (1)
- 【特許請求の範囲】 1 画像の輪郭線を表わす閉曲線データが書込ま
れたラスタスキヤン型表示装置において、 (a) 前記閉曲線領域内の任意の点に塗りつぶし要
求が与えられたとき、この点を水平方向に移動
させて前記閉曲線と交わる点を求める工程と、 (b) これを開始点としてこの点に隣接する画素を
時計回り、或は反時計回りに走査して前記閉曲
線との交点を求め、これを新たな境界点として
先の場合と同様な走査を行い更に新たな境界点
を検出する動作を、前記閉曲線上を辿つて前記
開始点まで繰り返し行う工程と、 (c) 前記境界点の検出毎に、前回の境界点と新た
な境界点とを比較し、これら境界点のY座標値
の変化傾向を検出する工程と、 (d) 前記境界点のY座標値の変化傾向が予め定め
た増加傾向或は減少傾向である場合、この境界
点から水平に前記閉曲線と交わる点まで塗りつ
ぶしを行う工程 とよりなる表示装置における閉曲線内塗りつぶし
方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59099482A JPS60243772A (ja) | 1984-05-17 | 1984-05-17 | 表示装置における閉曲線内塗りつぶし方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59099482A JPS60243772A (ja) | 1984-05-17 | 1984-05-17 | 表示装置における閉曲線内塗りつぶし方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS60243772A JPS60243772A (ja) | 1985-12-03 |
JPH0319991B2 true JPH0319991B2 (ja) | 1991-03-18 |
Family
ID=14248525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59099482A Granted JPS60243772A (ja) | 1984-05-17 | 1984-05-17 | 表示装置における閉曲線内塗りつぶし方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS60243772A (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5390817A (en) * | 1977-01-21 | 1978-08-10 | Hitachi Ltd | Pattern generating method |
JPS57157369A (en) * | 1981-03-25 | 1982-09-28 | Fujitsu Ltd | Loop tracking processing system |
JPS57199036A (en) * | 1981-06-03 | 1982-12-06 | Fuji Xerox Co Ltd | Picture partial erasing device |
JPS5947664A (ja) * | 1982-09-10 | 1984-03-17 | Alps Electric Co Ltd | 画像ペイント処理方式 |
-
1984
- 1984-05-17 JP JP59099482A patent/JPS60243772A/ja active Granted
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5390817A (en) * | 1977-01-21 | 1978-08-10 | Hitachi Ltd | Pattern generating method |
JPS57157369A (en) * | 1981-03-25 | 1982-09-28 | Fujitsu Ltd | Loop tracking processing system |
JPS57199036A (en) * | 1981-06-03 | 1982-12-06 | Fuji Xerox Co Ltd | Picture partial erasing device |
JPS5947664A (ja) * | 1982-09-10 | 1984-03-17 | Alps Electric Co Ltd | 画像ペイント処理方式 |
Also Published As
Publication number | Publication date |
---|---|
JPS60243772A (ja) | 1985-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5864639A (en) | Method and apparatus of rendering a video image | |
US5014331A (en) | Method of detecting an internal point within a closed area | |
JP2625612B2 (ja) | 画像処理方法および画像処理装置 | |
US4656468A (en) | Pattern data processing apparatus | |
JP2770582B2 (ja) | 図形塗潰し装置 | |
JPH0319991B2 (ja) | ||
JPH09106460A (ja) | 画像部品の隣接関係判定方法 | |
JPH10320557A (ja) | テロップ文字表示フレーム検出方法及び装置 | |
JPS63305478A (ja) | パタ−ン情報復元装置 | |
JP2634905B2 (ja) | 図形ぬりつぶし方法 | |
JP4320604B2 (ja) | 画像処理方法および画像処理装置 | |
JP2773127B2 (ja) | 画像編集方法 | |
JP2614111B2 (ja) | 直線表示要素と矩形ウインドウの相互関係の検出方法 | |
JP3139805B2 (ja) | 画像処理方法及びその装置 | |
AU2009222438A1 (en) | Anti-aliased polygon rendering | |
JP3567728B2 (ja) | 画像処理方法および装置 | |
JP2714114B2 (ja) | グラフィック処理方法及びグラフィックシステム | |
JPH01205388A (ja) | 高品質文字・図形等の生成方式 | |
JP2836617B2 (ja) | レンダリングプロセッサ | |
JPH05143733A (ja) | 輪郭抽出装置 | |
US5305431A (en) | Method and system for rendering polygons on a raster display | |
JPH0683968A (ja) | 画像処理装置 | |
JP2787487B2 (ja) | コンピュータシステムに表示され且つ操作される線分の位置を決定する回路 | |
JPS6326773A (ja) | 図形情報の表示処理方法 | |
JPH0520466A (ja) | 画像処理方法及びその装置 |