JPH10116349A - 画像塗りつぶし処理方法 - Google Patents
画像塗りつぶし処理方法Info
- Publication number
- JPH10116349A JPH10116349A JP27088296A JP27088296A JPH10116349A JP H10116349 A JPH10116349 A JP H10116349A JP 27088296 A JP27088296 A JP 27088296A JP 27088296 A JP27088296 A JP 27088296A JP H10116349 A JPH10116349 A JP H10116349A
- Authority
- JP
- Japan
- Prior art keywords
- long side
- processing
- intersection
- scan
- scanning line
- 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)【要約】
【課題】 細長4角形の塗りつぶし処理の処理効率の向
上を図る。 【解決手段】 細長4角形の対向する2つの長辺データ
を入力する(110)。各長辺の傾きを求め、両者の平
均の傾きによりスキャン方向を決定する(120)。各
長辺の頂点座標をソートし(130)、スキャン範囲s
0,s1を決定する(140)。s0におけるスキャンラ
インと各長辺との交点を計算する(150)。スキャン
ラインが1つ進む毎の、スキャンラインと各長辺との交
点の変分を求める(160)。s番目のスキャンライン
に対し、該スキャンラインと各長辺の交点に挟まれる画
素を塗りつぶす(170)。160で求めた変分を用い
て、次のスキャンラインと各長辺との交点を求める(1
80)。170と180の処理をs0,s1間のスキャン
ライン全てについて行うことにより、塗りつぶし処理が
完了する。
上を図る。 【解決手段】 細長4角形の対向する2つの長辺データ
を入力する(110)。各長辺の傾きを求め、両者の平
均の傾きによりスキャン方向を決定する(120)。各
長辺の頂点座標をソートし(130)、スキャン範囲s
0,s1を決定する(140)。s0におけるスキャンラ
インと各長辺との交点を計算する(150)。スキャン
ラインが1つ進む毎の、スキャンラインと各長辺との交
点の変分を求める(160)。s番目のスキャンライン
に対し、該スキャンラインと各長辺の交点に挟まれる画
素を塗りつぶす(170)。160で求めた変分を用い
て、次のスキャンラインと各長辺との交点を求める(1
80)。170と180の処理をs0,s1間のスキャン
ライン全てについて行うことにより、塗りつぶし処理が
完了する。
Description
【0001】
【発明の属する技術分野】本発明は計算機を用いて高速
に画像を生成する方法に係り、詳しくは、細長4角形を
効率よく塗りつぶす画像塗りつぶし処理方法に関するも
のである。
に画像を生成する方法に係り、詳しくは、細長4角形を
効率よく塗りつぶす画像塗りつぶし処理方法に関するも
のである。
【0002】
【従来の技術】現在、最もよく利用されている多角形の
塗りつぶし方式には、スキャンライン方式がある(例え
ば、Foley,vanDam 著、今宮訳「コンピュータグラフ
ィックス」、日本コンピュータ協会)。この方式では、 1)多角形のすべての辺とスキャンラインの交点を見つ
ける。 2)交点をx座標に関してソートする。 3)交点対間の画素を塗る。 という処理により、塗りつぶしを行なう。例えば、図3
に示す例では、交点のx座標のリストは(X0,X1,X
2,X3)で、X0からX1、X2からX3の区間の画素を塗
りつぶすことになる。
塗りつぶし方式には、スキャンライン方式がある(例え
ば、Foley,vanDam 著、今宮訳「コンピュータグラフ
ィックス」、日本コンピュータ協会)。この方式では、 1)多角形のすべての辺とスキャンラインの交点を見つ
ける。 2)交点をx座標に関してソートする。 3)交点対間の画素を塗る。 という処理により、塗りつぶしを行なう。例えば、図3
に示す例では、交点のx座標のリストは(X0,X1,X
2,X3)で、X0からX1、X2からX3の区間の画素を塗
りつぶすことになる。
【0003】
【発明が解決しようとする課題】しかしながら、この従
来のスキャンライン方式には以下のような問題がある。
すなわち、2つの辺の長さが1画素程度であるような細
長い4角形を処理するとき、一般に辺の長さが短くなる
とスキャンラインと交点を持たない確率が増加するにも
かかわらず、短辺がスキャンラインと交わらない場合も
その交点を求める計算を行なわなければならないため、
処理が非効率となる。例えば、図4に示す例では、短辺
e1,e3はスキャンラインと交点を持たない。
来のスキャンライン方式には以下のような問題がある。
すなわち、2つの辺の長さが1画素程度であるような細
長い4角形を処理するとき、一般に辺の長さが短くなる
とスキャンラインと交点を持たない確率が増加するにも
かかわらず、短辺がスキャンラインと交わらない場合も
その交点を求める計算を行なわなければならないため、
処理が非効率となる。例えば、図4に示す例では、短辺
e1,e3はスキャンラインと交点を持たない。
【0004】本発明の目的は、細長4角形の塗りつぶし
処理を行う際の処理効率を向上させる画像塗りつぶし処
理方法方法を提供することにある。
処理を行う際の処理効率を向上させる画像塗りつぶし処
理方法方法を提供することにある。
【0005】
【課題を解決するための手段】本発明は、細長4角形の
長辺に着目し、対向する2つの長辺とスキャンラインと
の交点を求め、この交点間を塗りつぶすことを主要な特
徴とする。すなわち、本発明では、短辺に関する処理を
行なうことがないため、効率的に細長4角形の塗りつぶ
し処理を行なうことが可能となる。
長辺に着目し、対向する2つの長辺とスキャンラインと
の交点を求め、この交点間を塗りつぶすことを主要な特
徴とする。すなわち、本発明では、短辺に関する処理を
行なうことがないため、効率的に細長4角形の塗りつぶ
し処理を行なうことが可能となる。
【0006】
【発明の実施の形態】以下、本発明の一実施例について
詳述する。図1は画像処理システムの構成例を示すブロ
ック図であり、コマンドやデータ等を入力するキーボー
ドなどの入力装置10、図形の形状データ等を格納する
画像ファイル装置20、画像の生成や編集等を実行する
中央処理装置(CPU)30及び処理結果の画像を出力
するディスプレィなどの出力装置40よりなる。本発明
は、CPU30が画像ファイル装置20から細長4角形
の形状データを読み込んで、効率的に塗りつぶしを行う
処理にかかわる。なお、処理対象図形の形状データは、
入力装置10から直接入力することでもよい。
詳述する。図1は画像処理システムの構成例を示すブロ
ック図であり、コマンドやデータ等を入力するキーボー
ドなどの入力装置10、図形の形状データ等を格納する
画像ファイル装置20、画像の生成や編集等を実行する
中央処理装置(CPU)30及び処理結果の画像を出力
するディスプレィなどの出力装置40よりなる。本発明
は、CPU30が画像ファイル装置20から細長4角形
の形状データを読み込んで、効率的に塗りつぶしを行う
処理にかかわる。なお、処理対象図形の形状データは、
入力装置10から直接入力することでもよい。
【0007】図2は、本発明による細長4角形塗りつぶ
し処理の一実施例を示すフローチャートである。
し処理の一実施例を示すフローチャートである。
【0008】〈長辺データ入力〉長辺データ入力110
では、細長4角形の形状データの2つの長辺を示すデー
タを入力する。具体的には、長辺データは各長辺の頂点
のx−y座標で定義される。例えば、図4の例では、長
辺e0,e2の頂点座標(x00,y00),(x01,y01)
および(x10,y10),(x11,y11)で定義される。
では、細長4角形の形状データの2つの長辺を示すデー
タを入力する。具体的には、長辺データは各長辺の頂点
のx−y座標で定義される。例えば、図4の例では、長
辺e0,e2の頂点座標(x00,y00),(x01,y01)
および(x10,y10),(x11,y11)で定義される。
【0009】〈スキャン方向決定処理〉スキャン方向決
定処理120は、4角形の傾き方向により、スキャンの
方向をx方向にするかy方向にするか決定する処理であ
る。この処理では、まず、2つの長辺の傾き、 m0=(y01−y00)/(x01−x00) (1) m1=(y11−y10)/(x11−x10) (2) 求め、次に、その平均の傾き、 ma=(m0+m1)/2 (3) を求める。ここで、ma>1の場合はスキャン方向をx
軸方向に、ma<1の場合にはy軸方向にとる。これに
より、図4に示すような縦方向の4角形に対しては、x
軸方向がスキャン方向となる。逆に、横方向の4角形で
は、Y軸方向がスキャン方向となる。
定処理120は、4角形の傾き方向により、スキャンの
方向をx方向にするかy方向にするか決定する処理であ
る。この処理では、まず、2つの長辺の傾き、 m0=(y01−y00)/(x01−x00) (1) m1=(y11−y10)/(x11−x10) (2) 求め、次に、その平均の傾き、 ma=(m0+m1)/2 (3) を求める。ここで、ma>1の場合はスキャン方向をx
軸方向に、ma<1の場合にはy軸方向にとる。これに
より、図4に示すような縦方向の4角形に対しては、x
軸方向がスキャン方向となる。逆に、横方向の4角形で
は、Y軸方向がスキャン方向となる。
【0010】〈頂点ソート処理〉頂点のソート処理13
0は、長辺データに対する前処理である。この処理で
は、各長辺に対し、頂点をスキャン方向と異なる座標に
ついてソートする。この結果を、(x′00,y′00),
(x′01,y′01)および(x′10,y′10),(x′
11,y′11)とする。図4の例では、スキャン方向がx
軸方向なので、y軸方向にソートし、長辺e0について
は、x′00=x01,y′00=y01,x′01=x00,y′
01=y00となり、長辺e2については、x′10=x11,
y′10=y11,x′11=x10,y′11=y10のようにな
る。
0は、長辺データに対する前処理である。この処理で
は、各長辺に対し、頂点をスキャン方向と異なる座標に
ついてソートする。この結果を、(x′00,y′00),
(x′01,y′01)および(x′10,y′10),(x′
11,y′11)とする。図4の例では、スキャン方向がx
軸方向なので、y軸方向にソートし、長辺e0について
は、x′00=x01,y′00=y01,x′01=x00,y′
01=y00となり、長辺e2については、x′10=x11,
y′10=y11,x′11=x10,y′11=y10のようにな
る。
【0011】〈スキャン範囲決定処理〉スキャン範囲の
決定処理140では、スキャン処理の処理範囲s0,s1
を決定する。この処理では、スキャン方向がx軸方向で
ある場合には、 s0=max(y′00,y′10) (4) s1=min(y′01,y′11) (5) とする。また、スキャン方向がy軸方向の場合は s0=max(x′00,x′10) (6) s1=min(x′01,x′11) (7) とする。
決定処理140では、スキャン処理の処理範囲s0,s1
を決定する。この処理では、スキャン方向がx軸方向で
ある場合には、 s0=max(y′00,y′10) (4) s1=min(y′01,y′11) (5) とする。また、スキャン方向がy軸方向の場合は s0=max(x′00,x′10) (6) s1=min(x′01,x′11) (7) とする。
【0012】〈交点計算処理〉交点計算処理150で
は、スキャン方向がX軸方向の場合、s0におけるスキ
ャンラインと、各長辺との交点X0,X1を計算する。同
様にして、スキャン方向がY軸方向の場合、交点Y0,
Y1を計算する。
は、スキャン方向がX軸方向の場合、s0におけるスキ
ャンラインと、各長辺との交点X0,X1を計算する。同
様にして、スキャン方向がY軸方向の場合、交点Y0,
Y1を計算する。
【0013】〈交点変分計算処理〉交点の変分計算処理
160では、スキャンラインと各長辺との交点が、スキ
ャンラインが1つ進む毎にどれだけ変化するかを計算す
る。この変化をd0,d1とすれば、スキャン方向がx軸
方向の場合、i=0,1に対し、スキャン方向決定処理
120で求められたm0,m1を用いて、 di=1/mi (8) スキャン方向がy軸方向の場合、 di=mi (9) と計算できる。
160では、スキャンラインと各長辺との交点が、スキ
ャンラインが1つ進む毎にどれだけ変化するかを計算す
る。この変化をd0,d1とすれば、スキャン方向がx軸
方向の場合、i=0,1に対し、スキャン方向決定処理
120で求められたm0,m1を用いて、 di=1/mi (8) スキャン方向がy軸方向の場合、 di=mi (9) と計算できる。
【0014】〈画像塗りつぶし処理〉画素塗りつぶし処
理170では、スキャン方向がX軸方向の場合、第s番
目のスキャンラインに対し、X0とX1に挟まれる画素を
塗りつぶす。同様にして、スキャン方向がY軸方向の場
合は、交点Y0,Y1に挟まれる画素を塗りつぶす。
理170では、スキャン方向がX軸方向の場合、第s番
目のスキャンラインに対し、X0とX1に挟まれる画素を
塗りつぶす。同様にして、スキャン方向がY軸方向の場
合は、交点Y0,Y1に挟まれる画素を塗りつぶす。
【0015】〈交点更新処理〉交点の更新処理180で
は、交点の変分処理160で求めたd0、d1を用いて、
次のスキャンラインと各長辺との交点を、スキャン方向
がX軸方向の場合は、 X0←X0+d0 (10) X1←X1+d1 (11) により求め、スキャン方向がY軸方向の場合は、 Y0←Y0+d0 (12) Y1←Y1+d1 (13) により求める。
は、交点の変分処理160で求めたd0、d1を用いて、
次のスキャンラインと各長辺との交点を、スキャン方向
がX軸方向の場合は、 X0←X0+d0 (10) X1←X1+d1 (11) により求め、スキャン方向がY軸方向の場合は、 Y0←Y0+d0 (12) Y1←Y1+d1 (13) により求める。
【0016】上記画素塗りつぶし処理170と交点の更
新処理180を、スキャン範囲の決定処理140で求め
たs0,s1に含まれるスキャンライン全てについて行な
うことにより、塗りつぶし処理が完了する。
新処理180を、スキャン範囲の決定処理140で求め
たs0,s1に含まれるスキャンライン全てについて行な
うことにより、塗りつぶし処理が完了する。
【0017】
【発明の効果】以上述べたように、本発明によれば、細
長4角形の塗りつぶし処理を行なう時、2長辺のみの処
理で塗りつぶしを行なうので、処理効率を向上させるこ
とができる。
長4角形の塗りつぶし処理を行なう時、2長辺のみの処
理で塗りつぶしを行なうので、処理効率を向上させるこ
とができる。
【図1】画像処理システムの構成例を示すブロック図で
ある。
ある。
【図2】本発明による細長4角形画像塗りつぶし処理の
一実施例を示すフローチャートである。
一実施例を示すフローチャートである。
【図3】従来の多角形塗りづぶし処理を説明する図であ
る。
る。
【図4】細長4角形の一例を示す図である。
110 長辺データ入力 120 スキャン方向決定処理 130 頂点のソート処理 140 スキャン範囲の決定処理 150 交点計算処理 160 交点の変分計算処理 170 画素塗りつぶし処理 180 交点の更新処理
Claims (2)
- 【請求項1】 細長4角形の形状内部の画素を塗りつぶ
す画像塗りつぶし処理方法において、細長4角形の対向
する2つの長辺とスキャンラインとの交点を求め、該交
点の間の画素を塗りつぶすことを特徴とする画像塗りつ
ぶし処理方法。 - 【請求項2】 請求項1記載の画像塗りつぶし処理方法
において、 細長4角形の各長辺の傾きを求め、両者の平均により、
スキャン方向を決定するステップと、 前記細長4角形の各長辺の頂点座標により、スキャン範
囲を決定するステップと、 前記細長4角形の各長辺の傾きにより、スキャンライン
が歩進する毎の、スキャンラインと各長辺との交点の変
分を求めるステップと、 前記変分を用いて、前記スキャン範囲内の各スキャンラ
インに対して、順次、当該スキャンラインと各長辺の交
点を求め、該交点に挟まれる画素を塗りつぶすステップ
と、を有することを特徴とする画像塗りつぶし処理方
法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27088296A JPH10116349A (ja) | 1996-10-14 | 1996-10-14 | 画像塗りつぶし処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27088296A JPH10116349A (ja) | 1996-10-14 | 1996-10-14 | 画像塗りつぶし処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10116349A true JPH10116349A (ja) | 1998-05-06 |
Family
ID=17492286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27088296A Pending JPH10116349A (ja) | 1996-10-14 | 1996-10-14 | 画像塗りつぶし処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10116349A (ja) |
-
1996
- 1996-10-14 JP JP27088296A patent/JPH10116349A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3840014B2 (ja) | グラフィックス表示システムの走査変換実施装置 | |
US4975976A (en) | Image transformation method and device | |
JPH0927039A (ja) | オブジェクトにテクスチャを表示するためにテクセル値を計算する方法及び装置 | |
JPH0660173A (ja) | 画像を縮小する方法および装置 | |
GB2228850A (en) | Hidden surface removal using depth data | |
CN1661632A (zh) | 在绘图系统中执行除以w 运算的装置与方法 | |
US20060082578A1 (en) | Image processor, image processing method, and image processing program product | |
JPH10116349A (ja) | 画像塗りつぶし処理方法 | |
US20010055015A1 (en) | Area and span based Z-buffer | |
US6930686B1 (en) | Method and apparatus for drawing thick graphic primitives | |
US20100141649A1 (en) | Drawing device | |
JP2003187260A (ja) | 描画処理プログラム、描画処理プログラムを記録した記録媒体、描画処理装置及び方法 | |
JPH09114994A (ja) | 画像作成装置および方法 | |
JPH0350686A (ja) | 図形処理方式 | |
JP2002073001A (ja) | 四角形描画方法および装置 | |
JP3089740B2 (ja) | 線分描画装置 | |
KR0140283B1 (ko) | 화상편집장치의 화상 회전방법 | |
JP3180478B2 (ja) | セグメント生成装置 | |
JPH11306381A (ja) | グラフィック演算装置およびその方法 | |
JPH1186008A (ja) | 描画処理方法および描画処理装置 | |
JPH09245181A (ja) | アンチエイリアシング処理方法 | |
JP2780496B2 (ja) | 描画装置のクリッピング処理方式 | |
JP2001060272A (ja) | 光線追跡による画像表示装置 | |
JPH0554148A (ja) | 多角形クリツピング方式 | |
JP2004086479A (ja) | 図形を表示させるための情報処理装置、情報処理方法、その情報処理方法を実現するためのプログラム、およびそのプログラムを記録した記録媒体 |