JPH09204536A - 図形の描画方法 - Google Patents
図形の描画方法Info
- Publication number
- JPH09204536A JPH09204536A JP3542796A JP3542796A JPH09204536A JP H09204536 A JPH09204536 A JP H09204536A JP 3542796 A JP3542796 A JP 3542796A JP 3542796 A JP3542796 A JP 3542796A JP H09204536 A JPH09204536 A JP H09204536A
- Authority
- JP
- Japan
- Prior art keywords
- line
- coating
- code
- detected
- data
- 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
- 238000000034 method Methods 0.000 title claims description 29
- 238000010422 painting Methods 0.000 claims abstract description 37
- 239000003973 paint Substances 0.000 claims abstract description 6
- 238000000576 coating method Methods 0.000 claims description 62
- 239000011248 coating agent Substances 0.000 claims description 57
- 238000001514 detection method Methods 0.000 claims description 7
- 238000013075 data extraction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007591 painting process Methods 0.000 description 2
- 238000005429 filling process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】
【課題】 ビデオメモリに対するアクセス回数を可及的
に減少し、図形の塗り込み処理に要する時間の大幅な短
縮を図ることを可能とする。 【解決手段】 ビデオメモリに対するアクセスを必要と
する1ライン分の塗り込みを終了する毎に、CPU内部
のレジスタ間の演算動作でその内容が判定できる塗込ラ
インの端部間に不連続状態が存在するか否かを調べ、不
連続状態が存在すると判定されたときにのみ、更にビデ
オメモリにアクセスして中抜き状態の部分が存在するか
否かを調べる。
に減少し、図形の塗り込み処理に要する時間の大幅な短
縮を図ることを可能とする。 【解決手段】 ビデオメモリに対するアクセスを必要と
する1ライン分の塗り込みを終了する毎に、CPU内部
のレジスタ間の演算動作でその内容が判定できる塗込ラ
インの端部間に不連続状態が存在するか否かを調べ、不
連続状態が存在すると判定されたときにのみ、更にビデ
オメモリにアクセスして中抜き状態の部分が存在するか
否かを調べる。
Description
【0001】
【発明の属する技術分野】この発明は図形の描画方法で
あって、特に線画状に描かれた閉空間内を任意の色ある
いはパターンで塗り込むものに関する。
あって、特に線画状に描かれた閉空間内を任意の色ある
いはパターンで塗り込むものに関する。
【0002】
【従来の技術】従来この種の描画方法は、表示画面上に
所定の境界色で円や矩形の様な任意の図形を描いたあと
その図形中の1点を指示すると、その指示点を含む境界
色で挟まれる部分を一直線状に横方向に塗り込んだあ
と、その塗込ラインの上下それぞれにおけるラインを検
索し、中抜き状態の部分が無いか調べることが行われて
いる。
所定の境界色で円や矩形の様な任意の図形を描いたあと
その図形中の1点を指示すると、その指示点を含む境界
色で挟まれる部分を一直線状に横方向に塗り込んだあ
と、その塗込ラインの上下それぞれにおけるラインを検
索し、中抜き状態の部分が無いか調べることが行われて
いる。
【0003】
【発明が解決しようとする課題】しかしながら、上記し
た描画方法にあっては、1ライン分の塗り込みを行う毎
に3ライン分についてビデオメモリに対するアクセスが
必要となる。ところで、コンピュータ装置におけるデー
タ処理速度は、数値の比較動作の様なCPU内部におけ
る演算処理それ自体よりも、メモリなどの周辺装置に対
するアクセス回数に大きく依存し、当該アクセスの減少
を図ることが望まれていた。
た描画方法にあっては、1ライン分の塗り込みを行う毎
に3ライン分についてビデオメモリに対するアクセスが
必要となる。ところで、コンピュータ装置におけるデー
タ処理速度は、数値の比較動作の様なCPU内部におけ
る演算処理それ自体よりも、メモリなどの周辺装置に対
するアクセス回数に大きく依存し、当該アクセスの減少
を図ることが望まれていた。
【0004】本発明は上記要望に鑑みてなされたもので
あって、図形の不連続部分を検出したときにのみ中抜け
部分を検出することにより、ビデオメモリに対するアク
セス回数が可及的に減少され、図形の塗り込み処理に要
する時間の大幅な短縮を図ることを可能とする描画方法
を提供することを目的とする。
あって、図形の不連続部分を検出したときにのみ中抜け
部分を検出することにより、ビデオメモリに対するアク
セス回数が可及的に減少され、図形の塗り込み処理に要
する時間の大幅な短縮を図ることを可能とする描画方法
を提供することを目的とする。
【0005】
【課題を解決するための手段】本発明にかかる図形の描
画方法は、図1ないし図4に示す如く、ビデオメモリ1
6上に境界コードをもって区画された閉空間23内を、
例えば表示画面18上における横方向に伸びる直線状の
塗込ライン20をもって、それと直交する縦方向に塗り
込み位置を移行させながら塗り込む方法である。
画方法は、図1ないし図4に示す如く、ビデオメモリ1
6上に境界コードをもって区画された閉空間23内を、
例えば表示画面18上における横方向に伸びる直線状の
塗込ライン20をもって、それと直交する縦方向に塗り
込み位置を移行させながら塗り込む方法である。
【0006】更に2つの境界コードで挟まれる部分を、
塗込ライン20で順次に塗り込んでいく塗込工程と、図
4(c)の如く、現在の塗込ライン20aと前回の塗込
ライン20bにおける両端間に不連続状態が存在するか
否かを検出する不連続状態検出工程と、不連続状態が検
出されると、現在の塗込ライン20aまたは前回の塗込
ライン20bと同一直線上に、境界コードで挟まれる中
抜き部分24があるか否かを検出する中抜き部分検出工
程と、中抜き部分24の存在が検出されると、その中抜
き部分24に関するデータを順次保存するデータ保存工
程と、上記した塗込工程における1つの走査方向に対す
る塗り込み操作が終了すると、前記データ保存工程で保
存されたデータを、次の塗込工程における塗り込み情報
として取り出すデータ取出工程とを備えている。
塗込ライン20で順次に塗り込んでいく塗込工程と、図
4(c)の如く、現在の塗込ライン20aと前回の塗込
ライン20bにおける両端間に不連続状態が存在するか
否かを検出する不連続状態検出工程と、不連続状態が検
出されると、現在の塗込ライン20aまたは前回の塗込
ライン20bと同一直線上に、境界コードで挟まれる中
抜き部分24があるか否かを検出する中抜き部分検出工
程と、中抜き部分24の存在が検出されると、その中抜
き部分24に関するデータを順次保存するデータ保存工
程と、上記した塗込工程における1つの走査方向に対す
る塗り込み操作が終了すると、前記データ保存工程で保
存されたデータを、次の塗込工程における塗り込み情報
として取り出すデータ取出工程とを備えている。
【0007】上記した中抜き部分検出工程は、図4
(c)の如く、前回の塗込ライン20bにおける端部位
置L1・R1より現在の塗込ライン20aにおける端部
L2・R2が外側にはみ出る場合は、前回の塗込ライン
20bと同一線上に境界コードで挟まれる中抜き部分2
4があるか否かを検出する。一方、図4(d)の様に前
回の塗込ライン20bにおける端部位置L1・R1より
現在の塗込ライン20aにおける端部L2・R2が内側
に入り込む場合は、今回の塗込ライン20aと同一線上
に境界コードで挟まれる中抜き部分24があるか否かを
検出する。
(c)の如く、前回の塗込ライン20bにおける端部位
置L1・R1より現在の塗込ライン20aにおける端部
L2・R2が外側にはみ出る場合は、前回の塗込ライン
20bと同一線上に境界コードで挟まれる中抜き部分2
4があるか否かを検出する。一方、図4(d)の様に前
回の塗込ライン20bにおける端部位置L1・R1より
現在の塗込ライン20aにおける端部L2・R2が内側
に入り込む場合は、今回の塗込ライン20aと同一線上
に境界コードで挟まれる中抜き部分24があるか否かを
検出する。
【0008】また上記したデータ保存工程は、上記中抜
き部分検出工程において現在の塗込ライン20a上で中
抜き部分24が検出されると、その中抜き部分24にお
ける座標位置データと現在の塗込ライン20aの走査方
向と同一の方向データとを1組のデータとする一方、上
記中抜き部分検出工程において前回の塗込ライン20b
上で中抜き部分24が検出されると、その中抜き部分2
4における座標位置データと現在の塗込ライン20aの
走査方向と逆の方向データとを1組の塗り込み情報とし
てスタック22上に保存することが好ましい。
き部分検出工程において現在の塗込ライン20a上で中
抜き部分24が検出されると、その中抜き部分24にお
ける座標位置データと現在の塗込ライン20aの走査方
向と同一の方向データとを1組のデータとする一方、上
記中抜き部分検出工程において前回の塗込ライン20b
上で中抜き部分24が検出されると、その中抜き部分2
4における座標位置データと現在の塗込ライン20aの
走査方向と逆の方向データとを1組の塗り込み情報とし
てスタック22上に保存することが好ましい。
【0009】更にまた上記した塗込工程は、境界コード
の次の座標位置を始点とし、次の境界コードが検出され
る直前の座標位置を終点として直線状に塗込コードで置
換して行くとともに、前記始点を走査方向に順次移行さ
せるものとし、始点の走査方向直近におけるコードが境
界コードの場合は、更に終点方向にコードを検索し、境
界コード以外のコードが検出されるとその位置を次回の
始点とし、始点の走査方向直近におけるコードが境界コ
ードでない場合は、更に終点方向とは逆方向にコードを
検索し、境界コードを検出するとその直前の座標位置を
次回の始点としてもよい。
の次の座標位置を始点とし、次の境界コードが検出され
る直前の座標位置を終点として直線状に塗込コードで置
換して行くとともに、前記始点を走査方向に順次移行さ
せるものとし、始点の走査方向直近におけるコードが境
界コードの場合は、更に終点方向にコードを検索し、境
界コード以外のコードが検出されるとその位置を次回の
始点とし、始点の走査方向直近におけるコードが境界コ
ードでない場合は、更に終点方向とは逆方向にコードを
検索し、境界コードを検出するとその直前の座標位置を
次回の始点としてもよい。
【0010】上記した塗込工程で次回の始点が検出され
ないと、上記したデータ取出工程に移って、スタック2
2内に保存された塗込情報21を取り出す一方、該デー
タ取出工程で全ての塗込情報21を取り出したことが判
定されると、塗込動作を終了する様に構成することがで
きる。
ないと、上記したデータ取出工程に移って、スタック2
2内に保存された塗込情報21を取り出す一方、該デー
タ取出工程で全ての塗込情報21を取り出したことが判
定されると、塗込動作を終了する様に構成することがで
きる。
【0011】上記した構成において、先ずディスプレイ
17の表示画面18上に従来の描画機能を利用し、図3
(a)に例示する如く、予め設定した境界色で他と区別
しながら線画状に図形を描く。更にその図形中に、塗り
込むべき色および閉空間23内の1点を指定することに
より、本発明の描画方法による塗り込みが開始される。
17の表示画面18上に従来の描画機能を利用し、図3
(a)に例示する如く、予め設定した境界色で他と区別
しながら線画状に図形を描く。更にその図形中に、塗り
込むべき色および閉空間23内の1点を指定することに
より、本発明の描画方法による塗り込みが開始される。
【0012】ここで図1のステップ1において、前記し
た指定点を中心として1ライン分の塗り込みを行い、そ
の1ライン毎の塗り込みを1つの方向に向けて続ける。
更に、ステップ2で前回の塗込ライン20bと現在の塗
込ライン20aにおける両端座標を比較し、それが連続
していれば次のラインにおける塗り込み処理を持続す
る。
た指定点を中心として1ライン分の塗り込みを行い、そ
の1ライン毎の塗り込みを1つの方向に向けて続ける。
更に、ステップ2で前回の塗込ライン20bと現在の塗
込ライン20aにおける両端座標を比較し、それが連続
していれば次のラインにおける塗り込み処理を持続す
る。
【0013】しかしながら、ステップ2で不連続状態が
検出されると、その不連続部分に中抜き状態の隅部が存
在する可能性があるので、現在または前回の塗込ライン
20と同一線上を検索して、境界色で挟まれる中抜き部
分24があるか否かをステップ3で調べる。
検出されると、その不連続部分に中抜き状態の隅部が存
在する可能性があるので、現在または前回の塗込ライン
20と同一線上を検索して、境界色で挟まれる中抜き部
分24があるか否かをステップ3で調べる。
【0014】そのとき、中抜き部分24が存在すると、
ステップ4で例えばその位置の座標と塗り方向とを1組
の塗込情報21として保存したあと、前記した1ライン
毎の塗り込み動作を続ける。
ステップ4で例えばその位置の座標と塗り方向とを1組
の塗込情報21として保存したあと、前記した1ライン
毎の塗り込み動作を続ける。
【0015】更に、ステップ5で1つの隅部における塗
り込みが終了したことが判定されると、ステップ6で保
存された塗込情報21があるか否かを調べ、塗込情報2
1が残っているのであればそれを取り出してステップ1
の塗込動作を続けるが、全ての塗込情報21を処理し終
えたことが判定されると、塗り込み動作を終了するので
ある。
り込みが終了したことが判定されると、ステップ6で保
存された塗込情報21があるか否かを調べ、塗込情報2
1が残っているのであればそれを取り出してステップ1
の塗込動作を続けるが、全ての塗込情報21を処理し終
えたことが判定されると、塗り込み動作を終了するので
ある。
【0016】
【発明の効果】本発明は上記の如く、ビデオメモリ16
に対するアクセスを必要とする1ライン分の塗り込みを
終了する毎に、CPU10内部のレジスタ間の演算動作
でその内容が判定できる塗込ライン20の端部間の不連
続を調べ、不連続が判定されたときにのみ更にビデオメ
モリ16にアクセスして中抜き状態の部分が存在するか
否かを調べる様に構成したので、ビデオメモリ16に対
するアクセス回数が可及的に減少され、図形の塗り込み
処理に要する時間の大幅な短縮が図れる。
に対するアクセスを必要とする1ライン分の塗り込みを
終了する毎に、CPU10内部のレジスタ間の演算動作
でその内容が判定できる塗込ライン20の端部間の不連
続を調べ、不連続が判定されたときにのみ更にビデオメ
モリ16にアクセスして中抜き状態の部分が存在するか
否かを調べる様に構成したので、ビデオメモリ16に対
するアクセス回数が可及的に減少され、図形の塗り込み
処理に要する時間の大幅な短縮が図れる。
【0017】
【発明の実施の形態】以下本発明にかかる描画方法を、
RISC形式のCPUを用いた小型コンピュータによる
描画装置に実施した一例を示すがこれに限らず、パソコ
ンなど汎用あるいは専用を問わず描画機能を備えた各種
のコンピュータ装置に対しても略同様に実施出来ること
は勿論である。
RISC形式のCPUを用いた小型コンピュータによる
描画装置に実施した一例を示すがこれに限らず、パソコ
ンなど汎用あるいは専用を問わず描画機能を備えた各種
のコンピュータ装置に対しても略同様に実施出来ること
は勿論である。
【0018】本発明を実施する小型コンピュータは、図
2にその全体的な構成を概略的に示す如く、CPU10
をその制御の中心として備え、ROM11やRAM12
などのメモリ、あるいは各種のI/0装置13をアドレ
スバス、データバスや制御バスなどの各種バスライン1
4を介して並列に接続する。更にCPU10で計算され
た図形データは、図3の如く、ビデオコントローラ15
を介してビデオメモリ16上にビットマップ状に書き込
む一方、書き込まれたデータをディスプレイ17に読み
出して、表示画面18上にドットの集合として表示す
る。
2にその全体的な構成を概略的に示す如く、CPU10
をその制御の中心として備え、ROM11やRAM12
などのメモリ、あるいは各種のI/0装置13をアドレ
スバス、データバスや制御バスなどの各種バスライン1
4を介して並列に接続する。更にCPU10で計算され
た図形データは、図3の如く、ビデオコントローラ15
を介してビデオメモリ16上にビットマップ状に書き込
む一方、書き込まれたデータをディスプレイ17に読み
出して、表示画面18上にドットの集合として表示す
る。
【0019】ディスプレイ17は、図3(a)の様に、
左上隅を原点とし、例えば最大で横(X軸)方向に10
24ドット、縦(Y軸)方向に512ラインを画面18
上に表示できる様にその解像度が設定されるとともに、
1ピクセルを8ビットのデータで色彩表示する様に構成
する。なお以下において、X軸における原点方向を「左
方向」、原点から離れる方向を「右方向」と、Y軸にお
ける原点方向を「上方向」、原点から離れる方向を「下
方向」とそれぞれ呼ぶ。
左上隅を原点とし、例えば最大で横(X軸)方向に10
24ドット、縦(Y軸)方向に512ラインを画面18
上に表示できる様にその解像度が設定されるとともに、
1ピクセルを8ビットのデータで色彩表示する様に構成
する。なお以下において、X軸における原点方向を「左
方向」、原点から離れる方向を「右方向」と、Y軸にお
ける原点方向を「上方向」、原点から離れる方向を「下
方向」とそれぞれ呼ぶ。
【0020】一方ビデオメモリ16上には、図3(b)
の様に表示画面18の解像度に対応させ、横方向に10
24バイト、縦方向に512バイトが最低でも確保され
る様に実メモリ空間19が設定されている。従って、表
示画面18上のドット数とビデオメモリ16上の番地数
とは互いに一致する。
の様に表示画面18の解像度に対応させ、横方向に10
24バイト、縦方向に512バイトが最低でも確保され
る様に実メモリ空間19が設定されている。従って、表
示画面18上のドット数とビデオメモリ16上の番地数
とは互いに一致する。
【0021】本発明は上記した構成にあって、図2の様
に表示画面18上に、従来と略同様な描画機能を用いて
任意の線画状の図形を描いた際、更に図5および6の手
順にしたがって、その図形中を任意の色彩あるいはパタ
ーンで塗り込むデータ処理手順にその特徴を有する。
に表示画面18上に、従来と略同様な描画機能を用いて
任意の線画状の図形を描いた際、更に図5および6の手
順にしたがって、その図形中を任意の色彩あるいはパタ
ーンで塗り込むデータ処理手順にその特徴を有する。
【0022】かかる塗り込み処理を行うべき図形は、図
3(a)の様に、予め設定した境界色をもって、ディス
プレイ17の表示画面18上に互いに連続したドットの
集合として表示される。一方、その境界色に対応した境
界コードが、表示画面18上における表示座標に対応さ
せてビデオメモリ16上に書き込まれている。
3(a)の様に、予め設定した境界色をもって、ディス
プレイ17の表示画面18上に互いに連続したドットの
集合として表示される。一方、その境界色に対応した境
界コードが、表示画面18上における表示座標に対応さ
せてビデオメモリ16上に書き込まれている。
【0023】従って、境界色で区画された閉空間23内
の塗込色を選択すると、閉空間23内における塗り込む
べき範囲は、上記した境界色と塗込色からなる設定色と
それ以外の色とで区別でき、図4(a)の如く閉空間2
3内の一点Aを指定すると、その点Aを基点として以下
の塗り込み処理動作が開始される。
の塗込色を選択すると、閉空間23内における塗り込む
べき範囲は、上記した境界色と塗込色からなる設定色と
それ以外の色とで区別でき、図4(a)の如く閉空間2
3内の一点Aを指定すると、その点Aを基点として以下
の塗り込み処理動作が開始される。
【0024】先ず、図5におけるステップ30で、図4
(a)の様にA点から左方向に直線状に塗込色による塗
り込みを行う。この塗り込みは、設定色が検出されるま
で行われ、その座標位置をL1とする。一方、A点から
右方向にも設定色を検出するまで直線状に塗込色による
塗り込みが行われ、その終点をR1とすることにより、
以下における塗り込み処理時の比較点L1およびR1が
設定されることになる。
(a)の様にA点から左方向に直線状に塗込色による塗
り込みを行う。この塗り込みは、設定色が検出されるま
で行われ、その座標位置をL1とする。一方、A点から
右方向にも設定色を検出するまで直線状に塗込色による
塗り込みが行われ、その終点をR1とすることにより、
以下における塗り込み処理時の比較点L1およびR1が
設定されることになる。
【0025】本実施例にあっては、塗り込むべき範囲
を、左端Lを始点として右端Rに向けて直線状に塗込色
で置換していくとともに、その塗り込み動作を上または
下方向の一方向に対してすすめて行く。更に、1つの隅
部を単位として塗り込んで行くとともに、その塗り込み
途中に他の隅部が見つかるとその情報のみを一時的に記
憶しておいて塗込をそのまま続け、その塗り込み処理が
終了してから先の情報を取り出して他の隅部の塗り込み
処理を行う。
を、左端Lを始点として右端Rに向けて直線状に塗込色
で置換していくとともに、その塗り込み動作を上または
下方向の一方向に対してすすめて行く。更に、1つの隅
部を単位として塗り込んで行くとともに、その塗り込み
途中に他の隅部が見つかるとその情報のみを一時的に記
憶しておいて塗込をそのまま続け、その塗り込み処理が
終了してから先の情報を取り出して他の隅部の塗り込み
処理を行う。
【0026】すなわち、1つの閉空間23内にある複数
の隅部に対し、各塗込みラインの始点である左端の座標
位置Lと塗り方向dとを1組の塗込情報21とし、この
塗込情報21をRAM12上に設定されたスタック22
内に格納しておいて、1つの隅部の塗り込みが終了する
毎にスタック22内から塗込情報21を取り出す様に構
成している。
の隅部に対し、各塗込みラインの始点である左端の座標
位置Lと塗り方向dとを1組の塗込情報21とし、この
塗込情報21をRAM12上に設定されたスタック22
内に格納しておいて、1つの隅部の塗り込みが終了する
毎にスタック22内から塗込情報21を取り出す様に構
成している。
【0027】そこで、ステップ31において、上記した
比較点L1およびR1を含むラインを基準とし、その上
下方向に向かう2つの隅部に対する塗込情報21を取得
し、スタック22に保存する。
比較点L1およびR1を含むラインを基準とし、その上
下方向に向かう2つの隅部に対する塗込情報21を取得
し、スタック22に保存する。
【0028】ステップ31および42で行われる始点デ
ータの検出動作は、図6のステップ50において、図7
に例示する如く比較点L1の座標aから1つだけ塗り方
向(Y軸方向)に座標位置を進めたのち、ステップ51
でその位置の色を調べ、その色が図7の斜線で示すa”
の様に設定色であるなら、ステップ52で右方向に比較
点R1と同一のX座標位置まで検索をする。ステップ5
3で設定色以外の色が検出されると、ステップ54でそ
の座標位置cを始点L2とするが、検出されないとステ
ップ55で始点L2が存在しないものと判定する。
ータの検出動作は、図6のステップ50において、図7
に例示する如く比較点L1の座標aから1つだけ塗り方
向(Y軸方向)に座標位置を進めたのち、ステップ51
でその位置の色を調べ、その色が図7の斜線で示すa”
の様に設定色であるなら、ステップ52で右方向に比較
点R1と同一のX座標位置まで検索をする。ステップ5
3で設定色以外の色が検出されると、ステップ54でそ
の座標位置cを始点L2とするが、検出されないとステ
ップ55で始点L2が存在しないものと判定する。
【0029】一方、ステップ51で設定色以外の色が図
7のa’の様に検出された場合、ステップ56でX座標
の原点まで検索をする。ここでステップ57で設定色が
検出されると、ステップ58でその1つ手前の座標位置
bを始点L2とし、検出されないとステップ55で始点
が存在しないものと判定する。
7のa’の様に検出された場合、ステップ56でX座標
の原点まで検索をする。ここでステップ57で設定色が
検出されると、ステップ58でその1つ手前の座標位置
bを始点L2とし、検出されないとステップ55で始点
が存在しないものと判定する。
【0030】そこで、図5のステップ31において、図
4(b)の如くL1の下方向に向かう隅部の始点の座標
をB、上方向に向かう隅部における座標をCがスタック
22上に保存されるので、ステップ32から始まる塗り
込み工程に入る。
4(b)の如くL1の下方向に向かう隅部の始点の座標
をB、上方向に向かう隅部における座標をCがスタック
22上に保存されるので、ステップ32から始まる塗り
込み工程に入る。
【0031】先ずステップ32で、処理中の始点座標L
2がないので、ステップ34でスタック22から塗込情
報21のC座標を取り出し、始点座標L2とする。更
に、ステップ35で始点L2から右方向に向けて設定色
が検出されるまで1ライン分だけ塗込色で置換して行
き、終点をR2とする。
2がないので、ステップ34でスタック22から塗込情
報21のC座標を取り出し、始点座標L2とする。更
に、ステップ35で始点L2から右方向に向けて設定色
が検出されるまで1ライン分だけ塗込色で置換して行
き、終点をR2とする。
【0032】ここでステップ36において上記した比較
点のL1と始点L2を、R1と終点R2とをそれぞれ比
較し、両者が互いに連続した点の場合はL2をL1に、
R2をR1に変更したあと、上記したステップ35を繰
り返す。
点のL1と始点L2を、R1と終点R2とをそれぞれ比
較し、両者が互いに連続した点の場合はL2をL1に、
R2をR1に変更したあと、上記したステップ35を繰
り返す。
【0033】しかし、比較点との不連続が検出される
と、その間には塗り残した中抜き状態の部分の存在する
可能性があるので、ステップ37に移って、中抜き部分
24の検出工程に入る。
と、その間には塗り残した中抜き状態の部分の存在する
可能性があるので、ステップ37に移って、中抜き部分
24の検出工程に入る。
【0034】かかる工程にあっては、L2のX座標がL
1のX座標より小さいか、R2のX座標がR1のX座標
より大きい場合、前回の塗込ライン20bの延長線上に
一点鎖線で示す中抜き部分24が存在する可能性がある
ので、前回の塗込ライン20上を全体に亘って検索す
る。ここで中抜き部分24が検出されると、ステップ3
9でその始点座標Lと、現在の塗り方向とは逆方向の塗
り方向dとを塗込情報21としてスタック22上に記憶
する。
1のX座標より小さいか、R2のX座標がR1のX座標
より大きい場合、前回の塗込ライン20bの延長線上に
一点鎖線で示す中抜き部分24が存在する可能性がある
ので、前回の塗込ライン20上を全体に亘って検索す
る。ここで中抜き部分24が検出されると、ステップ3
9でその始点座標Lと、現在の塗り方向とは逆方向の塗
り方向dとを塗込情報21としてスタック22上に記憶
する。
【0035】上記とは逆に、L2のX座標がL1のX座
標より大きいか、R2のX座標がR1のX座標より小さ
い場合には、ステップ40において現在の塗込ライン2
0aと同一ライン上を全体に亘って検索する。ここで中
抜き部分24が検出されると、ステップ41でその始点
座標と、現在の塗り方向とを塗込情報21としてスタッ
ク22上に記憶する。
標より大きいか、R2のX座標がR1のX座標より小さ
い場合には、ステップ40において現在の塗込ライン2
0aと同一ライン上を全体に亘って検索する。ここで中
抜き部分24が検出されると、ステップ41でその始点
座標と、現在の塗り方向とを塗込情報21としてスタッ
ク22上に記憶する。
【0036】例えば、図4(c)の状態にあっては、R
1よりR2の方がX座標の値が大きいので、前回の塗込
ライン20bの延長上を更に検索し、始点位置Dと下方
向の塗り方向をスタック22に保存する。図4(d)の
場合にあっては、R1よりR2のX座標が小さいので、
現在の塗込ライン20aの延長上を更に検索し、始点位
置Eと上方向の塗り方向をスタック22に保存する。
1よりR2の方がX座標の値が大きいので、前回の塗込
ライン20bの延長上を更に検索し、始点位置Dと下方
向の塗り方向をスタック22に保存する。図4(d)の
場合にあっては、R1よりR2のX座標が小さいので、
現在の塗込ライン20aの延長上を更に検索し、始点位
置Eと上方向の塗り方向をスタック22に保存する。
【0037】上記の様に、中抜き部分24が検出される
毎に塗込情報21をスタック22にPUSHしながら塗
込ライン20による塗込動作を続け、ステップ42およ
び32でそれ以上始点の存在が認められない場合、ステ
ップ34で図4(e)の様にスタック22から保存した
始点座標および塗り方向を取り出して隅部を塗り込み、
ステップ33でスタック22上に塗込情報21がなくな
るまで上記動作を繰り返すことにより、閉空間23内の
塗り込みが完了するのである。
毎に塗込情報21をスタック22にPUSHしながら塗
込ライン20による塗込動作を続け、ステップ42およ
び32でそれ以上始点の存在が認められない場合、ステ
ップ34で図4(e)の様にスタック22から保存した
始点座標および塗り方向を取り出して隅部を塗り込み、
ステップ33でスタック22上に塗込情報21がなくな
るまで上記動作を繰り返すことにより、閉空間23内の
塗り込みが完了するのである。
【図1】本発明の概略的な手順を示す流れ図である。
【図2】本発明を実施するコンピュータ装置の概略を示
すブロック図である。
すブロック図である。
【図3】表示画面とビデオメモリの関係を示す説明図で
ある。
ある。
【図4】塗込情報の取得手順を示す説明図である。
【図5】図形の塗込手順の詳細を示す流れ図である。
【図6】始点座標の取得手順を示す流れ図である。
【図7】始点座標の取得手順を示す説明図である。
10 CPU 11 ROM 12 RAM 13 I/0装置 14 バスライン 15 ビデオコントローラ 16 ビデオメモリ 17 ディスプレイ 18 画面 19 実メモリ空間 20 塗込ライン 21 塗込情報 22 スタック 23 閉空間 24 中抜き部分
Claims (5)
- 【請求項1】 ビデオメモリ上に境界コードをもって区
画された閉空間内を、直線状の塗込ラインをもってそれ
と直交する1つの方向に走査しながら塗り込む方法であ
って、 2つの境界コードで挟まれる部分を、塗込ラインで順次
に塗り込んでいく塗込工程と、 現在の塗込ラインと前回の塗込ラインにおける両端間に
不連続状態が存在するか否かを検出する不連続状態検出
工程と、 不連続状態が検出されると、現在の塗込ラインまたは前
回の塗込ラインと同一直線上に、境界コードで挟まれる
中抜き部分があるか否かを検出する中抜き部分検出工程
と、 中抜き部分の存在が検出されると、その中抜き部分に関
するデータを順次保存するデータ保存工程と、 上記した塗込工程における1つの走査方向に対する塗り
込み操作が終了すると、前記データ保存工程で保存され
たデータを、次の塗込工程における塗り込み情報として
取り出すデータ取出工程とを備えた図形の描画方法。 - 【請求項2】 上記した中抜き部分検出工程は、 前回の塗込ラインにおける端部位置より現在の塗込ライ
ンにおける端部が外側にはみ出る場合は、前回の塗込ラ
インと同一線上に境界コードで挟まれる中抜き部分があ
るか否かを検出する一方、 前回の塗込ラインにおける端部位置より現在の塗込ライ
ンにおける端部が内側に入り込む場合は、現在の塗込ラ
インと同一線上に境界コードで挟まれる中抜き部分があ
るか否かを検出する請求項1記載の図形の描画方法。 - 【請求項3】 上記したデータ保存工程は、 上記中抜き部分検出工程において現在の塗込ライン上で
中抜き部分が検出されると、その中抜き部分における座
標位置データと現在の塗込ラインの走査方向と同一の方
向データとを1組のデータとする一方、 上記中抜き部分検出工程において前回の塗込ライン上で
中抜き部分が検出されると、その中抜き部分における座
標位置データと現在の塗込ラインの走査方向と逆の方向
データとを1組の塗り込み情報としてスタック上に保存
する請求項2記載の図形の描画方法。 - 【請求項4】 上記した塗込工程は、 一方の境界コードの次の座標位置を始点とし、他方の境
界コードが検出される直前の座標位置を終点として直線
状に塗込コードで置換して行くとともに、前記始点を走
査方向に順次移行させるものであって、 始点の走査方向直近におけるコードが境界コードの場合
は、更に終点方向にコードを検索し、境界コード以外の
コードが検出されるとその位置を次回の始点とし、 始点の走査方向直近におけるコードが境界コードでない
場合は、更に終点方向とは逆方向にコードを検索し、境
界コードを検出するとその直前の座標位置を次回の始点
とする請求項3記載の図形の描画方法。 - 【請求項5】 上記した塗込工程で次回の始点が検出さ
れないと、上記したデータ取出工程に移って、スタック
内に保存された塗込情報を取り出す一方、 該データ取出工程で全ての塗込情報を取り出したことが
判定されると、塗込動作を終了する請求項4記載の図形
の描画方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3542796A JPH09204536A (ja) | 1996-01-29 | 1996-01-29 | 図形の描画方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3542796A JPH09204536A (ja) | 1996-01-29 | 1996-01-29 | 図形の描画方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09204536A true JPH09204536A (ja) | 1997-08-05 |
Family
ID=12441574
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3542796A Pending JPH09204536A (ja) | 1996-01-29 | 1996-01-29 | 図形の描画方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09204536A (ja) |
-
1996
- 1996-01-29 JP JP3542796A patent/JPH09204536A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4779081A (en) | Graphics in display unit | |
| JP2891616B2 (ja) | 仮ラベル割付処理方式と実ラベル割付処理方式 | |
| JP3264619B2 (ja) | 画像処理装置および方法 | |
| JPH09204536A (ja) | 図形の描画方法 | |
| KR960003072B1 (ko) | 폰트 데이타 처리장치 | |
| JPS5947664A (ja) | 画像ペイント処理方式 | |
| JPH091871A (ja) | 印刷装置および印刷装置の描画制御方法 | |
| JP3296677B2 (ja) | 図形の描画方法および装置 | |
| US7667714B2 (en) | Patterned polygon rendering apparatus | |
| US5473751A (en) | High speed paint-out graphics device LSI and method of forming paint-out drawing | |
| JPH0675620A (ja) | 図形検査方法及び装置 | |
| JP3082391B2 (ja) | 画像処理装置 | |
| JP3671263B2 (ja) | 原稿イメージ出力装置 | |
| JPS6283790A (ja) | 画像処理装置 | |
| JP2898812B2 (ja) | ペイント方法およびペイント装置 | |
| JPS60243772A (ja) | 表示装置における閉曲線内塗りつぶし方式 | |
| JP3051818B2 (ja) | セグメント描画方法及び該方法を用いた出力装置 | |
| JPH09212668A (ja) | 図形の塗込制御方法 | |
| JPS63313193A (ja) | 画像修飾方法 | |
| JP2835056B2 (ja) | 高品質文字パターン発生方式 | |
| JPH03175495A (ja) | アウトラインフォント展開装置 | |
| JPS63228383A (ja) | 画像処理装置 | |
| JPH0259871A (ja) | 画像処理装置および画像処理方法 | |
| JPH052651A (ja) | 塗りつぶし描画方式 | |
| JPH03168694A (ja) | アウトラインフォント展開方式 |