JPH06150015A - フィルポリゴンの作成方法 - Google Patents

フィルポリゴンの作成方法

Info

Publication number
JPH06150015A
JPH06150015A JP31602692A JP31602692A JPH06150015A JP H06150015 A JPH06150015 A JP H06150015A JP 31602692 A JP31602692 A JP 31602692A JP 31602692 A JP31602692 A JP 31602692A JP H06150015 A JPH06150015 A JP H06150015A
Authority
JP
Japan
Prior art keywords
polygon
painting
fill
data
line segment
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
Application number
JP31602692A
Other languages
English (en)
Inventor
Ryohei Sakaguchi
良平 坂口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Japan Inc
Original Assignee
Yokogawa Hewlett Packard Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yokogawa Hewlett Packard Ltd filed Critical Yokogawa Hewlett Packard Ltd
Priority to JP31602692A priority Critical patent/JPH06150015A/ja
Publication of JPH06150015A publication Critical patent/JPH06150015A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】 ポリゴンの形状の如何によらず高速な塗りつ
ぶしを可能とする。 【構成】 任意形状ポリゴンの塗描方法であって、
(1)前記ポリゴンを含む塗描処理領域を定めるステッ
プ、(2)前記ポリゴンを構成する各線分と、前記線分
の両端から特定方向に引き出した二直線と、上記塗描処
理領域の外縁と、に挟まれる領域の塗描データをメモリ
内に作成するステップ、(3)前記各線分についての各
塗描データについて、排他的論理和を演算するステッ
プ、とからなることを特徴とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ図形処理
におけるフィルポリゴン(塗りつぶしたポリゴン)の作
成方法に関し、ポリゴンの形状の如何によらず高速な塗
りつぶし(塗描)が可能なフィルポリゴンの作成方法に
関する。
【0002】
【技術背景】従来、任意形状のフィルポリゴンを作成す
る場合、水平方向にスキャンして塗描領域を求め、これ
を垂直方向に画素単位で順次ずらして、ポリゴン全体を
塗描する方法が採用されている。この方法では、描かれ
たポリゴンを、所定領域内で水平スキャンを画素単位で
垂直方向にずらして行い、スキャンラインをポリゴンと
交差させ、X座標が小さい方から数えて奇数番目の交差
点と偶数番目の交差点に存在する画素を、スキャンライ
ンに沿って塗描している。
【0003】例えば、図7に示すように、任意形状のポ
リゴン(同図では、Pn1〜Pn5の頂点を持つ、5つ
の三角形と1つの五角形とから成る星形ポリゴン6)
を、Y座標がYnである水平ラインによりスキャンする
と、スキャンラインLは星形ポリゴン6とPn1,Pn
2,Pn3,Pn4で交差するので、Pn1からPn
2、およびPn3からPn4までを塗描する。そして、
この水平ラインについてのスキャンを画素単位で垂直方
向にずらして行うことで、星形ポリゴン6を構成する3
角形の内部が塗描される。なお、図7では、上方から下
方にスキャンしつつYnの高さまで塗描されている状態
を示している。このような塗描方法は、各種のソフトウ
ェアに利用されており、ハードウェア化(グラフッィク
用のプロセッサに上記塗描機能を組み込むこと)も比較
的容易である。
【0004】しかし、上記塗描方法は、次に述べるよう
な欠点を有している。 (1)スキャンラインLとポリゴン6との交点を記憶す
るメモリ領域(テーブル)が必要となる。このため、あ
るY座標のスキャンラインLと、これに交差するポリゴ
ン6を構成する線分(P1−P2,P4−P5,P2−
P3,P5−P1)との交点のX座標(Xn1,Xn
2,Xn3,Xn4)を求めてテーブルに登録しなくて
はならないため、テーブルの大きさによっては、扱える
ポリゴンの線の数に制限を設けざるを得ない。 (2)計算回数が多いため、前記ポリゴンを構成する各
線分と、前記線分の両端から特定方向に引き出した二直
線と、上記塗描処理領域の外縁と、に挟まれる領域の塗
描データをメモリ内に作成するスピードが遅い。すなわ
ち、あるY座標にポリゴン6を構成する線分が含まれて
いるか否かを判断する計算、交差点のX座標の計算、交
差点をX座標の小さい順または大きい順にソートする計
算等を、塗描処理領域内においてY方向に並んだ画素の
数と同回数行う必要がある。
【0005】このような方法に対して、任意形状のポリ
ゴンを多数の三角形に分解し、各三角形の内部を塗描す
るといった方法も従来知られているが、この方法はアル
ゴリズムが複雑となる等ため、塗描プログラムにバグが
生じる可能性が多い。
【0006】
【発明の目的】本発明は、ポリゴンの形状の如何によら
ず高速な塗りつぶし(塗描)が可能なフィルポリゴンの
作成方法を提供することを目的とする。
【0007】
【発明の概要】上記の目的を達成するために、本発明の
フィルポリゴンの作成方法では、まず、第1のステップ
で、ポリゴンを含む塗描処理領域を定める。この塗描処
理領域の形状は、通常、画素の並び方向(一般には水
平,垂直方向)を辺の方向とする長方形(正方形を含
む)とするが、必ずしもこれに限らない。例えば、円形
であったとしても、フィルポリゴンの作成は可能であ
る。この塗描処理領域の位置や大きさは、ポリゴンの描
画の終了と同時に決定されることもあるし、例えば、予
め作成されたポリゴンの形状データがメモリ内に存在す
るような場合において該ポリゴンを塗描するようなとき
には、ポリゴンの指定により決定される。
【0008】第2のステップでは、前記ポリゴンを構成
する各線分と、該線分の両端から特定方向に引き出した
二直線と、上記処理領域の外縁とに挟まれる領域の塗描
データをメモリ内に作成する。
【0009】ここで、特定方向とは、処理のし易さか
ら、通常画素の並び方向(水平または垂直方向)が選ば
れる。塗描処理領域が、水平,垂直方向の辺を持つ長方
形である場合には、ポリゴンを構成する各線分と長方形
の一辺とが構成する領域(塗描領域)は、該線分を斜辺
とし、該線分の両端から水平に引き出された二直線を上
底,下底とする直角台形(一方の底角が直角である台
形)となる。なお、塗描処理領域の外縁が、ポリゴンを
構成する線分と接している場合には、塗描領域は、該線
分を斜辺とし該線分の一端から引き出された直線を底辺
とする直角三角形となる。台形の塗描領域は三角形と四
角形の組合せであることから、この場合には塗描領域
を、三角形と四角形のみで構成することができる。三角
形と四角形については、塗描専用のプロセッサも提供さ
れているので、より高速に塗描処理を行うこともでき
る。
【0010】第3のステップでは、前記各線分について
の各塗描データについて、排他的論理和を演算する。こ
の演算は、どの線分について先に塗描データを作成する
かは任意であり、例えば、ポリゴンが3つの線分A,
B,Cにより構成される場合、最初にCについて、次に
Bについての塗描データを作成し、これらの排他的論理
和をとってもよいし、最初にBについて、次にAについ
ての塗描データを作成し、これらの排他的論理和をとっ
てもよい。
【0011】ポリゴンは、直線により構成されるが、ス
プライン曲線等も微視的に見ると直線の集合とすること
ができる。したがって、本発明には、広く曲線により構
成された図形を含んでいる。また、ポリゴンは通常の四
角形、五角形等、それを構成する線分同士が交差してい
ない図形であってもよいし、数字の「8」のように線分
同士が交差する図形であってもよい。ポリゴンは、通常
は3以上の線分が必要とされるが、2つの線分により構
成される図形(L字形)も本発明のポリゴンに含まれ
る。この場合には、開いた線分の先端同士を結ぶ仮想線
を、ポリゴンを構成する線分とみなすことで本発明が適
用される。さらに、3以上の線分から構成されていて
も、完全には閉じていない図形(例えば、コ字形等)に
ついても、本発明は適用できる。このような、閉じてい
ない図形についても、何れの線分とも接続されていない
線分の先端同士を結ぶ仮想線を、ポリゴンを構成する線
分とみなすことで本発明が適用される。
【0011】本発明では、必要とするメモリ領域は作成
したいポリゴンのサイズに依存するが、扱えるポリゴン
の線分の数に制限はない。したがって、スプライン曲線
が複雑に入り組んだポリゴンの作成も容易にできる。ま
た、本発明では、スキャンラインとポリゴンを構成する
線分との交点を求める等の複雑な計算の必要はないの
で、高速なフィルポリゴンの作成がなされる。
【0012】
【実施例】図1の流れ図、図3の塗描過程図により図2
に示すポリゴン1を塗描する場合を詳細に説明する。図
6に本発明のフィルポリゴンの作成方法の実施に使用す
るハードウェアの一例を示す。同図では、バス51には
CPU52、ROM53、RAM54、入力装置55、
出力装置56が接続された様子が示されている。CPU
52はROM53や図示しない補助記憶装置等からRA
M54に読み込まれたプログラムによって動作する。こ
のプログラムは、マウス,タブレット,キーボード等の
入力装置55からのデータを受け取ったり、計算を行っ
たりするほか、表示装置,プリンタ等の出力装置56に
データを転送したり、RAM54や前記補助記憶装置等
に計算結果の書き込みを行ったりする。本実施例では、
以下に述べる処理や判断は、CPU52がROM53ま
たはRAM54に書き込まれたプログラムにより行われ
る。また、ポリゴンの各頂点の座標は、予め入力されて
RAM54に記憶されているものとする。なお、以下に
述べるS1〜S6は図1に示すように、本発明における
処理の流れを示している。
【0013】(1)S1では、最初に塗描処理領域を定
める。この処理領域の決定は、上記RAM54に記憶さ
れているポリゴンの各頂点座標により決定することがで
きる。図2では、説明の便宜上、塗描処理領域10はポ
リゴン1のX,Y方向最大値よりやや大きく、X,Y方
向最小値よりもやや小さく設定してあるが、塗描処理領
域10の大きさを、X,Y方向最大値,最小値に合わせ
て定めることもできることは勿論である。なお、ここで
は塗描処理領域10のX,Y方向の最大値をそれぞれX
max,Ymaxとし、X,Y方向の最小値をそれぞれ
Xmin,Yminとしてある。
【0014】(2)S2では「次に処理するべきベクタ
が存在するか」否かが判断され、該ベクタが存在すれ
ば、処理対象となっているベクタ〔(Xα,Yα),
(Xβ,Yβ)〕(α,β=1,2,・・・、α≠β)
についての処理が行われる。ここで、ベクタ〔(Xα,
Yα),(Xβ,Yβ)〕とは、塗描処理対象となる線
分を座標表示したものであり、本実施例では表1で表さ
れる。
【0015】
【表1】 線 分 ベ ク タ P1−P2:〔(X1,Y1),(X2,Y2)〕 P2−P3:〔(X2,Y2),(X3,Y3)〕 ・ ・ ・ ・ ・ ・ P5−P1:〔(X5,Y5),(X1,Y1)〕
【0016】ここでは、処理が開始されたばかりである
ので、「次に処理すべきベクタ」が存在している。現在
処理するべきベクタは、当初から分かっているものとす
る。なお、処理の順番には特別な規則があるわけではな
いが、ここでは上記表1に掲げられた順にその後の処理
が進められるものとする。したがって、まず〔(X1,
Y1),(X2,Y2)〕が処理対象となる。
【0017】(3)S3では、処理対象となるベクタの
各Y座標が等しいか否か判断される。これらの座標が等
しい場合には、後述するように処理が中断され、S1に
戻り、等しくない場合には次の処理(S4)に移行す
る。ここでは、Y1≠Y2であるので、処理はS4に移
行する。
【0018】(4)S4では、処理対象となるベクタ
〔(Xα,Yα),(Xβ,Yβ)〕と、その両端座
標(Xα,Yα),(Xβ,Yβ)からX軸に平行に正
の方向に向けて引いた2本の線と、塗描処理領域10
のY軸に平行な右側の辺、とに挟まれる領域に形成され
る塗描データがメモリ(RAM4)に格納される。この
場合には、塗描対象となるベクタは〔(X1,Y1),
(X2,Y2)〕であるので、その塗描データは図3
(A)下段で示すようになる(該塗描データ領域を
「1」で、非塗描データ領域を「0」で示す)。そし
て、この塗描処理領域10についての塗描データと、そ
の際に塗描処理領域についてのすでに作成されている塗
描データ(前回作成の塗描データ)とのXORが演算さ
れる。ここでは、「すでに作成されているデータ」は、
存在していないことから、塗描処理領域10全体につい
て「0」(図3(A)の上段参照)である。したがっ
て、この場合演算後の塗描データは、図3(B)上段に
示すように、同図(A)下段と同一である。
【0019】なお、上記塗描データを作成は、メモリ上
での台形(図3(A)下段等参照)の塗描処理を意味し
ている。この場合、台形の塗描はどのような方法でもよ
く、水平ラインについてのスキャンを画素単位で垂直方
向にずらして行う方法でもよいし、前述したように台形
を直角三角形と長方形に分解して塗描する方法でもよ
い。
【0020】(5)次に、塗描されている台形状のデー
タ領域の上底または下底から、画素1列(線1本)を消
去または付加する(S6)。本実施例では、XY座標
を、画素を基準に(画素の中心を基準に)に定めている
ため、上記消去を実行しておかないと、ポリゴン1につ
いての塗描の全処理が終了した後、非塗描領域に不要な
水平塗描線が現れたり、塗描領域に不要な水平非塗描線
が現れたりする場合がある。本実施例では、S5におい
て、Yα>Yβの判断を行い、台形の上底から上記画素
1列の消去または付加を行うような場合分けを行ってい
る。この場合分けに応じ、上記関係が成立するときに
は、現在の塗描データと、線分(Xα,Yα)−(Xm
ax,Yα)が塗描された処理領域とのXORが演算さ
れ(S6a)、上記関係が成立しないときは、現在の塗
描データと、線分(Xβ,Yβ)−(Xmax,Yβ)
が塗描された処理領域とのXORが演算される(S6
b)。この後、処理はS2に移行する。今の場合、Y1
<Y2であるので、S6bに処理が移行し、図3(B)
上段に示した塗描データと、同図(B)下段に示す線分
とのXORが演算され、図3(C)上段に示す塗描デー
タが作成される。
【0021】(6)次に、P2−P3、すなわちベクタ
〔(X2,Y2),(X3,Y3)〕について、上記と
同様の処理が行われる。すなわち、S2において、図3
(C)に示すように、〔(X2,Y2),(X3,Y
3)〕について塗描データが作成され(下段参照)、こ
れと上段に示した塗描データとのXORが演算される。
この結果、塗描データは、図3(D)上段に示すよう
に、上記2つの塗描データ間に「0」の線が形成された
データに書き換えられる。S5での判断により、処理は
S6aに移行し、図3(D)下段に示す塗描データと、
上記図3(D)上段に示す塗描データとのXORが演算
される。この結果、図3(E)上段に示すように、上記
塗描データ間の「0」の線は消去される。
【0022】(7)ついで、P3−P4すなわち、ベク
タ〔(X3,Y3),(X4,Y4)〕についてS2,
S3の処理が行われる。ここでは、Y3=Y4であるこ
とから、S3の判断により、ベクタ〔(X3,Y3),
(X4,Y4)〕についてのその後の処理はなされず、
P4−P5、すなわちベクタ〔(X4,Y4),(X
5,Y5)〕についてのS2,S3,S4の処理が行わ
れる。S4では、図3(E)に示すように、下段に示す
ベクタ〔(X4,Y4),(X5,Y5)〕についての
塗描データと、上段に示したすでに作成されている塗描
データとのXORが演算され、図3(F)上段に示す塗
描データが作成される。
【0023】この結果、処理はS5を経てS6に移行
し、図3(F)下段に示す塗描データ(図3(E)下段
の台形の上底に相当する線)と、前述の同(F)上段に
示す塗描データとのXORが演算され、図3(G)に示
す塗描データが作成される。 (8)さらに、P4−P5、すなわちベクタ〔(X4,
Y4),(X5,Y5)〕についてS2の処理が行われ
る。S2では、〔(X4,Y4),(X5,Y5)〕
が、「次に処理するべきベクタベクタ」を有していない
ことから、処理は終了する。
【0024】図4は、上記(1)〜(8)に述べた処理
を、五角形と5つの三角形により構成された星形ポリゴ
ン2(頂点をP1〜P5で示す)に適用して、フィルポ
リゴン2′を作成する場合の説明図である。同図に示す
ように、塗描処理領域20内に作成された星形ポリゴン
2は、各線分により形成される塗描データ21〜25と
の間で順次XORが演算され、フィルポリゴン2′が作
成される。
【0025】図5は、同じく上記(1)〜(8)に述べ
た処理を、白抜きの星形ポリゴン3に適用して、フィル
ポリゴン3′を作成する場合の説明図である。同図で
は、塗描処理領域30内に作成された星形ポリゴン3
(頂点をP1〜P10で示す)は、各線分により形成さ
れる塗描データ31〜40との間でトーナメント方式で
順次XORが演算され、フィルポリゴン3′が作成され
ている。
【0026】以上のようにして作成されるフィルポリゴ
ンの塗描の面種は、いわゆるベタ塗りに限らず、縞模様
や梨地等のハッチングが含まれることは言うまでもな
い。
【0027】
【発明の効果】
(1)スキャンラインとポリゴンを構成する線分との交
点を求める等の複雑な計算の必要はなく、線の描画と同
等の計算量のみで、高速にフィルポリゴンの作成をする
ことができる。 (2)扱えるポリゴンの線分の数に制限はない。したが
って、スプライン曲線が複雑に入り組んだポリゴンの作
成が可能となる。 (3)グラフィックプロセッサを用いたり、専用のハー
ドウェア化も容易であり、CAD等の図形処理装置に有
効であるばかりでなく、アウトラインフォントの作成を
行うレーザプリンタ等の図形出力装置にも有効である。
【図面の簡単な説明】
【図1】本発明の処理の流れの一例を示す図である。
【図2】本発明の実施例を説明するために例示されたポ
リゴンを示す図である。
【図3】図2のポリゴンを用いた本発明の実施例の説明
図である。
【図4】本発明の他の実施例の説明図である。
【図5】本発明のさらに他の実施例の説明図である。
【図6】本発明において使用するハードウェア構成を示
す図である。
【図7】従来のポリゴンの塗描方法を示す図である。
【手続補正書】
【提出日】平成4年12月6日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 任意形状ポリゴンの塗描方法であって、
    (1)前記ポリゴンを含む塗描処理領域を定めるステッ
    プ、(2)前記ポリゴンを構成する各線分と、前記線分
    の両端から特定方向に引き出した二直線と、上記塗描処
    理領域の外縁と、に挟まれる領域の塗描データをメモリ
    内に作成するステップ、(3)前記各線分についての各
    塗描データについて、排他的論理和を演算するステッ
    プ、とからなることを特徴とするフィルポリゴンの作成
    方法。
  2. 【請求項2】 任意形状ポリゴンの塗描方法であって、
    (1)前記ポリゴンを含む長方形の塗描処理領域を定め
    るステップ、(2)前記ポリゴンを構成する各線分と、
    上記線分の両端から前記長方形の特定の一辺と、上記線
    分の両端から前記一辺に引き出した二直線と、に挟まれ
    る台形または三角形領域の塗描データをメモリ内に作成
    するステップ、(3)前記各線分についての各塗描デー
    タについて、排他的論理和を演算するステップ、とから
    なることを特徴とするフィルポリゴンの作成方法。
JP31602692A 1992-10-31 1992-10-31 フィルポリゴンの作成方法 Pending JPH06150015A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31602692A JPH06150015A (ja) 1992-10-31 1992-10-31 フィルポリゴンの作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31602692A JPH06150015A (ja) 1992-10-31 1992-10-31 フィルポリゴンの作成方法

Publications (1)

Publication Number Publication Date
JPH06150015A true JPH06150015A (ja) 1994-05-31

Family

ID=18072427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31602692A Pending JPH06150015A (ja) 1992-10-31 1992-10-31 フィルポリゴンの作成方法

Country Status (1)

Country Link
JP (1) JPH06150015A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111985033A (zh) * 2020-08-19 2020-11-24 北京博能科技股份有限公司 一种cad图纸处理方法、装置和电子设备
CN113960610A (zh) * 2021-09-09 2022-01-21 武汉长江航道救助打捞局 一种侧扫声呐的无缝地理编码成图方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111985033A (zh) * 2020-08-19 2020-11-24 北京博能科技股份有限公司 一种cad图纸处理方法、装置和电子设备
CN111985033B (zh) * 2020-08-19 2024-02-02 北京博能科技股份有限公司 一种cad图纸处理方法、装置和电子设备
CN113960610A (zh) * 2021-09-09 2022-01-21 武汉长江航道救助打捞局 一种侧扫声呐的无缝地理编码成图方法和系统

Similar Documents

Publication Publication Date Title
US6788301B2 (en) Active pixel determination for line generation in regionalized rasterizer displays
JP3840014B2 (ja) グラフィックス表示システムの走査変換実施装置
US4897805A (en) Method and apparatus for performing polygon fills in graphical applications
EP0323558A2 (en) Polygon filling method
JP4327105B2 (ja) 描画方法、画像生成装置、および電子情報機器
US6894695B2 (en) Apparatus and method for acceleration of 2D vector graphics using 3D graphics hardware
US7898549B1 (en) Faster clears for three-dimensional modeling applications
JP3433828B2 (ja) ピクセル画像のエッジ改良のための方法と装置
US20020075285A1 (en) Pixel zoom system and method for a computer graphics system
JP2681367B2 (ja) 図形処理方法及びその装置
US6992670B2 (en) Active region determination for line generation in regionalized rasterizer displays
JPH06150015A (ja) フィルポリゴンの作成方法
JPS634380A (ja) 計算機図形処理装置
EP1139294B1 (en) Graphical image system and apparatus
EP0268038B1 (en) Graphics processing system
KR100544803B1 (ko) 영상 프리미티브의 고속 처리
US6791547B2 (en) Auxiliary active region determination for line width generation in regionalized rasterizer displays
JPH0723997B2 (ja) 文字・図形描画装置
JPH0350686A (ja) 図形処理方式
CN115049564A (zh) 一种图片锐化处理方法及处理终端
JP2614111B2 (ja) 直線表示要素と矩形ウインドウの相互関係の検出方法
JP2782904B2 (ja) 多角形塗りつぶし方式
JP4320604B2 (ja) 画像処理方法および画像処理装置
JPH0371377A (ja) 画像処理方法
JPH10261095A (ja) 画像処理装置及び画像処理方法