JP3078955B2 - 塗りつぶし方法 - Google Patents
塗りつぶし方法Info
- Publication number
- JP3078955B2 JP3078955B2 JP16840793A JP16840793A JP3078955B2 JP 3078955 B2 JP3078955 B2 JP 3078955B2 JP 16840793 A JP16840793 A JP 16840793A JP 16840793 A JP16840793 A JP 16840793A JP 3078955 B2 JP3078955 B2 JP 3078955B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- dot
- filled
- dots
- 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 - Fee Related
Links
Landscapes
- Processing Or Creating Images (AREA)
- Digital Computer Display Output (AREA)
- Image Generation (AREA)
Description
により図形データ内部をドットパターンで塗りつぶして
所望の画像データを編集する塗りつぶし方法に関するも
のである。
図であり、ビットマップエディタによる場合を示す。
者が作成編集するビットマップのサイズに対応した格子
51と、その編集状態が表示される。格子51で区切ら
れた矩形領域は、それぞれ作成するビットマップの1ド
ットに対応する。1つのドットは「黒」,「白」の2値
データであり、編集画面上で「黒」または「白」で矩形
領域を塗りつぶすことでドットの状態表示を行う。
り行い、ポインティングデバイスの、例えば「左ボタ
ン」のクリックまたはドラッグにより指定されたドット
を「黒」に、またポインティングデバイスの「右ボタ
ン」のクリックまたはドラッグにより指定されたドット
を「白」に設定する。例えばドット52をポインティン
グデバイスにより指定し、左ボタンを押下したまま軌跡
53に沿って移動(ドラッグ)すると、それらのドット
52が「黒」に設定され、表示される。
機能として「円」や「直線」の描画や、一部領域のコピ
ー/移動/消去等を選択するボタンが用意されており、
これらにより使用者はポインティングデバイスをペン代
わりに用いてコンピュータ画面上に任意の「絵」を描く
ことができる。
者がいわばフリーハンドで「絵」を描くものである。従
って、その際には当然その一部、特にあらかじめ描画し
ておいた輪郭の中を塗りつぶす操作が多く行われること
になる。このため、従来のビットマップエディタでは、
この「図形塗りつぶし」を実行するために、以下の
(1)〜(3)の各機能を有している場合がある。
塗りつぶす機能 (2)一度に塗りつぶすドット領域を変更する(ペンの
太さを変更する)機能 (3)閉領域をプログラムで判断し、その領域を塗りつ
ぶす機能 このうち、(1)の機能は、ビットマップエディタの基
本機能であり、この操作を繰り返すことにより、任意の
領域を塗りつぶすことができる。また、(2)の機能
は、通常はマウスで指示される塗りつぶし領域が1ドッ
トであるのに対して、ポインティングデバイスで指示さ
れたドットを中心とする円や矩形領域の複数ドット領域
を一度に塗りつぶすことにより、効率よく塗りつぶすし
ていくという操作を可能とするものである。さらに、
(3)の機能は、対象となる閉じた曲線図形内の1点を
ポインティングデバイスで指定することによりプログラ
ムが塗りつぶす閉じた領域を判断し、塗りつぶし処理を
実行する。これにより指定された閉じた領域を一度に塗
りつぶすことができる。
による図形の塗りつぶしに際しては、(1)の機能のよ
うなドット単位の塗りつぶしでは使用者の作業負担が大
きい。また、(2)の機能は、いわば「太いペン」を用
いて塗りつぶして行くものであるが、不必要な領域に対
してまで塗りつぶしを行ってしまう可能性が大きく、細
かな作業領域の塗りつぶしには不向きであり、効率の面
から明らかに良くない。
りつぶす機能は、対象が完全な閉じた曲線図形でなけれ
ばならず、また、閉じた領域全体に対してのみ処理を実
行するので、閉じた領域のうち一部を塗りつぶすような
ことはできない。また、完全に閉じた曲線でなければ動
作がおかしくなる。不完全な図形に対しては閉じた曲線
図形を補完するアルゴリズム等が考えられるが、いずれ
にせよ使用者が意図した領域を塗りつぶすことができ難
いという幾多の問題点があった。
されたのもで、塗りつぶし処理を行なうための所定のサ
イズの塗りつぶし領域の移動に伴って塗りつぶし領域内
に、塗りつぶしの対象となる図形を構成する描画ドット
が存在するか否かを判断しながら、描画ドットで形成さ
れる図形の境界と、塗りつぶし領域の内、塗りつぶし領
域の中心を含むことにより特定される塗りつぶし領域の
部分領域に対して塗りつぶし処理を実行することによ
り、あるサイズの塗りつぶし領域を有するペンで自由に
塗りを行いながらも、図等のデータがあれば、その領域
部分で、あるサイズの塗りつぶし領域がはみ出すことな
く塗りを行える塗りつぶし方法を提供することを目的と
する。
し方法は、塗りつぶし処理を行なうための所定のサイズ
の塗りつぶし領域の移動に伴って、前記塗りつぶし領域
内に、塗りつぶしの対象となる図形を構成する描画ドッ
トが存在するか否かを判断し、前記判断により前記塗り
つぶし領域内に前記図形を構成する描画ドットが存在す
ると判断された場合、前記描画ドットで形成される前記
図形の境界と、前記塗りつぶし領域の内、前記塗りつぶ
し領域の中心を含むことにより特定される前記塗りつぶ
し領域の部分領域に対して、塗りつぶし処理を行なうこ
とを有したものである。
めの所定のサイズの塗りつぶし領域の移動に伴って塗り
つぶし領域内に、塗りつぶしの対象となる図形を構成す
る描画ドットが存在するか否かを判断し、該判断により
前記塗りつぶし領域内に前記図形を構成する描画ドット
が存在すると判断された場合、前記描画ドットで形成さ
れる前記図形の境界と、前記塗りつぶし領域の内、前記
塗りつぶし領域の中心を含むことにより特定される前記
塗りつぶし領域の部分領域に対して、塗りつぶし処理を
行なって、あるサイズの塗りつぶし領域を有するペンで
自由に塗りを行いながらも、図等のデータがあれば、そ
の領域部分で、あるサイズの塗りつぶし領域がはみ出す
ことなく塗りを行うことを可能とする。
法を適用するデータ処理装置の一例を示すブロック図で
ある。
画・作成するビットパターンおよびカーソルを表示する
表示画面を有する。2はCPUで、図示しないROMに
記憶された制御プログラムに基づいてポインティングデ
バイス4,メモリ3のアクセスを制御する。ポインティ
ングデバイス4は画面装置1上に表示されているカーソ
ルの位置を移動させ、メモリ3は描画・作成中のドット
パターンデータを主として描画・作成に必要なデータを
記憶する。
方法を説明する図であり、図1に示した画面装置1に表
示されるビットマップエディタ画面を例として説明す
る。なお、本実施例において、「ペンによる描画」と
は、マウス操作によりドットパターンを編集画面上に描
くことを意味する。また、一度に塗りつぶす領域は通常
1ドットであるが、マウスで指示されたドットを中心と
する円や矩形領域の複数ドット領域全体を指定すること
もできる。この時、その一度に塗りつぶす領域の大きさ
を「ペンサイズ」とし、領域を「ペン先領域」とする。
ューで、エディットメニュー11はペン色選択メニュー
に対応し、「黒」,「白」のいずれかを選択可能に構成
されており、現在反転表示されている「黒」が選択状態
を示す。エディットメニュー12はペンサイズ選択メニ
ューに対応し、「5ドット」,「9ドット」,「15ド
ット」を選択可能に構成されており、現在反転表示され
ている「9ドット」が選択されている状態を示す。エデ
ィットメニュー13はペン形状選択メニューに対応し、
「矩形」,「円」のいずれかを選択可能に構成されてお
り、現在反転表示されている「矩形」が選択されている
状態に対応する。
メニュー11〜13において、ペンのサイズ,形状,色
を設定し、エディタ上でポインティングデバイスの左ボ
タンを「クリック」または「ドラッグ」することによ
り、ペン先領域単位で塗りつぶし処理を実行する。
画されたドットパターン14に対して実線矩形15で示
される<縦9ドット,横9ドット>サイズのペンを使用
し塗りつぶしを行う場合を示す。×印16はポインティ
ングデバイスにより指定されたペン先領域の中心を示
し、17はペン先領域を示す。ここで、ポインティング
デバイスの左ボタンを各×印を結ぶ矢印18に沿ってド
ラッグさせると、斜線19で示すドット領域が黒く塗り
つぶされる。
て、画面装置1のドットマトリクス上に前記所定サイズ
の塗りつぶし領域を設定表示し、該設定表示された塗り
つぶし領域の移動指示(ポインティングデバイス4のカ
ーソル指示による)に従って前記塗りつぶし領域内に塗
りつぶされた指定色の描画ドット有無を(後述する図5
に示す制御手順に従って行う)CPU2が判定し、該判
定結果に基づいてメモリ3の前記塗りつぶし領域内の前
記描画ドットの内側の未塗りドットまたは前記塗りつぶ
し領域内を指定色で塗りつぶす。
インティングデバイス4を用いてドットパターンを描画
・作成するビットマップエディタによる描画された輪郭
の内部の塗りつぶし処理を行う際に、ポインティングデ
バイス4により指示される描画中心より2ドット以上を
含む塗りつぶし領域(本実施例ではブロックとして設定
されるペン先領域17)を設定し、既に描画されたドッ
トパターンとポインティングデバイス4により指示され
た該塗りつぶし領域内部から、該塗りつぶし領域の中に
既に描画されたドットが存在する場合には、前記ポイン
ティングデバイス4により指示される描画中心(図2の
×印16)より既に描画されたドットまでを塗りつぶし
の対象として設定し、また、該塗りつぶし領域の中に既
に描画されたドットが存在しない場合には、塗りつぶし
領域の内部全体を塗りつぶしの対象として設定し、該設
定された塗りつぶし対象を塗りつぶすことにより、閉じ
た領域でない領域で、かつ上記ブロック内に既に描画さ
れた黒または白ドットの内側の白または黒ドットを黒ま
たは白ドットに塗りつぶすことができるので、領域限定
された範囲でかつ既に塗りつぶされたドットに支障なく
塗りつぶしを行えるため、塗りつぶし処理を格段に効率
化することができる。
りつぶす処理について図3に示すフローチャートを参照
しながら詳細に説明する。
ドットを原点として、横方向にX軸を、縦方向にY軸を
立てて、ドット位置をX−Yの二次元座標20で表す。
また、各ドットのデータの値は「黒」をONデータ、
「白」をOFFデータとして取り扱い、例えば「(X,
Y)=(2,6)はONである。」と表す。
方法を説明するフローチャートである。なお、(1)〜
(5)は各ステップを示す。
が押下されていなければ塗りつぶし操作の終了を確認し
(1)、終了でなければポインティングデバイス4によ
り指定される編集画面上の位置座標(X,Y)=(X
0,Y0)を求め、位置座標と既に指定されているペン
サイズからペン先領域内のデータを2次元の配列バッフ
ァA(−4:4,−4:4)に取り込む(3)。また、
最終的な塗りつぶし領域を設定するためにOFFデータ
で初期化された上記配列バッファAと同じサイズのバッ
ファ(−4:4,−4:4)を用意する。これらの両バ
ッファの各配列要素はペンサイズ領域の各ドットに1対
1に対応する。
ドットデータを順次検索することにより塗りつぶす処理
対象領域を判断し、バッファBにセットする(4)。そ
の後、セットされたバッファBの情報に基づいて処理対
象領域を塗りつぶし(5)、塗りつぶし完了後ステップ
(1)に戻り、処理を繰り返す。
した処理対象領域判断処理動作について説明する。
理の第1の詳細手順の一例を示すフローチャートであ
る。なお、(1),(2)は各ステップを示す。
分ける(1)。なお、本実施例では、各ブロックはペン
先領域をその中心である(X,Y)=(X0,Y0)を
原点座標としてX−Y方向に以下の定義域〔1〕〜
〔4〕をもつ領域(ブロック)に分けたものに対応す
る。
ブロックについて順次塗りつぶし領域を後述する図5に
示すフローチャートに基づいて判断し、バッファBにセ
ットし(2)、処理を終了する。
毎の塗りつぶし領域判断処理の詳細手順を示すフローチ
ャートである。なお、(1)〜(21)は各ステップを
示す。
変数をX軸方向にi,Y軸方向にjを用意し、いずれも
その値を「0」にする(1)。次いで、変数iが「5」
かどうかを判断し(2)、YESならば変数jを「1」
インクリメントし(3)、変数jが「5」かどうかを判
断し(4)、NOならば変数iを「0」に初期化して
(5)、ステップ(2)に戻る。
「5」と判定された場合には、変数i,jを「0」に設
定する(11)。
は、データ(X,Y)=(X0+i,Y0+j)を求め
(6)、求めたデータがONかどうかを判定し(7)、
YESならば変数iを「5」として(8)、ステップ
(2)に戻る。
領域、すなわちj=0〜4に対してバッファA(X0,
Y+j)からX軸方向へ、各ドットデータを順次検索す
る。その際、既に描かれたドットが検索された場合、す
なわち、バッファA(X0+i,Y0+j)の値がON
の場合には、Y=Y0+jにおけるX=0からX=X0
+iまでを、また描かれたドットが検索されなかった場
合には、Y=Y0+jにおけるX軸方向の全てのドット
を処理対象候補として対応するバッファBの配列要素に
セットする。
「0」とした後、変数jが「5」かどうかを判定し(1
2)、YESならば変数iを「1」インクリメントし
(13)、変数iが「5」かどうかを判定し(14)、
YESならば処理を終了し、NOならば変数jを「0」
とし(15)、ステップ(12)に戻る。
合はデータ(X,Y)=(X0+i,Y0+j)を求め
(16)、求めたデータがONかどうかを判定し(1
7)、YESならば以後のデータをOFFとしてバッフ
ァBにセットし、変数jを「5」として(18)、ステ
ップ(12)に戻る。
合は、バッファB(X0+i,Y0+j)は既に塗りつ
ぶし対象候補かどうかを判定し(19)、NOならばバ
ッファB(X0+i,Y0+j)を塗りつぶし対象外と
してセットし(20)、ステップ(12)に戻る。
場合は、バッファB(X0+i,Y0+j)を塗りつぶ
し対象ドットとしてセットして(21)、ステップ(1
2)に戻る。
のX軸方向領域、すなわち、i=0〜4に対してバッフ
ァA(X0+i,Y0)からY軸方向へ、各ドットデー
タを順次検索する。その際、既に描かれたドットが検索
された場合、すなわちバッファA(X0+i,Y0+
j)の値がONの場合には、X=X0+iにおけるY=
0からY=Y0+jまでを、また既に描かれたドットが
検索されなかった場合には、X=X0+iにおけるY軸
方向の全てのドットを処理対象候補として、対応するバ
ッファBの配列要素にセットする。
判断ではX軸方向およびY軸方向で同じドットが2度検
索されるが、ステップ(18)〜(20)により、とも
に処理対象候補となるドットのみを最終的な塗りつぶし
処理対象ドットとしてバッファBにセットする。
ながら図3に示した処理対象領域判断処理の他の例につ
いて説明する。
理の第2の詳細手順の一例を示すフローチャートであ
る。なお、(1),(2)は各ステップを示す。また、
本実施例では従来技術で示した塗りつぶし機能を備え
て、閉じた領域を塗りつぶすことができるものとする。
ス4により指定されたペン先領域に外接するドットを仮
想的に描画し、閉じた領域を作成する(1)。その後、
ペン先領域の中心を内部の点とする閉じた領域を改めて
判断し(2)、その閉じた領域を処理対象領域とする。
閉じた領域がない場合には、あらかじめ描画した外接領
域、すなわちペン先領域全体を処理対象領域とする。
る領域を塗りつぶすことは決してなく、ペン先領域17
の中に既に描かれた輪郭があれば、それらのペン先中心
の側の領域のみが塗りつぶされることになる。
は、既に描画された輪郭の内側をポインティングデバイ
ス4でなぞっていけば良いので、効率よく塗りつぶしを
行うことができる。また、輪郭に多少「欠け」があって
も、設定されたペンサイズ以上に大きくはみ出して塗り
つぶしてしまうことは無いので、その後、はみ出し部分
の修正が大幅に軽減される。
で、サイズが9ドットであるペンを用いた「黒」による
塗りつぶしを例としたが、本発明は塗りつぶし処理にお
いて「黒」でなく、「白」による塗りつぶしや任意の模
様パターンによる塗りつぶし、また、ペン先の形状を変
更、更にカラー化といった拡張にも容易に適用すること
ができる。
のペン先形状種が矩形と円の2種類を示したが、他の閉
じた任意形状をペン先形状としてもいいし、筆圧を感知
してドットサイズを変更してもよい。
つぶし方法によれば、塗りつぶし処理を行なうための所
定のサイズの塗りつぶし領域の移動に伴って塗りつぶし
領域内に、塗りつぶしの対象となる図形を構成する描画
ドットが存在するか否かを判断し、該判断により前記塗
りつぶし領域内に前記図形を構成する描画ドットが存在
すると判断された場合、前記描画ドットで形成される前
記図形の境界と、前記塗りつぶし領域の内、前記塗りつ
ぶし領域の中心を含むことにより特定される前記塗りつ
ぶし領域の部分領域に対して、塗りつぶし処理を行なう
ので、あるサイズの塗りつぶし領域を有するペンで自由
に塗りを行いながらも、図等のデータがあれば、その領
域部分で、あるサイズの塗りつぶし領域がはみ出すこと
なく塗りを行うができる。
ることができるという効果を奏する。
するデータ処理装置の一例を示すブロック図である。
する図である。
するフローチャートである
細手順の一例を示すフローチャートである。
し領域判断処理の詳細手順を示すフローチャートであ
る。
細手順の一例を示すフローチャートである。
Claims (1)
- 【請求項1】 塗りつぶし処理を行なうための所定のサ
イズの塗りつぶし領域の移動に伴って、前記塗りつぶし
領域内に、塗りつぶしの対象となる図形を構成する描画
ドットが存在するか否かを判断し、 前記判断により前記塗りつぶし領域内に前記図形を構成
する描画ドットが存在すると判断された場合、前記描画
ドットで形成される前記図形の境界と、前記塗りつぶし
領域の内、前記塗りつぶし領域の中心を含むことにより
特定される前記塗りつぶし領域の部分領域に対して、塗
りつぶし処理を行なうことを有したことを特徴とする塗
りつぶし方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16840793A JP3078955B2 (ja) | 1993-06-16 | 1993-06-16 | 塗りつぶし方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16840793A JP3078955B2 (ja) | 1993-06-16 | 1993-06-16 | 塗りつぶし方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0773335A JPH0773335A (ja) | 1995-03-17 |
JP3078955B2 true JP3078955B2 (ja) | 2000-08-21 |
Family
ID=15867555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16840793A Expired - Fee Related JP3078955B2 (ja) | 1993-06-16 | 1993-06-16 | 塗りつぶし方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3078955B2 (ja) |
-
1993
- 1993-06-16 JP JP16840793A patent/JP3078955B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
遠藤悦郎「Adobe Photoshop AtoZ」,株式会社ビー・エヌ・エヌ,1993年2月15日,p.60およびp.122−123 |
Also Published As
Publication number | Publication date |
---|---|
JPH0773335A (ja) | 1995-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2619962B2 (ja) | 図形編集方法および装置 | |
EP0635808A2 (en) | Method and apparatus for operating on the model data structure on an image to produce human perceptible output in the context of the image | |
WO1992009966A1 (en) | Image synthesis and processing | |
JPH0584540B2 (ja) | ||
JPH0793527A (ja) | オブジェクト指向グラフィック入力及びディスプレイシステム | |
JP3078955B2 (ja) | 塗りつぶし方法 | |
JPH08255221A (ja) | 文字図形入力編集装置 | |
JPH01316804A (ja) | 輪郭形状定義方法 | |
JPH08263688A (ja) | 手書き入力情報処理方法および装置 | |
JPH07105395A (ja) | 情報処理装置 | |
EP0439333B1 (en) | Electronic image modification | |
US6848082B1 (en) | Reactor-based viewport clipping using arbitrary graphical entities | |
JP2935336B2 (ja) | 図形入出力装置 | |
JP2005234610A (ja) | 手書き入力図形編集システム | |
JPH10105334A (ja) | タッチパネルによる2点選択図形移動方法 | |
JP2751114B2 (ja) | 文字処理方法 | |
JP2695257B2 (ja) | データ処理装置 | |
GB2256118A (en) | Image synthesis and processing | |
WO2014038217A1 (ja) | テクスチャ描画支援装置 | |
JPH06110993A (ja) | 文書作成装置 | |
JPH08171646A (ja) | 図形作成装置 | |
JP2605690B2 (ja) | 画像作成装置 | |
JPH08287265A (ja) | 線分表示方法 | |
JPH0546728A (ja) | 三次元投影体生成方式 | |
JP2964778B2 (ja) | 図形データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080616 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090616 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090616 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100616 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110616 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120616 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |