JPH0721397A - 多角形の塗りつぶし描画方法 - Google Patents
多角形の塗りつぶし描画方法Info
- Publication number
- JPH0721397A JPH0721397A JP5191960A JP19196093A JPH0721397A JP H0721397 A JPH0721397 A JP H0721397A JP 5191960 A JP5191960 A JP 5191960A JP 19196093 A JP19196093 A JP 19196093A JP H0721397 A JPH0721397 A JP H0721397A
- Authority
- JP
- Japan
- Prior art keywords
- position data
- polygon
- vertices
- pixels
- plotting
- 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
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】
【目的】 描画のため特殊な装置を用いることなく、ま
た描画時間の高速化を可能とする多角形の塗りつぶし描
画方法を提供する。 【構成】 複数のピクセルを配列してなる表示画面上
で、図形パターンに対応する前記ピクセルを塗りつぶす
ことにより多角形の描画を行なう多角形の塗りつぶし描
画方法において、描画を行なう多角形を表示画面の一方
向に沿って分割し、その分割により得られる多角形の境
界における位置データを求め、その一方向上の同一分割
において、多角形を内側にはさむ二つの位置データによ
って位置データの組を形成し(ステップS1)、その位
置データの組ではさまれるピクセルにドットを打って
(ステップS3)、多角形の描画を行なうことによって
多角形の塗りつぶしを行なう。
た描画時間の高速化を可能とする多角形の塗りつぶし描
画方法を提供する。 【構成】 複数のピクセルを配列してなる表示画面上
で、図形パターンに対応する前記ピクセルを塗りつぶす
ことにより多角形の描画を行なう多角形の塗りつぶし描
画方法において、描画を行なう多角形を表示画面の一方
向に沿って分割し、その分割により得られる多角形の境
界における位置データを求め、その一方向上の同一分割
において、多角形を内側にはさむ二つの位置データによ
って位置データの組を形成し(ステップS1)、その位
置データの組ではさまれるピクセルにドットを打って
(ステップS3)、多角形の描画を行なうことによって
多角形の塗りつぶしを行なう。
Description
【0001】
【産業上の利用分野】本発明は、表示装置上において図
形を表示するための描画方法に関し、特に閉曲線により
形成される多角形の内部を塗りつぶして表示を行なう多
角形の塗りつぶし描画方法に関する。
形を表示するための描画方法に関し、特に閉曲線により
形成される多角形の内部を塗りつぶして表示を行なう多
角形の塗りつぶし描画方法に関する。
【0002】
【従来の技術】一般に、CRT等の表示装置上に内部を
塗りつぶした図形を描画する場合がある。例えば、産業
用工作機械等に用いられる数値制御において、工作機械
による加工を行なう前に制御装置の画面上で切削状況の
シミュレーションを行い、加工プログラムの妥当性を検
証する場合がある。この切削状況のシミュレーションに
おいて、工具をアニメーション表示する際には、通常工
具刃先を単一色で塗りつぶして描画する場合が多い。
塗りつぶした図形を描画する場合がある。例えば、産業
用工作機械等に用いられる数値制御において、工作機械
による加工を行なう前に制御装置の画面上で切削状況の
シミュレーションを行い、加工プログラムの妥当性を検
証する場合がある。この切削状況のシミュレーションに
おいて、工具をアニメーション表示する際には、通常工
具刃先を単一色で塗りつぶして描画する場合が多い。
【0003】従来、この種の描画においては、特殊なグ
ラフィックアクセラレータにより描画を行なうか、また
は線で囲んだ閉領域内のピクセルを計算してそのピクセ
ルを塗りつぶすといった方法がとられている。
ラフィックアクセラレータにより描画を行なうか、また
は線で囲んだ閉領域内のピクセルを計算してそのピクセ
ルを塗りつぶすといった方法がとられている。
【0004】
【発明が解決しようとする課題】しかしながら、前記の
従来の塗りつぶし描画方法においては、以下のような問
題点を有している。
従来の塗りつぶし描画方法においては、以下のような問
題点を有している。
【0005】(1)従来のグラフィックアクセラレータ
による塗りつぶし描画方法では、特殊なグラフィックア
クセラレータ等の装置が必要であるという問題点があ
り、またそのためにコストが上昇するという問題点も有
している。
による塗りつぶし描画方法では、特殊なグラフィックア
クセラレータ等の装置が必要であるという問題点があ
り、またそのためにコストが上昇するという問題点も有
している。
【0006】(2)また、従来の図形を表す線により囲
まれた閉領域内のピクセルを計算してそのピクセルを塗
りつぶすという描画方法では、図形の移動の度に表示装
置上のピクセルの内、図形閉領域内のドットを打つピク
セルを再度計算する必要があり、その演算時間のために
描画処理が長時間化するという問題点がある。
まれた閉領域内のピクセルを計算してそのピクセルを塗
りつぶすという描画方法では、図形の移動の度に表示装
置上のピクセルの内、図形閉領域内のドットを打つピク
セルを再度計算する必要があり、その演算時間のために
描画処理が長時間化するという問題点がある。
【0007】また、この描画処理の長時間化により、ア
ニメーション表示を行なう際には、アニメーション自体
の速度が低下するという二次的な問題点も有している。
ニメーション表示を行なう際には、アニメーション自体
の速度が低下するという二次的な問題点も有している。
【0008】そこで、本発明は前記した従来の塗りつぶ
し描画方法の問題点を解決し、描画のため特殊な装置を
用いることなく、また描画時間の高速化を可能とする多
角形の塗りつぶし描画方法を提供することを目的とす
る。
し描画方法の問題点を解決し、描画のため特殊な装置を
用いることなく、また描画時間の高速化を可能とする多
角形の塗りつぶし描画方法を提供することを目的とす
る。
【0009】
【課題を解決するための手段】本発明は、前記目的を達
成するために、複数のピクセルを配列してなる表示画面
上で、多角形の図形パターンに対応する前記ピクセルを
塗りつぶすことにより図形の描画を行なう多角形の塗り
つぶし描画方法において、描画を行なう多角形を表示画
面の一方向に沿って分割し、その分割により得られる図
形の境界における位置データを求め、その一方向上の同
一分割において、多角形を内側にはさむ二つの位置デー
タによって位置データの組を形成し、その位置データの
組ではさまれるピクセルにドットを打つことにより多角
形の描画を行なうことによって、多角形の塗りつぶしを
行なうものである。
成するために、複数のピクセルを配列してなる表示画面
上で、多角形の図形パターンに対応する前記ピクセルを
塗りつぶすことにより図形の描画を行なう多角形の塗り
つぶし描画方法において、描画を行なう多角形を表示画
面の一方向に沿って分割し、その分割により得られる図
形の境界における位置データを求め、その一方向上の同
一分割において、多角形を内側にはさむ二つの位置デー
タによって位置データの組を形成し、その位置データの
組ではさまれるピクセルにドットを打つことにより多角
形の描画を行なうことによって、多角形の塗りつぶしを
行なうものである。
【0010】また、多角形を特定する位置データを、多
角形の頂点を表す位置データと頂点間結ぶ線分上の位置
データとし、その頂点を表す位置データは、分割により
得られる位置データの中から隣接する位置データを一方
向の順に三つ選択し、その選択した位置データによって
形成される隣接する二つのベトクルの外積が正、または
ベクトルのY成分の積が正となる場合の中央の位置デー
タであり、また、頂点間を結ぶ線分上の位置データは、
前記線分が前記一方向上に存在しない場合の位置データ
であり、この位置データにより前記位置データの組を形
成し、その位置データの組ではさまれるピクセルにドッ
トを打つことにより多角形の描画を行なうことによっ
て、多角形の塗りつぶしを行なうものである。
角形の頂点を表す位置データと頂点間結ぶ線分上の位置
データとし、その頂点を表す位置データは、分割により
得られる位置データの中から隣接する位置データを一方
向の順に三つ選択し、その選択した位置データによって
形成される隣接する二つのベトクルの外積が正、または
ベクトルのY成分の積が正となる場合の中央の位置デー
タであり、また、頂点間を結ぶ線分上の位置データは、
前記線分が前記一方向上に存在しない場合の位置データ
であり、この位置データにより前記位置データの組を形
成し、その位置データの組ではさまれるピクセルにドッ
トを打つことにより多角形の描画を行なうことによっ
て、多角形の塗りつぶしを行なうものである。
【0011】なお、本発明において、描画を行なう多角
形を表示画面において分割する一方向は、X軸方向ある
いはY軸方向とすることができる。
形を表示画面において分割する一方向は、X軸方向ある
いはY軸方向とすることができる。
【0012】なお、本発明において、ピクセルにドット
を打つということは、ピクセルの濃度や色等の表示状態
を変化させることにより、ドットを打たない他のピクセ
ルとの間で表示上での差を生じさせることをいう。
を打つということは、ピクセルの濃度や色等の表示状態
を変化させることにより、ドットを打たない他のピクセ
ルとの間で表示上での差を生じさせることをいう。
【0013】
【作用】本発明によれば、複数のピクセルを配列してな
る表示画面上で、多角形に対応する前記ピクセルを塗り
つぶすことにより多角形の描画を行なう多角形の塗りつ
ぶし描画方法において、はじめに描画を行なう多角形を
表示画面の一方向に沿って分割し、その分割により得ら
れる多角形の境界における位置データを求める。そし
て、その位置データの中から一方向上の同一分割におい
て、多角形を内側にはさむ二つの位置データを選択し、
その選択した二つの位置データで位置データの組を形成
する。そして、その位置データの組ではさまれるピクセ
ルにドットを打つことにより多角形の描画を行なうもの
であり、これにより多角形の塗りつぶしを行なうことが
できる。
る表示画面上で、多角形に対応する前記ピクセルを塗り
つぶすことにより多角形の描画を行なう多角形の塗りつ
ぶし描画方法において、はじめに描画を行なう多角形を
表示画面の一方向に沿って分割し、その分割により得ら
れる多角形の境界における位置データを求める。そし
て、その位置データの中から一方向上の同一分割におい
て、多角形を内側にはさむ二つの位置データを選択し、
その選択した二つの位置データで位置データの組を形成
する。そして、その位置データの組ではさまれるピクセ
ルにドットを打つことにより多角形の描画を行なうもの
であり、これにより多角形の塗りつぶしを行なうことが
できる。
【0014】また、多角形を特定する位置データを求め
るには、分割により得られる位置データの中から隣接す
る位置データを一方向の順に三つ選択し、その選択した
位置データによって形成される隣接する二つのベトクル
の外積が正、またはベクトルのY成分の積が正となる場
合の中央の位置データを求めて、この位置データを多角
形の頂点を表す位置データとし、また、頂点間を結ぶ線
分が一方向のの直線上に存在しない場合の位置データを
求めて、この位置データを多角形の線分を表す位置デー
タとし、これらの位置データから位置データの組を形成
し、その位置データの組ではさまれるピクセルにドット
を打つことにより多角形の描画を行なうことによって、
多角形の塗りつぶしを行なうものである。
るには、分割により得られる位置データの中から隣接す
る位置データを一方向の順に三つ選択し、その選択した
位置データによって形成される隣接する二つのベトクル
の外積が正、またはベクトルのY成分の積が正となる場
合の中央の位置データを求めて、この位置データを多角
形の頂点を表す位置データとし、また、頂点間を結ぶ線
分が一方向のの直線上に存在しない場合の位置データを
求めて、この位置データを多角形の線分を表す位置デー
タとし、これらの位置データから位置データの組を形成
し、その位置データの組ではさまれるピクセルにドット
を打つことにより多角形の描画を行なうことによって、
多角形の塗りつぶしを行なうものである。
【0015】
【実施例】以下、本発明の実施例を図を参照しながら詳
細に説明するが、本発明は実施例に限定されるものでは
ない。
細に説明するが、本発明は実施例に限定されるものでは
ない。
【0016】(実施例の構成)図2は、実施例を実施す
る場合の表示画面上の状態を示す図である。図2におい
て、CRT等の表示装置は複数のピクセルを有し、その
複数のピクセルの中から多角形に対応するピクセルを選
択し、その選択ピクセルにドットを打つことにより多角
形の描画を行なう。図中では、X軸方向にX1からX3
2に区分され、またY軸方向にY1からY23に区分さ
れた複数のピクセルにより構成され、そのピクセルの中
から図形の輪郭に対応するピクセル、およびその多角形
の内側のピクセルにドットを打つことによって、目的と
する多角形の塗りつぶし描画を行なうことができる。図
では、ドットを●で表している。なお、ピクセルにドッ
トを打つということは、ピクセルの濃度や色等の表示状
態を変化させることにより、ドットが打たれていない他
のピクセルとの間で表示上での差を形成することをい
う。
る場合の表示画面上の状態を示す図である。図2におい
て、CRT等の表示装置は複数のピクセルを有し、その
複数のピクセルの中から多角形に対応するピクセルを選
択し、その選択ピクセルにドットを打つことにより多角
形の描画を行なう。図中では、X軸方向にX1からX3
2に区分され、またY軸方向にY1からY23に区分さ
れた複数のピクセルにより構成され、そのピクセルの中
から図形の輪郭に対応するピクセル、およびその多角形
の内側のピクセルにドットを打つことによって、目的と
する多角形の塗りつぶし描画を行なうことができる。図
では、ドットを●で表している。なお、ピクセルにドッ
トを打つということは、ピクセルの濃度や色等の表示状
態を変化させることにより、ドットが打たれていない他
のピクセルとの間で表示上での差を形成することをい
う。
【0017】本発明の多角形の塗りつぶし描画方法にお
いては、例えばX軸方向(水平線向)に多角形を分割
し、その分割したX軸方向の両端のピクセルの位置デー
タの組により多角形の形状を特定する。例えば、図2に
おいて、多角形をX軸方向に分割すると、図形はY軸の
Y11の座標からY15までの座標内にあり、Y軸の値
がY11の部分においてはX軸の値がX6からX23ま
であり、その両端のピクセルの位置データ(X6,Y1
1)と(X23,Y11)である。また、Y軸の値がY
15の部分においてはX軸の値がX12からX23まで
あり、その両端のピクセルの位置データ(X12,Y1
5)と(X23,Y15)である。
いては、例えばX軸方向(水平線向)に多角形を分割
し、その分割したX軸方向の両端のピクセルの位置デー
タの組により多角形の形状を特定する。例えば、図2に
おいて、多角形をX軸方向に分割すると、図形はY軸の
Y11の座標からY15までの座標内にあり、Y軸の値
がY11の部分においてはX軸の値がX6からX23ま
であり、その両端のピクセルの位置データ(X6,Y1
1)と(X23,Y11)である。また、Y軸の値がY
15の部分においてはX軸の値がX12からX23まで
あり、その両端のピクセルの位置データ(X12,Y1
5)と(X23,Y15)である。
【0018】このX軸方向の両端のピクセルの位置デー
タの組(X6,Y11)と(X23,Y11),(X
7,Y11)と(X23,Y11),・・・(X12,
Y15)と(X23,Y15)により多角形の輪郭を特
定する。そして、本発明の多角形の塗りつぶし描画方法
では、この位置データで表されるピクセルと位置データ
の組ではさまれるピクセルにドットを打つことによっ
て、多角形の塗りつぶし描画を行なうものである。
タの組(X6,Y11)と(X23,Y11),(X
7,Y11)と(X23,Y11),・・・(X12,
Y15)と(X23,Y15)により多角形の輪郭を特
定する。そして、本発明の多角形の塗りつぶし描画方法
では、この位置データで表されるピクセルと位置データ
の組ではさまれるピクセルにドットを打つことによっ
て、多角形の塗りつぶし描画を行なうものである。
【0019】なお、図2に示す実施例においては、X軸
方向(水平線方向)に図形を分割しているが、Y軸方向
(垂直線方向)に図形を分割することも可能であり、そ
の分割したY軸方向の両端のピクセルの位置データの組
により多角形の形状を特定することも可能である。この
多角形の分割の方向およびその分割方向での位置データ
の組の形成は、ピクセルのドットを走査方向に対応して
設定することができる。
方向(水平線方向)に図形を分割しているが、Y軸方向
(垂直線方向)に図形を分割することも可能であり、そ
の分割したY軸方向の両端のピクセルの位置データの組
により多角形の形状を特定することも可能である。この
多角形の分割の方向およびその分割方向での位置データ
の組の形成は、ピクセルのドットを走査方向に対応して
設定することができる。
【0020】(実施例を実施するための装置構成)図3
は、実施例の多角形の塗りつぶし描画方法を実施するた
めの一装置構成図である。
は、実施例の多角形の塗りつぶし描画方法を実施するた
めの一装置構成図である。
【0021】図3において、プロセッサ11は、ROM
12に格納されたシステムプログラムに従って装置全体
を制御する。ROM12のシステムプログラムによって
実行されるソフトウエアは、図形記憶等の各種の機能を
有している。このROM12には、EPROMあるいは
EEPROMが使用される。RAM13にはSRAM等
が使用され、入出力信号等の一時的なデータが格納され
る。不揮発性メモリ14には図示されないバッテリによ
ってバックアップされたCMOSが使用される。また、
不揮発性メモリ14には電源切断後も保存すべきパラメ
ータ、加工プログラム等の各種データ等が格納される。
12に格納されたシステムプログラムに従って装置全体
を制御する。ROM12のシステムプログラムによって
実行されるソフトウエアは、図形記憶等の各種の機能を
有している。このROM12には、EPROMあるいは
EEPROMが使用される。RAM13にはSRAM等
が使用され、入出力信号等の一時的なデータが格納され
る。不揮発性メモリ14には図示されないバッテリによ
ってバックアップされたCMOSが使用される。また、
不揮発性メモリ14には電源切断後も保存すべきパラメ
ータ、加工プログラム等の各種データ等が格納される。
【0022】グラフィック制御回路15はガイダンス情
報や入力された指定形状等を表示可能な信号に変換し、
表示装置16に与える。表示装置16にはCRTあるい
は液晶表示装置が使用される。
報や入力された指定形状等を表示可能な信号に変換し、
表示装置16に与える。表示装置16にはCRTあるい
は液晶表示装置が使用される。
【0023】また、プロセッサ11、RAM13等への
入力はMDI17により行なわれる。このMDI17と
して、例えばキーボードやマウス等の入力装置を用いる
ことができる。なお、前記装置構成は、そのROM12
に数値制御装置全体を制御するシステムプログラムを格
納する等によって、通常の数値制御装置に適用すること
ができるが、数値制御装置に限定されるものではなく、
他の図形表示を行なう装置に適用することができるもの
である。
入力はMDI17により行なわれる。このMDI17と
して、例えばキーボードやマウス等の入力装置を用いる
ことができる。なお、前記装置構成は、そのROM12
に数値制御装置全体を制御するシステムプログラムを格
納する等によって、通常の数値制御装置に適用すること
ができるが、数値制御装置に限定されるものではなく、
他の図形表示を行なう装置に適用することができるもの
である。
【0024】〔実施例の作用〕 (描画の手順)次に、本発明の実施例の描画方法の手順
について、前記図2の描画図、および図1の本発明の多
角形の塗りつぶし描画方法の手順を説明するフローチャ
ートを用いて説明する。なお、以下の説明においては、
ステップSの符号を用いて説明する。
について、前記図2の描画図、および図1の本発明の多
角形の塗りつぶし描画方法の手順を説明するフローチャ
ートを用いて説明する。なお、以下の説明においては、
ステップSの符号を用いて説明する。
【0025】ステップS1:はじめに、表示装置16上
において表示する描画する多角形の描画用の位置データ
を求める。こ の位置データは、例えば図2に示したよ
うに角形のX軸方向(水平線方向)に多角形を分割し、
その分割したX軸方向の多角形を形成する境界部分のピ
クセルを特定する位置データであり、これによって多角
形の形状を特定する。
において表示する描画する多角形の描画用の位置データ
を求める。こ の位置データは、例えば図2に示したよ
うに角形のX軸方向(水平線方向)に多角形を分割し、
その分割したX軸方向の多角形を形成する境界部分のピ
クセルを特定する位置データであり、これによって多角
形の形状を特定する。
【0026】さらに、この工程においては、求めた多角
形の位置データの順番を変更して、描画に適した順序に
ソートする。例えば、描画における主走査方向がX軸方
向であり副走査方向がY軸方向の場合には、はじめに位
置データを副走査方向の順となるように例えばYの値の
小さい順に並ベ替え、次にその並び替えた位置データの
内で同一のYの値を持つ位置データがある場合には、主
走査方向の順となるように例えばXの値の小さい順に並
べることによりソートを行なう。
形の位置データの順番を変更して、描画に適した順序に
ソートする。例えば、描画における主走査方向がX軸方
向であり副走査方向がY軸方向の場合には、はじめに位
置データを副走査方向の順となるように例えばYの値の
小さい順に並ベ替え、次にその並び替えた位置データの
内で同一のYの値を持つ位置データがある場合には、主
走査方向の順となるように例えばXの値の小さい順に並
べることによりソートを行なう。
【0027】そして、このソートした位置データによっ
て、同一の主走査方向線上(同一のYの値を有する)の
二つの位置データの組を形成する。なお、この二つの位
置データの組を形成において、同一の主走査方向線上
(同一のYの値を有する)に3個以上の位置データがあ
る場合には、位置データの組が描画図形の内側をはさむ
組み合わせとなるものを選択し、また、頂点を形成する
場合には、同一の位置データにより1つの位置データの
組を形成する。
て、同一の主走査方向線上(同一のYの値を有する)の
二つの位置データの組を形成する。なお、この二つの位
置データの組を形成において、同一の主走査方向線上
(同一のYの値を有する)に3個以上の位置データがあ
る場合には、位置データの組が描画図形の内側をはさむ
組み合わせとなるものを選択し、また、頂点を形成する
場合には、同一の位置データにより1つの位置データの
組を形成する。
【0028】そして、この位置データの組を形成し、表
示装置に対してその位置データの組を指定することによ
り、その位置データの組にはさまれた全てのピクセルを
指定することができる。したがって、ドットを打つ複数
のピクセルを位置データの組によって特定することがで
きる。この位置データの組は、例えば図3のRAM13
に記憶しておく。
示装置に対してその位置データの組を指定することによ
り、その位置データの組にはさまれた全てのピクセルを
指定することができる。したがって、ドットを打つ複数
のピクセルを位置データの組によって特定することがで
きる。この位置データの組は、例えば図3のRAM13
に記憶しておく。
【0029】なお、この位置データは多角形の形状を特
定するためのデータであり、図形が移動する場合にはこ
の位置データを移動に対応して変更し、移動中および移
動後の位置データを求めることになる。
定するためのデータであり、図形が移動する場合にはこ
の位置データを移動に対応して変更し、移動中および移
動後の位置データを求めることになる。
【0030】このステップの詳細については、後述する
(位置データを求める手順)の項において、図4のフロ
ーチャートを用いて説明する。
(位置データを求める手順)の項において、図4のフロ
ーチャートを用いて説明する。
【0031】ステップS2:前記ステップS1の工程で
求めた位置データの組をRAM13から読み出す。この
位置データの組の読み出しの順は、ステップS1の工程
でソートした順とすることができる。
求めた位置データの組をRAM13から読み出す。この
位置データの組の読み出しの順は、ステップS1の工程
でソートした順とすることができる。
【0032】ステップS3:ステップS2で読み出した
位置データの組の間にはさまれたピクセルにドットを打
つ。これにより多角形の一部が形成される。例えば、読
み出された位置データの組が(X6,Y11),(X2
3,Y11)である場合には、この位置データの組は図
2において描画する多角形の最下部の線を示すものであ
り、この位置データの組にはさまれるピクセルの全ての
ドットを打つことにより、この多角形の最下部の線を表
示装置16上に表示することができる。
位置データの組の間にはさまれたピクセルにドットを打
つ。これにより多角形の一部が形成される。例えば、読
み出された位置データの組が(X6,Y11),(X2
3,Y11)である場合には、この位置データの組は図
2において描画する多角形の最下部の線を示すものであ
り、この位置データの組にはさまれるピクセルの全ての
ドットを打つことにより、この多角形の最下部の線を表
示装置16上に表示することができる。
【0033】ステップS4:前記ステップS2とステッ
プS3の工程を全ての位置データについて繰り返して行
なうことにより、多角形を表示装置16上に表示するこ
とができる。
プS3の工程を全ての位置データについて繰り返して行
なうことにより、多角形を表示装置16上に表示するこ
とができる。
【0034】(位置データを求める手順)次に、前記ス
テップS1の工程の詳細について、図4の多角形の描画
用位置データを求めるフローチャートと、図5〜図11
の多角形の描画用位置データを求める方法を説明する図
を用いて説明する。
テップS1の工程の詳細について、図4の多角形の描画
用位置データを求めるフローチャートと、図5〜図11
の多角形の描画用位置データを求める方法を説明する図
を用いて説明する。
【0035】以下のフローチャートの説明においては、
描画する多角形を図5に示すような三角形の形状の場合
について説明するものであり、このフローより最終的に
求める位置データは、図5の(b)の斜線で示したピク
セルの位置データの組を求めるものである。
描画する多角形を図5に示すような三角形の形状の場合
について説明するものであり、このフローより最終的に
求める位置データは、図5の(b)の斜線で示したピク
セルの位置データの組を求めるものである。
【0036】なお、以下のフローチャートにおいては、
ステップS11〜ステップS21の符号を用いて説明す
る。
ステップS11〜ステップS21の符号を用いて説明す
る。
【0037】ステップS11:はじめに、描画する多角
形の頂点の座標をRAM13等の記憶装置に入力する。
例えば、図5に示す三角形の図形において、1〜3(あ
るいは(1)〜(3))で示される頂点の位置データを
求める。この位置データは、XY座標の位置データその
ものとすることも、あるいはそのXY座標の位置データ
に対応するピクセルの位置データを変換したものとする
こともできる。以下の説明では、この工程で求めた多角
形の頂点の位置データは、ピクセルの位置データである
とし、XY座標の位置データそのものの場合には、この
フローの何れかの段階において対応するピクセルの位置
データに変換することができる。
形の頂点の座標をRAM13等の記憶装置に入力する。
例えば、図5に示す三角形の図形において、1〜3(あ
るいは(1)〜(3))で示される頂点の位置データを
求める。この位置データは、XY座標の位置データその
ものとすることも、あるいはそのXY座標の位置データ
に対応するピクセルの位置データを変換したものとする
こともできる。以下の説明では、この工程で求めた多角
形の頂点の位置データは、ピクセルの位置データである
とし、XY座標の位置データそのものの場合には、この
フローの何れかの段階において対応するピクセルの位置
データに変換することができる。
【0038】位置データは描画図形に対して、時計回り
あるいは反時計回りとならなければならない。図5にお
いて、反時計回りの場合には、1,2,3の順となり、
時計回りの場合には、(1),(2),(3)の順とな
る。以下、反時計回りの場合について説明する。
あるいは反時計回りとならなければならない。図5にお
いて、反時計回りの場合には、1,2,3の順となり、
時計回りの場合には、(1),(2),(3)の順とな
る。以下、反時計回りの場合について説明する。
【0039】ステップS12:前記工程で求められた位
置データに基づいて、求められた順の頂点の位置データ
間でベクトルvを形成する。例えば、図6において、反
時計回りに頂点がi−1,i,i+1である場合には、
頂点i−1とiの間でベクトルvi-1 を形成し、頂点i
とi+1の間でベクトルvi を形成する。なお、ここで
頂点iの位置座標を(Xi ,Yi )とする。
置データに基づいて、求められた順の頂点の位置データ
間でベクトルvを形成する。例えば、図6において、反
時計回りに頂点がi−1,i,i+1である場合には、
頂点i−1とiの間でベクトルvi-1 を形成し、頂点i
とi+1の間でベクトルvi を形成する。なお、ここで
頂点iの位置座標を(Xi ,Yi )とする。
【0040】ステップS13:前記工程で求めた頂点i
を終点とするベクトルvi-1 と頂点iを始点とするベク
トルvi とによって、外積vi-1 ×vi を求める。な
お、この外積vi-1 ×vi において、ベクトルvi-1 と
ベクトルvi のなす角度は図6および図7において、θ
によって表されている。
を終点とするベクトルvi-1 と頂点iを始点とするベク
トルvi とによって、外積vi-1 ×vi を求める。な
お、この外積vi-1 ×vi において、ベクトルvi-1 と
ベクトルvi のなす角度は図6および図7において、θ
によって表されている。
【0041】ステップS14:前記工程で求めた外積v
i-1 ×vi が正であるか、あるいは0または負であるか
の判定を行なう。例えば、図6は外積vi-1 ×vi が正
である場合を示しており、図7は外積vi-1 ×vi が負
である場合を示している。
i-1 ×vi が正であるか、あるいは0または負であるか
の判定を行なう。例えば、図6は外積vi-1 ×vi が正
である場合を示しており、図7は外積vi-1 ×vi が負
である場合を示している。
【0042】ステップS16:外積vi-1 ×vi が正で
ある場合には、その頂点iの位置データを例えばRAM
13等の記憶装置に記憶し、描画図形の水平線を求める
ための位置データとしてセットされる。図6において、
この記憶する頂点iを●によって表示している。
ある場合には、その頂点iの位置データを例えばRAM
13等の記憶装置に記憶し、描画図形の水平線を求める
ための位置データとしてセットされる。図6において、
この記憶する頂点iを●によって表示している。
【0043】ステップS15:一方、外積vi-1 ×vi
が0または負である場合には、i番目のベクトルvi の
Y成分とi−1番目のベクトルvi-1 のY成分の積が正
となるか0または負となるかの判定を行なう。i番目の
ベクトルvi のY成分とi−1番目のベクトルvi-1 の
Y成分の積が正である場合には、ステップS16により
その頂点iの位置データを記憶する。
が0または負である場合には、i番目のベクトルvi の
Y成分とi−1番目のベクトルvi-1 のY成分の積が正
となるか0または負となるかの判定を行なう。i番目の
ベクトルvi のY成分とi−1番目のベクトルvi-1 の
Y成分の積が正である場合には、ステップS16により
その頂点iの位置データを記憶する。
【0044】一方、前記積が0または負の場合には、そ
の頂点iの位置データは記憶せず、描画図形の水平線を
求めるための位置データとしてセットしない。これは、
点iが水平線の途中の点であり、水平線を求めるための
位置データとしては必要がないためである。図7におい
て、この記憶しない頂点iを白抜きの○印によって表示
している。
の頂点iの位置データは記憶せず、描画図形の水平線を
求めるための位置データとしてセットしない。これは、
点iが水平線の途中の点であり、水平線を求めるための
位置データとしては必要がないためである。図7におい
て、この記憶しない頂点iを白抜きの○印によって表示
している。
【0045】なお、図8に示すように、始点の頂点がY
軸方向に対して鋭角である場合には、始点は二度重複し
てセットすることによって水平線の情報として記憶す
る。この始点の頂点がY軸方向に対して鋭角であるか否
かの判定は、例えばi番目のベクトルのY成分とi−1
番目のnのベクトルのY成分との積が負であるか否かに
よって行なうことができる。図8において、この記憶す
る頂点iを●によって表示している。
軸方向に対して鋭角である場合には、始点は二度重複し
てセットすることによって水平線の情報として記憶す
る。この始点の頂点がY軸方向に対して鋭角であるか否
かの判定は、例えばi番目のベクトルのY成分とi−1
番目のnのベクトルのY成分との積が負であるか否かに
よって行なうことができる。図8において、この記憶す
る頂点iを●によって表示している。
【0046】ステップS17:前記ステップS14〜ス
テップS16の工程を全てのベクトルについて行なう。
これによって、多角形の描画において水平線の情報とし
て必要な頂点の位置データが求められる。
テップS16の工程を全てのベクトルについて行なう。
これによって、多角形の描画において水平線の情報とし
て必要な頂点の位置データが求められる。
【0047】ステップS18:次に、多角形の描画にお
いて水平線の情報として必要な頂線分上の位置データを
求める。前記ステップS14〜ステップS17におい
て、多角形の描画において水平線の情報として必要な頂
点の位置データは求められているが、この工程では、そ
の頂点を結ぶ線分間での水平線の情報として必要な位置
データを求める。
いて水平線の情報として必要な頂線分上の位置データを
求める。前記ステップS14〜ステップS17におい
て、多角形の描画において水平線の情報として必要な頂
点の位置データは求められているが、この工程では、そ
の頂点を結ぶ線分間での水平線の情報として必要な位置
データを求める。
【0048】前記ステップS13で求めたベクトルvi
に対応する直線をiとし、その直線iが水平線か否かの
判定を行なう。頂点間を結ぶ直線iが水平線の場合に
は、この水平線の直線部分は、その直線の両端である頂
点によって描画に必要な位置データが既にセットされて
いるため、水平線を求めるための位置データとしては必
要がない。そのため、この直線iの位置データはセット
しない。
に対応する直線をiとし、その直線iが水平線か否かの
判定を行なう。頂点間を結ぶ直線iが水平線の場合に
は、この水平線の直線部分は、その直線の両端である頂
点によって描画に必要な位置データが既にセットされて
いるため、水平線を求めるための位置データとしては必
要がない。そのため、この直線iの位置データはセット
しない。
【0049】一方、頂点間を結ぶ直線iが水平線でない
場合には、次のステップS19において、水平線を求め
るための位置データをセットする。
場合には、次のステップS19において、水平線を求め
るための位置データをセットする。
【0050】ステップS19:直線iの位置データを求
めて、記憶装置に記憶する。
めて、記憶装置に記憶する。
【0051】この直線iは、例えば図9において太い実
線で示されており、その直線iにおける位置データは、
破線で示されるX軸方向の水平線の両端の位置データと
して求められ、図中において●によって示されている。
そして、水平線の部分は前記工程で説明したように水平
線を求めるための位置データとしては必要がないため、
この直線iの位置データはセットしない。
線で示されており、その直線iにおける位置データは、
破線で示されるX軸方向の水平線の両端の位置データと
して求められ、図中において●によって示されている。
そして、水平線の部分は前記工程で説明したように水平
線を求めるための位置データとしては必要がないため、
この直線iの位置データはセットしない。
【0052】図10に示される多角形においても、同様
に直線iにおける位置データは、●によって示されてお
り、水平線の中間にある頂点の内白抜きの○印によって
表される点は、前記したように水平線を求めるための位
置データとしては不要であるめ、セットされない。
に直線iにおける位置データは、●によって示されてお
り、水平線の中間にある頂点の内白抜きの○印によって
表される点は、前記したように水平線を求めるための位
置データとしては不要であるめ、セットされない。
【0053】また、多角形が図11に示されるような場
合には、多角形をはさむ水平線以外の二本の直線によっ
て必要な位置データが求められる。例えば、図11にお
いて、直線を時計方向にi〜i+4により表すと、直線
iと直線i+1によってはさまれる多角形は、その直線
iと直線i+1の位置データによって描画のための水平
線が定められ、また直線i+2と直線i+4の位置デー
タによって描画のための水平線が定められる。なお、直
線i+1と直線i+2の交点部分の頂点は、ベクトルの
外積が負で、かつY成分の積が0または負となるので位
置データとしてセットされない。
合には、多角形をはさむ水平線以外の二本の直線によっ
て必要な位置データが求められる。例えば、図11にお
いて、直線を時計方向にi〜i+4により表すと、直線
iと直線i+1によってはさまれる多角形は、その直線
iと直線i+1の位置データによって描画のための水平
線が定められ、また直線i+2と直線i+4の位置デー
タによって描画のための水平線が定められる。なお、直
線i+1と直線i+2の交点部分の頂点は、ベクトルの
外積が負で、かつY成分の積が0または負となるので位
置データとしてセットされない。
【0054】ステップS20:前記ステップS18及び
ステップS19の工程を全てのiについて行なう。これ
によって、描画に必要な位置データを全て求められる。
ステップS19の工程を全てのiについて行なう。これ
によって、描画に必要な位置データを全て求められる。
【0055】ステップS21:前記ステップS11〜ス
テップS20によって入力された位置データを描画に適
した順序にソートする。このソートについては、前記ス
テップS1において説明しているため、ここでは説明を
省略する。
テップS20によって入力された位置データを描画に適
した順序にソートする。このソートについては、前記ス
テップS1において説明しているため、ここでは説明を
省略する。
【0056】そして、このソートにより位置データの組
が形成され、表示装置に対してその位置データの組を指
定することにより、その位置データの組にはさまれた全
てのピクセルを指定することができ、ドットを打つ複数
のピクセルを位置データの組によって特定することがで
きる。
が形成され、表示装置に対してその位置データの組を指
定することにより、その位置データの組にはさまれた全
てのピクセルを指定することができ、ドットを打つ複数
のピクセルを位置データの組によって特定することがで
きる。
【0057】〔変形例〕前記実施例において、多角形を
分割する一方向としてX軸方向に代えて、Y軸方向とす
ることもできる。
分割する一方向としてX軸方向に代えて、Y軸方向とす
ることもできる。
【0058】
【発明の効果】以上説明したように、本発明によれば、
高速な機械語命令が容易に利用することができ、高速な
図形の描画を行なうことができる。
高速な機械語命令が容易に利用することができ、高速な
図形の描画を行なうことができる。
【図1】本発明の多角形の塗りつぶし描画方法の手順を
説明するフローチャートである。
説明するフローチャートである。
【図2】本発明の実施例を実施する場合の表示画面上の
状態を示す図である。
状態を示す図である。
【図3】本発明の実施例の多角形の塗りつぶし描画方法
を実施するための一装置構成図である。
を実施するための一装置構成図である。
【図4】本発明の多角形の描画用位置データを求めるフ
ローチャートである。
ローチャートである。
【図5】本発明の多角形の描画用位置データを求める方
法を説明する図である。
法を説明する図である。
【図6】本発明の多角形の描画用位置データを求める方
法を説明する図である。
法を説明する図である。
【図7】本発明の多角形の描画用位置データを求める方
法を説明する図である。
法を説明する図である。
【図8】本発明の多角形の描画用位置データを求める方
法を説明する図である。
法を説明する図である。
【図9】本発明の多角形の描画用位置データを求める方
法を説明する図である。
法を説明する図である。
【図10】本発明の多角形の描画用位置データを求める
方法を説明する図である。
方法を説明する図である。
【図11】本発明の多角形の描画用位置データを求める
方法を説明する図である。
方法を説明する図である。
11 プロセッサ 12 ROM 13 RAM 14 不揮発性メモリ 15 グラフィック制御回路 16 表示装置 17 MDI
Claims (3)
- 【請求項1】 複数のピクセルを配列してなる表示画面
上で、図形パターンに対応する前記ピクセルを塗りつぶ
すことにより多角形の描画を行なう塗りつぶし描画方法
において、(a)前記多角形を前記表示画面の一方向に
沿って分割し、(b)前記分割により得られる多角形の
境界における位置データを求め、(c)前記一方向上の
同一分割において、前記多角形を内側にはさむ二つの位
置データによって位置データの組を形成し、(d)前記
位置データの組ではさまれる前記ピクセルにドットを打
つことにより多角形の描画を行なうことを特徴とする多
角形の塗りつぶし描画方法。 - 【請求項2】 前記位置データは、前記多角形の頂点を
表す位置データと該頂点間を結ぶ線分上の位置データと
からなり、(a)前記頂点を表す位置データは、前記分
割により得られる位置データの中から隣接する位置デー
タを一方向の順に三つ選択し、選択した位置データによ
って形成される隣接する二つのベトクルの外積が正、又
はベクトルのY成分の積が正となる場合の中央の位置デ
ータであり、(b)前記頂点間を結ぶ線分上の位置デー
タは、前記線分が前記一方向上に存在しない場合の位置
データであることを特徴とする請求項1記載の多角形の
塗りつぶし描画方法。 - 【請求項3】 前記一方向は、X軸方向である請求項
1,又は2記載の多角形の塗りつぶし描画方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5191960A JPH0721397A (ja) | 1993-07-05 | 1993-07-05 | 多角形の塗りつぶし描画方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5191960A JPH0721397A (ja) | 1993-07-05 | 1993-07-05 | 多角形の塗りつぶし描画方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0721397A true JPH0721397A (ja) | 1995-01-24 |
Family
ID=16283314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5191960A Pending JPH0721397A (ja) | 1993-07-05 | 1993-07-05 | 多角形の塗りつぶし描画方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0721397A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002163665A (ja) * | 2000-11-24 | 2002-06-07 | Matsushita Electric Ind Co Ltd | 描画装置 |
CN103406960A (zh) * | 2013-07-08 | 2013-11-27 | 中南林业科技大学 | 一种木竹材高效阻燃处理方法 |
-
1993
- 1993-07-05 JP JP5191960A patent/JPH0721397A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002163665A (ja) * | 2000-11-24 | 2002-06-07 | Matsushita Electric Ind Co Ltd | 描画装置 |
JP4541533B2 (ja) * | 2000-11-24 | 2010-09-08 | パナソニック株式会社 | 描画装置 |
CN103406960A (zh) * | 2013-07-08 | 2013-11-27 | 中南林业科技大学 | 一种木竹材高效阻燃处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2001009842A1 (en) | System for rapidly performing scan conversion with anti-aliasing upon outline fonts and other graphic elements | |
US5261030A (en) | Real-time digital computer graphics processing method and apparatus | |
US4918435A (en) | Method for processing animated graphics | |
JP3547250B2 (ja) | 描画方法 | |
EP0062669B1 (en) | Graphic and textual image generator for a raster scan display | |
JPH0721397A (ja) | 多角形の塗りつぶし描画方法 | |
JPH04188192A (ja) | 多階調文字発生方法及びその装置 | |
JP2868675B2 (ja) | 文字列のサイズを1文字ごとに任意に変える電子組版装置 | |
JP2562540B2 (ja) | 図形処理方法 | |
JP2762768B2 (ja) | アウトラインデータ描画装置 | |
JP3473079B2 (ja) | 画像表示位置決定方法およびその装置 | |
JP3025739B2 (ja) | 文字パターン発生装置および文字パターン発生方法 | |
JPH0350686A (ja) | 図形処理方式 | |
JP2915413B2 (ja) | 文字処理方法及びその装置 | |
JPS63224965A (ja) | 文字発生装置 | |
JPH05225353A (ja) | 多角図形の塗り潰し表示方法 | |
JP3099556B2 (ja) | データ変換装置 | |
JPH07117823B2 (ja) | カラー表示装置 | |
JPH01159776A (ja) | 線描画システム | |
JP3214722B2 (ja) | ストローク文字発生器 | |
JPH06124076A (ja) | アウトラインデータ処理装置 | |
JPH08305865A (ja) | 図形描画装置 | |
JPH0950272A (ja) | アウトラインフォント生成方法およびアウトラインフォント生成装置 | |
JPH0916787A (ja) | 図形塗り潰し用枠線の始点終点描画方法 | |
JPH06274141A (ja) | 文字表示方式 |