JPH01191275A - 多角形の充填方法 - Google Patents
多角形の充填方法Info
- Publication number
- JPH01191275A JPH01191275A JP63310301A JP31030188A JPH01191275A JP H01191275 A JPH01191275 A JP H01191275A JP 63310301 A JP63310301 A JP 63310301A JP 31030188 A JP31030188 A JP 31030188A JP H01191275 A JPH01191275 A JP H01191275A
- Authority
- JP
- Japan
- Prior art keywords
- polygon
- line
- filling
- algorithm
- value
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—Two-dimensional [2D] image generation
- G06T11/40—Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明はグラフィック・タスク・デイスプレィ、特にグ
ラフィック・タスク・デイスプレィ・システム上に表示
される多角形の境界線により定義された領域内を充填す
るシステム及び方法に関する。
ラフィック・タスク・デイスプレィ・システム上に表示
される多角形の境界線により定義された領域内を充填す
るシステム及び方法に関する。
B、従来技術
J 、 D 、 Foley及びA 、 Van Da
m著rFuntamentals of Intera
ctive ComputerGraphicsJ (
Addison Wesley、 1982年刊)、4
56〜460ページに記載されているように、多角形を
充填(fill)する永めの一般的なアルゴリズムが存
在する。この一般的なアルゴリズムは辺テーブル駆動ア
ルゴリズムと呼ばれる。この型のアルゴリズムは、コン
ピュータ・グラフィックのアプリケーションで、あるグ
ラフィック・タスクを実行するために呼び出される標準
的なルーチンの1つとして使用される。それらのグラフ
ィック・タスクには、直線、円、弧等の描画及び多角形
充填が含まれる。これらのタスクは、典型的な場合、グ
ラフィック・サポート・ライブラリ(GSL)等のグラ
フィック機能を含むライブラリとして供給される。一般
に、グラフィック・サポート・ライブラリは、典型的に
は処理システムと一緒に供給されるグラフィック・サブ
ルーチンのパッヶ一ジであり、従ってユーザーは具体的
なデイスプレィ装置の複雑さも又そのデイスプレィ装置
へどのように書き込みを行なうかも知ることなしに高レ
ベルのインターフェースを用いてデイスプレィに書込み
を行なうことができる。
m著rFuntamentals of Intera
ctive ComputerGraphicsJ (
Addison Wesley、 1982年刊)、4
56〜460ページに記載されているように、多角形を
充填(fill)する永めの一般的なアルゴリズムが存
在する。この一般的なアルゴリズムは辺テーブル駆動ア
ルゴリズムと呼ばれる。この型のアルゴリズムは、コン
ピュータ・グラフィックのアプリケーションで、あるグ
ラフィック・タスクを実行するために呼び出される標準
的なルーチンの1つとして使用される。それらのグラフ
ィック・タスクには、直線、円、弧等の描画及び多角形
充填が含まれる。これらのタスクは、典型的な場合、グ
ラフィック・サポート・ライブラリ(GSL)等のグラ
フィック機能を含むライブラリとして供給される。一般
に、グラフィック・サポート・ライブラリは、典型的に
は処理システムと一緒に供給されるグラフィック・サブ
ルーチンのパッヶ一ジであり、従ってユーザーは具体的
なデイスプレィ装置の複雑さも又そのデイスプレィ装置
へどのように書き込みを行なうかも知ることなしに高レ
ベルのインターフェースを用いてデイスプレィに書込み
を行なうことができる。
いくつかの単純な形の多角形の場合、このアルゴリズム
は非常に時間がかかるようになる。グラフィック・アプ
リケーションのユーザーがライブラリから多角形充填ル
ーチンを選択した後にデイスプレィ・スクリーンが結果
の充填多角形を表示する前に待機しなければならない時
に、アルゴリズムは過度に時間を消費する。ユーザーを
満足させるには、充填される多角形の精度をトレード・
オフすることなしに可能な限り充填速度が速いことが重
要である。
は非常に時間がかかるようになる。グラフィック・アプ
リケーションのユーザーがライブラリから多角形充填ル
ーチンを選択した後にデイスプレィ・スクリーンが結果
の充填多角形を表示する前に待機しなければならない時
に、アルゴリズムは過度に時間を消費する。ユーザーを
満足させるには、充填される多角形の精度をトレード・
オフすることなしに可能な限り充填速度が速いことが重
要である。
他の公知のアルゴリズムでは、アルゴリズム・ルーチン
は、J 、 E 、 Bresenbam、 rAl
gorithmfor Computer Contr
ol of a Digital PlotterJ、
IBM System Journal、 Vol、
4. No、 1(1965)、25〜30ページに記
載されたBresenhamアルゴリズムを使用する。
は、J 、 E 、 Bresenbam、 rAl
gorithmfor Computer Contr
ol of a Digital PlotterJ、
IBM System Journal、 Vol、
4. No、 1(1965)、25〜30ページに記
載されたBresenhamアルゴリズムを使用する。
BresenhamアルゴリズムはJ。
D、Foley及びA、 Van Dam著の前掲書の
433〜436ページにも記載されている。Brese
nhamアルゴリズムは、多角形の境界線を走査し、多
角形の境界線を構成する点を生成するために使用される
。しかし、この公知の多角形充填アルゴリズムは、走査
線の変更後に最初の点を選択する。このアルゴリズムに
伴なう問題点は、それが多角形の境界内を正確に充填し
ないことである。結果として表示される多角形は、あた
かも不完全に充填されたかのように見える。即ち、充填
は、全ての位置で多角形の境界に到達するとは限らない
。
433〜436ページにも記載されている。Brese
nhamアルゴリズムは、多角形の境界線を走査し、多
角形の境界線を構成する点を生成するために使用される
。しかし、この公知の多角形充填アルゴリズムは、走査
線の変更後に最初の点を選択する。このアルゴリズムに
伴なう問題点は、それが多角形の境界内を正確に充填し
ないことである。結果として表示される多角形は、あた
かも不完全に充填されたかのように見える。即ち、充填
は、全ての位置で多角形の境界に到達するとは限らない
。
多角形には種々の異なった形の多角形よりもその特定の
多角形の形に関してより効率的な多角形充填ルーチンが
存在しうる。論文rMethod t。
多角形の形に関してより効率的な多角形充填ルーチンが
存在しうる。論文rMethod t。
determine the Convexity o
f PolygonsJ 、 IBMTechnica
l Disclosure Bulletin、 Vo
l、 28. No。
f PolygonsJ 、 IBMTechnica
l Disclosure Bulletin、 Vo
l、 28. No。
5 (1985) 、 2203〜2208ページは、
凸型多角形に関して、一般的多角形に関するよりも効率
的な充填アルゴリズムが存在することを開示している。
凸型多角形に関して、一般的多角形に関するよりも効率
的な充填アルゴリズムが存在することを開示している。
第2A図を参照すると、多角形10は、頂点A、B、C
,D、Eにおいてその内角の全てが180度よりも小さ
ければ、凸である。第2B図はこの定義により凸でない
多角形11を示している。というのは頂点Eにおける内
角が180度よりも大きいからである。
,D、Eにおいてその内角の全てが180度よりも小さ
ければ、凸である。第2B図はこの定義により凸でない
多角形11を示している。というのは頂点Eにおける内
角が180度よりも大きいからである。
この論文には、全ての内角が180度よりも小さいか否
かを、従って多角形が凸か否かを決定する方法が開示さ
れている。この方法は、多角形の辺によって与えられる
2つの隣接するベクトルに関して外積を取る。もし全て
の外積が同じ符号を有するならば、多角形は凸である。
かを、従って多角形が凸か否かを決定する方法が開示さ
れている。この方法は、多角形の辺によって与えられる
2つの隣接するベクトルに関して外積を取る。もし全て
の外積が同じ符号を有するならば、多角形は凸である。
外積は多角形の各側辺が同じ方向に転回しているか否か
を示す。
を示す。
第2A図に示すように、頂点Eから出発し矢印12で示
される方向に多角形10の周囲を進むと。
される方向に多角形10の周囲を進むと。
全ての転回は左側に向うものである。しかし、第1B図
では、頂点りから出発して矢印13の方向に多角形11
の周囲を進むと、頂点Eでの転回は右方向であるが、他
の全ての転回は左方向である。
では、頂点りから出発して矢印13の方向に多角形11
の周囲を進むと、頂点Eでの転回は右方向であるが、他
の全ての転回は左方向である。
しかし、上記のテストは、第3A図及び第3B図に示す
。多角形20.21を凸として分類するであろう。とい
うのは、全ての内容が180度よりも小さいからである
。また第3A図又は第3B図のどちらにも示されている
ように、多角形20.21の周囲を頂点Bから矢印22
.23の方向に進む時、全ての転回は衣向きである。し
かし、多角形20.21は交差線を有し、1周よりも多
く転回を行なう。これらの型の多角形は、より複雑であ
り、以前に従来技術で知られていたより単純で効率の良
い充填アルゴリズムによっては正確に充填されない。従
って、上述の論文に記載されている方法は、全ての型の
多角形に関して多角形の凸性を正確に判定しない。
。多角形20.21を凸として分類するであろう。とい
うのは、全ての内容が180度よりも小さいからである
。また第3A図又は第3B図のどちらにも示されている
ように、多角形20.21の周囲を頂点Bから矢印22
.23の方向に進む時、全ての転回は衣向きである。し
かし、多角形20.21は交差線を有し、1周よりも多
く転回を行なう。これらの型の多角形は、より複雑であ
り、以前に従来技術で知られていたより単純で効率の良
い充填アルゴリズムによっては正確に充填されない。従
って、上述の論文に記載されている方法は、全ての型の
多角形に関して多角形の凸性を正確に判定しない。
他の問題点は、多角形をテストする以前の方法が、第4
A図及び第4B図に示すような形の多角形を、他の全て
の一般的な多角形と一緒に分類した事である。第4A図
及び第4B図の多角形30.31はX−凹性(x −c
oncavity)を有するものとして知られている。
A図及び第4B図に示すような形の多角形を、他の全て
の一般的な多角形と一緒に分類した事である。第4A図
及び第4B図の多角形30.31はX−凹性(x −c
oncavity)を有するものとして知られている。
また、第4B図の多角形31はX凹性と交差線の両者を
有している。
有している。
B0発明が解決しようとする問題点
本発明の目的は、結果として得られる充填多角形の境界
線を定めるBresenhamアルゴリズムの点を含め
ることによって多角形を正確に充填することである。
線を定めるBresenhamアルゴリズムの点を含め
ることによって多角形を正確に充填することである。
本発明の他の目的は、任意の与えられた型の多角形に関
して多角形が凸か否かを正しく判定することである。
して多角形が凸か否かを正しく判定することである。
本発明の他の目的は、多角形の境界線まで且つ境界線を
含めて多角形を完全に充填するようにユーザーに見える
、凸多角形のための高速充填ルーチンを利用することで
ある。
含めて多角形を完全に充填するようにユーザーに見える
、凸多角形のための高速充填ルーチンを利用することで
ある。
本発明の他の目的は、交差線を持たないX凹性の多角形
及び交差線を持つX凹の多角形に関して第2の高速充填
ルーチンを利用することである。
及び交差線を持つX凹の多角形に関して第2の高速充填
ルーチンを利用することである。
C1問題点を解決するための手段
本発明のシステム及び方法は、多角形の具体的な形に依
存して多角形を充填するのに必要な処理時間を最適化す
るために3つの多角形充填アルゴリズムの1つを実施す
る。多角形が特定の多角形充填アルゴリズムにより充填
されるべき多角形の類に入るか否かを判定するために、
多角形に対して種々のテストが行なわれる。
存して多角形を充填するのに必要な処理時間を最適化す
るために3つの多角形充填アルゴリズムの1つを実施す
る。多角形が特定の多角形充填アルゴリズムにより充填
されるべき多角形の類に入るか否かを判定するために、
多角形に対して種々のテストが行なわれる。
多角形の1つの類、即ち狭い意味での凸多角形の場合、
多角形の充填に必要な処理時間は第1の多角形充填アル
ゴリズムにより最適化される。これは多角形の半分で多
角形の各走査線毎に1つの最大値と、多角形の他半分で
多角形の各走査線毎に1つの最小値を記憶することによ
る。このアルゴリズムは、多角形に沿った特定の点にお
いてその点が最大値又は最小値の一部か否かを知ってい
るので正確に1つの値を記憶する。
多角形の充填に必要な処理時間は第1の多角形充填アル
ゴリズムにより最適化される。これは多角形の半分で多
角形の各走査線毎に1つの最大値と、多角形の他半分で
多角形の各走査線毎に1つの最小値を記憶することによ
る。このアルゴリズムは、多角形に沿った特定の点にお
いてその点が最大値又は最小値の一部か否かを知ってい
るので正確に1つの値を記憶する。
他の類の多角形、即ちX凹性多角形の場合、第1の多角
形充填アルゴリズムはこの数の多角形を正しく充填する
には不適当である。この類の多角形では、多角形を正し
く充填するのに必要な処理時間は、多角例の各走査線毎
に2つの最小値及び最大値を記憶することにより最適化
される。次に各走査線毎に、最も小さい最小値から最も
大きな最大値へ充填線が引かれる。
形充填アルゴリズムはこの数の多角形を正しく充填する
には不適当である。この類の多角形では、多角形を正し
く充填するのに必要な処理時間は、多角例の各走査線毎
に2つの最小値及び最大値を記憶することにより最適化
される。次に各走査線毎に、最も小さい最小値から最も
大きな最大値へ充填線が引かれる。
第1の多角形充填アルゴリズムは、厳密な意味で凸な多
角形を充填する。第2の多角形充填アルゴリズムは、第
1のアルゴリズムよりも大きな多角形集合を充填する。
角形を充填する。第2の多角形充填アルゴリズムは、第
1のアルゴリズムよりも大きな多角形集合を充填する。
第2の多角形充填アルゴリズムは、1回走査当り正確に
1本の連続線で充填できる全ての多角形を充填する。こ
の集合に属する多角形はX凹性と交差線を持つことがあ
る。
1本の連続線で充填できる全ての多角形を充填する。こ
の集合に属する多角形はX凹性と交差線を持つことがあ
る。
第1の多角形充填アルゴリズムは、2つの条件の組み合
せを検査することによって、多角形が厳密に凸か否かを
判定する。第1に、多角形は、−定の転回方向を有する
か否かが検査される。即ち、多角形の各々の連続した線
が同じ方向に曲がるか否かが判定される。このテストの
結果として、方向が時計回り又は反時計回りとして決定
される。
せを検査することによって、多角形が厳密に凸か否かを
判定する。第1に、多角形は、−定の転回方向を有する
か否かが検査される。即ち、多角形の各々の連続した線
が同じ方向に曲がるか否かが判定される。このテストの
結果として、方向が時計回り又は反時計回りとして決定
される。
点(xo、 yO)、(xi、yl)、(x2+y2)
を有する任意の2本の隣接線に関して、ベクトル積の符
号に関する計算は次式の通りである。
を有する任意の2本の隣接線に関して、ベクトル積の符
号に関する計算は次式の通りである。
(yl−yO) 申 (x2−xl) (
y2 3’1 ) 本 (xi−xo) もし上記の式がゼロよりも大きければ、多角形は右回り
、すなわち時計回りである。もし上式がゼロよりも小さ
ければ、多角形は左回り、すなわち反時計回りである。
y2 3’1 ) 本 (xi−xo) もし上記の式がゼロよりも大きければ、多角形は右回り
、すなわち時計回りである。もし上式がゼロよりも小さ
ければ、多角形は左回り、すなわち反時計回りである。
もし全ての隣接線が同じベクトル積の符号を有するなら
ば、多角形は、一定の転回方向を有するものとして、第
1の条件を満足する。
ば、多角形は、一定の転回方向を有するものとして、第
1の条件を満足する。
多角形が厳密に凸であるために満足しなければならない
第2の条件は、y方向−周テストである。
第2の条件は、y方向−周テストである。
これは内角の和が360度に等しいようにすることと等
価である。
価である。
1周テストは、もし出発位置が最下部の頂点であり多角
形の辺に沿って連続的に進むならば、連続した辺のy座
標は最初は全て増加し、次に減少しなければならないこ
とを述べている6言いかえると、多角形の辺の第1の群
は最初に全て上昇し。
形の辺に沿って連続的に進むならば、連続した辺のy座
標は最初は全て増加し、次に減少しなければならないこ
とを述べている6言いかえると、多角形の辺の第1の群
は最初に全て上昇し。
多角形の辺の第2の群は全て下降しなければならない。
一周条件は、多角形の第1の辺で出発することにより全
ての隣接頂点に関してy (i+1) −y(i)の代
数的符号が正確に2又は3回変化するならば満足される
。水平線は以前の線と同じ符号を有しているものと考え
られる。このテストを通過した多角形はy旧姓を有して
いる。即ち、yの任意の値に関して、1つの且つ1つだ
けの連続的な充填線が存在する。−周テストのために多
角形の点の周りを巡回する時、y値の最大値及び最小値
並びにその位置がメモリに記憶される。
ての隣接頂点に関してy (i+1) −y(i)の代
数的符号が正確に2又は3回変化するならば満足される
。水平線は以前の線と同じ符号を有しているものと考え
られる。このテストを通過した多角形はy旧姓を有して
いる。即ち、yの任意の値に関して、1つの且つ1つだ
けの連続的な充填線が存在する。−周テストのために多
角形の点の周りを巡回する時、y値の最大値及び最小値
並びにその位置がメモリに記憶される。
もし一定転回方向テストと一周テストが満足されると、
その多角形は厳密に凸である。多角形の線は2組に分割
され、その1組の線は走査線の最大値を定め且つ他の組
は最小値を定めるようにできる。
その多角形は厳密に凸である。多角形の線は2組に分割
され、その1組の線は走査線の最大値を定め且つ他の組
は最小値を定めるようにできる。
厳密に凸の多角形の場合、yの値当り2つの値の単純な
表が使われる。yの値は、ゼロから、興味のあるデイス
プレィ上の走査線の最大数にわたる。yの最小値の点か
ら出発し反時計回りの方向に進むと、多角形の各線毎に
それが交差する走査線毎のその線の最大値が表に保存さ
れる。同じ走査線上で2つの線が交差する頂点では例外
処理が行なわれる。両方の線が共有する画素の走査線上
の1つの最大値を記憶するために特別な処理が行なわれ
る。これはy方向の最大頂点(y max)に至るまで
、多角形の各線毎に続行される。この点から、線は最小
走査線だけを定める。多角形の各線毎に、それが交差す
る走査線毎にその線の最小値が表に保存される。再び、
2つの線が同じ走査線で交わる頂点では例外処理が行な
おれる。両方の線が共有し得る画素の走査線上の1つの
最小値を記憶するために特別な処理が行なおれる。多角
形の全部の線を巡回することにより表を埋めた後。
表が使われる。yの値は、ゼロから、興味のあるデイス
プレィ上の走査線の最大数にわたる。yの最小値の点か
ら出発し反時計回りの方向に進むと、多角形の各線毎に
それが交差する走査線毎のその線の最大値が表に保存さ
れる。同じ走査線上で2つの線が交差する頂点では例外
処理が行なわれる。両方の線が共有する画素の走査線上
の1つの最大値を記憶するために特別な処理が行なわれ
る。これはy方向の最大頂点(y max)に至るまで
、多角形の各線毎に続行される。この点から、線は最小
走査線だけを定める。多角形の各線毎に、それが交差す
る走査線毎にその線の最小値が表に保存される。再び、
2つの線が同じ走査線で交わる頂点では例外処理が行な
おれる。両方の線が共有し得る画素の走査線上の1つの
最小値を記憶するために特別な処理が行なおれる。多角
形の全部の線を巡回することにより表を埋めた後。
1つの実施例では、y m111からy waxの範囲
内のy毎に1本の水平線を描くためにGSLマルチライ
ン描画ルーチンが呼び出される。各走査線毎に、選ばれ
た最小画素から選ばれた最大画素まで線を描くために他
の良好な実施例は他の方法を用いてもよい。
内のy毎に1本の水平線を描くためにGSLマルチライ
ン描画ルーチンが呼び出される。各走査線毎に、選ばれ
た最小画素から選ばれた最大画素まで線を描くために他
の良好な実施例は他の方法を用いてもよい。
第2の多角形充填アルゴリズムは、第1の多角形充填ア
ルゴリズムよりも大きな多角形集合を充填する。もし多
角形が走査線当り1本の連続的な線で充填できるならば
、そのような全ての多角形はこの第2の多角形充填アル
ゴリズムで充填できる。この集合中の多角形はX凹性及
び/又は交差線を有する。
ルゴリズムよりも大きな多角形集合を充填する。もし多
角形が走査線当り1本の連続的な線で充填できるならば
、そのような全ての多角形はこの第2の多角形充填アル
ゴリズムで充填できる。この集合中の多角形はX凹性及
び/又は交差線を有する。
唯一の検査は、上述のようなy方向の一周の条件に関す
るものである。同様に、y min及びy maxの値
並びにそれらに関連した頂点が記録される。
るものである。同様に、y min及びy maxの値
並びにそれらに関連した頂点が記録される。
この場合、方向が時計回りか又は反時計回りかに関する
知識は存在しない。事実、交差線を有する多角形におい
て、時計回り及び反時計回りの区別は不適切である。
知識は存在しない。事実、交差線を有する多角形におい
て、時計回り及び反時計回りの区別は不適切である。
多角形の線は再び2組に分割される。それらは元々与え
られた順序でy minとy maxとの間に存在する
。いずれかの組の多角形の線は、与えられた走査線上の
最小値又は最大値を定め得る。従って、線の各組毎に1
つの、最小値又は最大値のいずれかを記憶するために2
つの表が使われる。
られた順序でy minとy maxとの間に存在する
。いずれかの組の多角形の線は、与えられた走査線上の
最小値又は最大値を定め得る。従って、線の各組毎に1
つの、最小値又は最大値のいずれかを記憶するために2
つの表が使われる。
多角形のyの最小値の点から出発し、第1組の線に沿っ
て進むと、走査線との交点における所定の線の最小値及
び最大値が記憶される。多角形をたどる時、同様に第2
の表が、多角形の第2の組の線に関して走査線との各交
点における所定の線の最小値及び最大値を記憶する。
て進むと、走査線との交点における所定の線の最小値及
び最大値が記憶される。多角形をたどる時、同様に第2
の表が、多角形の第2の組の線に関して走査線との各交
点における所定の線の最小値及び最大値を記憶する。
与えられた走査線の最小値は、2つの表からのその走査
線に関する2つの値の最小値である。同様に、与えられ
た走査線の最大値は、2つの表からのその走査線に関す
る2つの値の最大値である。
線に関する2つの値の最小値である。同様に、与えられ
た走査線の最大値は、2つの表からのその走査線に関す
る2つの値の最大値である。
この時点で2つの表が走査され組み合されて1つの表に
なり、GSLS用マルチ54能が呼び出される。あるい
は、両方の表に対するポインタが新しいGSLマルチラ
イン・ルーチンに渡され、そのルーチンはそれらを組み
合せて水平線を描画する。他の良好な実施例は、各走査
線毎に、選ばれた最小値画素から最大画素へ線を引くた
めに他の方法を用いてもよい。
なり、GSLS用マルチ54能が呼び出される。あるい
は、両方の表に対するポインタが新しいGSLマルチラ
イン・ルーチンに渡され、そのルーチンはそれらを組み
合せて水平線を描画する。他の良好な実施例は、各走査
線毎に、選ばれた最小値画素から最大画素へ線を引くた
めに他の方法を用いてもよい。
上記の多角形充填アルゴリズムにおいて、2段階のアル
ゴリズムが存在する。第1段は多角形の全ての線を走査
する。多角形の線毎に、Bresenhamアルゴリズ
ムが使用される。点の値が最小/最大表に記憶されるべ
きか否かの判定が、その特定の点に対してBresen
hamアルゴリズムが動作する時に行なわれるので、多
角形の充填に必要な処理時間は最適化される。このよう
にして、第2段階、即ち後処理は前処理、即ち第1段階
と一体的に行なわれる。第1段階、前処理が終了すると
、多角形を充填するのに最小限の量の付加的処理しか必
要でない。
ゴリズムが存在する。第1段は多角形の全ての線を走査
する。多角形の線毎に、Bresenhamアルゴリズ
ムが使用される。点の値が最小/最大表に記憶されるべ
きか否かの判定が、その特定の点に対してBresen
hamアルゴリズムが動作する時に行なわれるので、多
角形の充填に必要な処理時間は最適化される。このよう
にして、第2段階、即ち後処理は前処理、即ち第1段階
と一体的に行なわれる。第1段階、前処理が終了すると
、多角形を充填するのに最小限の量の付加的処理しか必
要でない。
第2段階、後処理は、第1の多角形充填ルーチンに関し
て事実上存在しない。Bresenhamアルゴリズム
が動作する時、各走査線の各y値毎に最小値及び最大値
を有する。表において単純な記憶が行なわれる。後処理
において、多角形は、配列をy最小値からy最大値へ走
査し、各yの値毎に記憶されている最小値から最大値ま
で線を引くことによって充填される。
て事実上存在しない。Bresenhamアルゴリズム
が動作する時、各走査線の各y値毎に最小値及び最大値
を有する。表において単純な記憶が行なわれる。後処理
において、多角形は、配列をy最小値からy最大値へ走
査し、各yの値毎に記憶されている最小値から最大値ま
で線を引くことによって充填される。
第2の多角形充填アルゴリズムの後処理において、多角
形は、最初に各yの値毎に記憶されている複数の最大値
のうち最大の値を決定し、モして′ 記憶されている複
数の最小値のうち最小の値が決定される。次に、各yの
値毎に、最小の最小値から最大の最大値へ線が引かれる
。
形は、最初に各yの値毎に記憶されている複数の最大値
のうち最大の値を決定し、モして′ 記憶されている複
数の最小値のうち最小の値が決定される。次に、各yの
値毎に、最小の最小値から最大の最大値へ線が引かれる
。
E、実施例
本発明は高速多角形充填のための2つのアルゴリズム(
表3)及び(表5)より成る。これらのアルゴリズムは
IBM RT PCのような処理システム90と共
に提供されるデイスプレィ94(第5A図)と共に使用
できる。第5B図は処理システム90の論理的構造91
を示す。第5C図は処理システム90の物理的構造92
を示す。RT PCについてはrIBM RT Pa
rsonal ComputerTechnology
J 、Form No、 5A23−1057に完全に
説明されている。上記の各アルゴリズムは利点と欠点と
を有している。プロセッサ、デイスプレィ・アダプタ、
メモリ及び工/○の相対的なスピードに依存して、所定
のデイスプレィに関する具体的なインプリメンテーショ
ンにおいては他のアルゴリズムがより効率的であろう。
表3)及び(表5)より成る。これらのアルゴリズムは
IBM RT PCのような処理システム90と共
に提供されるデイスプレィ94(第5A図)と共に使用
できる。第5B図は処理システム90の論理的構造91
を示す。第5C図は処理システム90の物理的構造92
を示す。RT PCについてはrIBM RT Pa
rsonal ComputerTechnology
J 、Form No、 5A23−1057に完全に
説明されている。上記の各アルゴリズムは利点と欠点と
を有している。プロセッサ、デイスプレィ・アダプタ、
メモリ及び工/○の相対的なスピードに依存して、所定
のデイスプレィに関する具体的なインプリメンテーショ
ンにおいては他のアルゴリズムがより効率的であろう。
両者の多角形充填アルゴリズムは、特定の形の分類に属
する多角形を高速充填するのに使用される。第1の高速
多角形充填ルーチン(表3)は各y位置101における
値110を記憶するために表110(第7図)を利用し
、第2の高速多角形充填ルーチン(表5)は、多角形を
充填するために必要な、各y位置101毎に値113を
記憶するための2つの表111,112(第8図)を利
用する。
する多角形を高速充填するのに使用される。第1の高速
多角形充填ルーチン(表3)は各y位置101における
値110を記憶するために表110(第7図)を利用し
、第2の高速多角形充填ルーチン(表5)は、多角形を
充填するために必要な、各y位置101毎に値113を
記憶するための2つの表111,112(第8図)を利
用する。
必要な表100(第7図)、111,112(第8図)
の大きさは、使用する特定の表示スクリーン94(第5
A図)の大きさに依存する。もし使用するデイスプレィ
94が、y方向102に375個の画素を有するモノク
ローム・デイスプレィであれば、表100,111,1
12は、375個のエントリ103を必要とする。もし
デイスプレィ94(第5A図)が、y方向102に51
2画素を有するAPA8デイスプレィであれば、表10
0.111.112は、512のエントリ103を必要
とする。もしデイスプレィ94(第5A図)が、y方向
102に1024024画素る精密デイスプレィであれ
ば、表100,111゜112は、1024個のエント
リ103を必要とする。表100.111,112中の
yエントリ101は、ゼロからスクリーンのサイズ引く
1の範囲にわたる。したがって、表100.111゜1
12の大きさは、デイスプレィ94の大きさによって決
まる。
の大きさは、使用する特定の表示スクリーン94(第5
A図)の大きさに依存する。もし使用するデイスプレィ
94が、y方向102に375個の画素を有するモノク
ローム・デイスプレィであれば、表100,111,1
12は、375個のエントリ103を必要とする。もし
デイスプレィ94(第5A図)が、y方向102に51
2画素を有するAPA8デイスプレィであれば、表10
0.111.112は、512のエントリ103を必要
とする。もしデイスプレィ94(第5A図)が、y方向
102に1024024画素る精密デイスプレィであれ
ば、表100,111゜112は、1024個のエント
リ103を必要とする。表100.111,112中の
yエントリ101は、ゼロからスクリーンのサイズ引く
1の範囲にわたる。したがって、表100.111゜1
12の大きさは、デイスプレィ94の大きさによって決
まる。
多角形充填アルゴリズムは、もし実際の多角形120が
、y方向において、y=10の値からy=47の値まで
範囲にあれば表111,112(第8図)が多角形12
0の位置に応じて初期化をする必要のないように構成さ
れている。y方向において多角形の領域(y=10から
y=47まで)内のy値101を有する、表100.1
11゜112中のエントリのみが使用される。もし多角
形120の最下位値の頂点Aが表示スクリーン94の下
端からy方向に10番目の画素で始まるとすると、表1
00.111,112は、ゼロのエントリ105が10
番目の画素位置の頂点Aを表わすように初期設定する必
要がない。もし多角形が37画素の全体的高さを有する
ならば、表100に対する11番目から48番目までの
エントリ103だけが利用される。
、y方向において、y=10の値からy=47の値まで
範囲にあれば表111,112(第8図)が多角形12
0の位置に応じて初期化をする必要のないように構成さ
れている。y方向において多角形の領域(y=10から
y=47まで)内のy値101を有する、表100.1
11゜112中のエントリのみが使用される。もし多角
形120の最下位値の頂点Aが表示スクリーン94の下
端からy方向に10番目の画素で始まるとすると、表1
00.111,112は、ゼロのエントリ105が10
番目の画素位置の頂点Aを表わすように初期設定する必
要がない。もし多角形が37画素の全体的高さを有する
ならば、表100に対する11番目から48番目までの
エントリ103だけが利用される。
第2のアルゴリズムは、第8図に流す表111゜112
を利用する。各表111.112は最小列116及び最
大列118を有する。また表111.112はゼロ10
5から、スクリーンのサイズから1を引いた数107に
わたるサイズを有する。
を利用する。各表111.112は最小列116及び最
大列118を有する。また表111.112はゼロ10
5から、スクリーンのサイズから1を引いた数107に
わたるサイズを有する。
第1図を参照すると、デイスプレィa4(第5A図)上
に示される時、多角形120の線121〜124は、走
査線132ylO〜y18上でオン状態にある画素13
0等の画素によって表現される。多角形120の線12
1〜124はスクリーン94上に実際には表示されない
が、ここでは説明のために示されている。表示が行なわ
れる時に線121〜124の各々を最も良く表現するた
めしこは各走査線132毎にどの画素がオンになるべき
かを決定する事、Bresenhamアルゴリズムを用
いて行なわれる。このアルゴリズムはJ、E。
に示される時、多角形120の線121〜124は、走
査線132ylO〜y18上でオン状態にある画素13
0等の画素によって表現される。多角形120の線12
1〜124はスクリーン94上に実際には表示されない
が、ここでは説明のために示されている。表示が行なわ
れる時に線121〜124の各々を最も良く表現するた
めしこは各走査線132毎にどの画素がオンになるべき
かを決定する事、Bresenhamアルゴリズムを用
いて行なわれる。このアルゴリズムはJ、E。
Bresenham、 ”Algorithm fo
r Computer Controlof a Dj
4ital Plotter”、 IBM Syste
m Journal。
r Computer Controlof a Dj
4ital Plotter”、 IBM Syste
m Journal。
Vol、 4. No、 1 (1965) 、及びJ
、 D 、 Foley andA、Van Dam
、 ”Fundamentals of Inte
ractiveComputer Graphics”
、 Addison−Wesley刊、1982年に記
載されている。
、 D 、 Foley andA、Van Dam
、 ”Fundamentals of Inte
ractiveComputer Graphics”
、 Addison−Wesley刊、1982年に記
載されている。
両者の多角形充填アルゴリズムにおいて、多角形120
(第1図)の点130はBresenhamアルゴリズ
ムを用いて生成される。線121を表現するためにBr
esenhamアルゴリズムによって選択された画素1
30は第12図では黒丸で示されている。多角形120
の線’121’ を表現するためにBresenham
アルゴリズムにより選択されなかった画素131はX印
で示されている。画素130゜131の連続した列を表
わす走査線132の組がX方向102に存在する。多角
形120の各線121〜124に関して、多角形120
の線121〜124を集合的に表わすために点130が
走査線132上で一度に生成される。
(第1図)の点130はBresenhamアルゴリズ
ムを用いて生成される。線121を表現するためにBr
esenhamアルゴリズムによって選択された画素1
30は第12図では黒丸で示されている。多角形120
の線’121’ を表現するためにBresenham
アルゴリズムにより選択されなかった画素131はX印
で示されている。画素130゜131の連続した列を表
わす走査線132の組がX方向102に存在する。多角
形120の各線121〜124に関して、多角形120
の線121〜124を集合的に表わすために点130が
走査線132上で一度に生成される。
2つの多角形充填アルゴリズムは各々、そのアルゴリズ
ムで充填できる異なった範囲の組の多角形33(第6A
図)、34(第6B図)、35(第6C図)を有してい
る。第2のアルゴリズムは第1のアルゴリズムよりも大
きな範囲の多角形33.34.35を充填できる。この
集合は多角形33.34.35を充填するために各々の
yの値に関して単一の線133が存在するような全ての
多角形を含む。この組の多角形33.34.35はX方
向104に凹部28を有する多角形を含み得る。さらに
、この組は交差線37.38を有する多角形35を含む
。多角形36(第6D図)は、各yの値に関して、多角
形36を充填するのに使用できる一意的で単一の線が存
在しないような例を示す。近い値のyに関して、各yの
値毎に2本の線134.135が存在する。従って、y
方向に凹部29を有する多角形36は第2の多角形充填
アルゴリズムを用いて充填できない。第1の多角形充填
ルーチンの場合、多角形の集合は厳密に凸の多角形33
しか含まない、X又はy方向のどちらにも旧姓は存在せ
ず、且つ交差線も存在できない。
ムで充填できる異なった範囲の組の多角形33(第6A
図)、34(第6B図)、35(第6C図)を有してい
る。第2のアルゴリズムは第1のアルゴリズムよりも大
きな範囲の多角形33.34.35を充填できる。この
集合は多角形33.34.35を充填するために各々の
yの値に関して単一の線133が存在するような全ての
多角形を含む。この組の多角形33.34.35はX方
向104に凹部28を有する多角形を含み得る。さらに
、この組は交差線37.38を有する多角形35を含む
。多角形36(第6D図)は、各yの値に関して、多角
形36を充填するのに使用できる一意的で単一の線が存
在しないような例を示す。近い値のyに関して、各yの
値毎に2本の線134.135が存在する。従って、y
方向に凹部29を有する多角形36は第2の多角形充填
アルゴリズムを用いて充填できない。第1の多角形充填
ルーチンの場合、多角形の集合は厳密に凸の多角形33
しか含まない、X又はy方向のどちらにも旧姓は存在せ
ず、且つ交差線も存在できない。
従って、各アルゴリズム(表3、表5)には、各々、そ
の特定の多角形充填アルゴリズムに適した多角形の範囲
内に多角形が入っているか否かを決定するフロント・エ
ンド・ルーチン(表2及び表4)が存在する。次に、特
定の多角形がどの多角形の範囲に属するかを決定するた
めに多角形に対して行なわれるテストを述べる。
の特定の多角形充填アルゴリズムに適した多角形の範囲
内に多角形が入っているか否かを決定するフロント・エ
ンド・ルーチン(表2及び表4)が存在する。次に、特
定の多角形がどの多角形の範囲に属するかを決定するた
めに多角形に対して行なわれるテストを述べる。
以下の説明は第1図の多角形120を中心に行なう。最
初に、多角形の方向敏感性という用語の定義に関する説
明が必要である。多角形120は。
初に、多角形の方向敏感性という用語の定義に関する説
明が必要である。多角形120は。
多角形120の周りの時計回り25又は反時計回り26
のいずれかの順序のX及びys、標の系列により記述さ
れる。任意の与えられた多角形充填アルゴリズムは、そ
の多角形充填アルゴリズムが時計回りの多角形に適用さ
れても又反時計回りの多角形に適用されても同じ結果を
与えるべきである。
のいずれかの順序のX及びys、標の系列により記述さ
れる。任意の与えられた多角形充填アルゴリズムは、そ
の多角形充填アルゴリズムが時計回りの多角形に適用さ
れても又反時計回りの多角形に適用されても同じ結果を
与えるべきである。
即ち、多角形充填アルゴリズムを適用する時に多角形を
たどる方向に無関係に、多角形は同じ充填結果を与える
べきである。本発明の多角形充填アルゴリズムの両者に
おいて、結果のBresenham画素130の座標が
与えられる順序にかかわりなく、方向敏感性は存在しな
い。さらに、厳密凸の多角形のための第1の多角形充填
アルゴリズムに関する第1のテストは、多角形120の
対応する画素130の座標を与える時に多角形をたどる
方向、即ち時計回り25又は反時計回り26を決定する
。
たどる方向に無関係に、多角形は同じ充填結果を与える
べきである。本発明の多角形充填アルゴリズムの両者に
おいて、結果のBresenham画素130の座標が
与えられる順序にかかわりなく、方向敏感性は存在しな
い。さらに、厳密凸の多角形のための第1の多角形充填
アルゴリズムに関する第1のテストは、多角形120の
対応する画素130の座標を与える時に多角形をたどる
方向、即ち時計回り25又は反時計回り26を決定する
。
第1の多角形充填アルゴリズムは方向敏感でない。
というのはこの多角形充填アルゴリズムに関するテスト
の一部として方向が特別に検出されるからである。もし
方向が時計回り25であると判明すると1点(画素)1
3oが走査される順序は逆転される。点130は常に多
角形の周りを反時計周り26に走査される。
の一部として方向が特別に検出されるからである。もし
方向が時計回り25であると判明すると1点(画素)1
3oが走査される順序は逆転される。点130は常に多
角形の周りを反時計周り26に走査される。
第2の多角形充填アルゴリズムにおいて、多角形120
の各側115.114毎に2つの表111.112(第
8図)が存在するので、方向敏感性は存在しない。各々
の表111.112は、X方向102の各走査線132
毎にX方向104の最小値116及び最大値118を有
する。従って、多角形120の一方の側を上方へそして
他方の側を下方へたどっても又その逆方向にたどっても
無関係である。その結果は、X方向102の各走査線1
32毎に最小値116及び最大値1〕、8を有する2つ
の表111,112である。各走査線132毎に、2つ
の表111,112に関する2つの最大値118からの
最大値が選択され、2つの表111,112に関する2
つの最小値116からの最小値が選択される。次に選択
された最小値画素から最大値画素へ線が引かれる。
の各側115.114毎に2つの表111.112(第
8図)が存在するので、方向敏感性は存在しない。各々
の表111.112は、X方向102の各走査線132
毎にX方向104の最小値116及び最大値118を有
する。従って、多角形120の一方の側を上方へそして
他方の側を下方へたどっても又その逆方向にたどっても
無関係である。その結果は、X方向102の各走査線1
32毎に最小値116及び最大値1〕、8を有する2つ
の表111,112である。各走査線132毎に、2つ
の表111,112に関する2つの最大値118からの
最大値が選択され、2つの表111,112に関する2
つの最小値116からの最小値が選択される。次に選択
された最小値画素から最大値画素へ線が引かれる。
これは第8図及び第1図を参照することにより説明され
る。y=13のy値101を表わす走査線132に関し
て、多角形120の線121に関する最大値118は、
この例ではx=263の値118を有する画素である。
る。y=13のy値101を表わす走査線132に関し
て、多角形120の線121に関する最大値118は、
この例ではx=263の値118を有する画素である。
この値はテーブルB(112)に記憶される。走査線y
=13における多角形120の線121に関する最小値
116は画素45におけるx=262である。X=26
2のこの値はテーブルBのエントリy=13に記憶され
る。多角形120の線124に関して、y=13の走査
線132において画素54の値はX=256である。こ
の走査線上の線124に関してBresenhamアル
ゴリズムによりオンになる画素130は1つしかないの
で、この値はy=13におけるXの最大値及び最小値の
両者である。X=256のこの値はテーブルAのエント
リy=13に記憶される。テーブルA及びテーブルBか
ら、最大値118の最大のものはy=13に関しては2
63であり、最小値116の最小のものはy=13に関
しては256である。次に各画素位置で記号「口」によ
り示されるように画素54と46との間の全ての画素1
30,131をオンにすることにより、画素54から画
素46へ充填線142が引かれる。
=13における多角形120の線121に関する最小値
116は画素45におけるx=262である。X=26
2のこの値はテーブルBのエントリy=13に記憶され
る。多角形120の線124に関して、y=13の走査
線132において画素54の値はX=256である。こ
の走査線上の線124に関してBresenhamアル
ゴリズムによりオンになる画素130は1つしかないの
で、この値はy=13におけるXの最大値及び最小値の
両者である。X=256のこの値はテーブルAのエント
リy=13に記憶される。テーブルA及びテーブルBか
ら、最大値118の最大のものはy=13に関しては2
63であり、最小値116の最小のものはy=13に関
しては256である。次に各画素位置で記号「口」によ
り示されるように画素54と46との間の全ての画素1
30,131をオンにすることにより、画素54から画
素46へ充填線142が引かれる。
第1の多角形充填ルーチンの場合、多角形120がこの
特定の充填アルゴリズム用の多角形の範囲に適合するか
否かの判定が行なわれる。第1の多角形充填アルゴリズ
ム(表3)のフロント・エンド(表2)に含まれるこの
テストには3つの部分が存在する。即ち、表2の507
1行の時計回り/反時計回りテスト、表2す5080行
の又又はy方向のいずれかの一部テスト、及び表2の5
084行のy最小値及びy最大値の決定である。
特定の充填アルゴリズム用の多角形の範囲に適合するか
否かの判定が行なわれる。第1の多角形充填アルゴリズ
ム(表3)のフロント・エンド(表2)に含まれるこの
テストには3つの部分が存在する。即ち、表2の507
1行の時計回り/反時計回りテスト、表2す5080行
の又又はy方向のいずれかの一部テスト、及び表2の5
084行のy最小値及びy最大値の決定である。
もし多角形がこれらのテストを満足すると、genli
neと呼ばれる第1の多角形充填ルーチンが、表2の5
144行のgsffルーチンから呼び出される。もし多
角形がこれらのテストの1つに失敗すると、J 、 D
、 Foley及びA 、 Van Danの前掲書
456〜460ページに記載されているような一般的な
充填アルゴリズムに以降する(表2の5106行)。
neと呼ばれる第1の多角形充填ルーチンが、表2の5
144行のgsffルーチンから呼び出される。もし多
角形がこれらのテストの1つに失敗すると、J 、 D
、 Foley及びA 、 Van Danの前掲書
456〜460ページに記載されているような一般的な
充填アルゴリズムに以降する(表2の5106行)。
第1の多角形充填アルゴリズムに関する第1のテストは
時計回り/反時計回りテスト(転回テスト)である。こ
のテストは”Method to Determine
the Convexity of Polygons
l′、 IBM TechnicalDisclosu
re Bulletin、 Vol、 28. No、
5.1985年10号に記載されている。
時計回り/反時計回りテスト(転回テスト)である。こ
のテストは”Method to Determine
the Convexity of Polygons
l′、 IBM TechnicalDisclosu
re Bulletin、 Vol、 28. No、
5.1985年10号に記載されている。
より具体的には、本発明の良好な実施例はこの転回テス
ト(表2.5071行以下)を、一定の回転方向の検査
のために含んでいる。即ち、多角形の線から線へ移動し
ながら、新しい線が同じ方向に折れ曲がるか否かを判定
する。このテストの副産物として5時計回り又は反時計
回りも決定される。もし2つの隣接した線121.12
2(第1図)が点(XOlyO)、(xi、yl)。
ト(表2.5071行以下)を、一定の回転方向の検査
のために含んでいる。即ち、多角形の線から線へ移動し
ながら、新しい線が同じ方向に折れ曲がるか否かを判定
する。このテストの副産物として5時計回り又は反時計
回りも決定される。もし2つの隣接した線121.12
2(第1図)が点(XOlyO)、(xi、yl)。
(x2、y2)を有するならば、ベクトル積の符号の計
算は次のようにして行なわれる。
算は次のようにして行なわれる。
(yl yO)* (x2−xi)−(y2−yl
) 傘 (xi−xo) もし上式がゼロよりも大きければ、多角形はこの2本の
線に関して右向きに折れ曲がっている。
) 傘 (xi−xo) もし上式がゼロよりも大きければ、多角形はこの2本の
線に関して右向きに折れ曲がっている。
この例では、多角形120の線121及び122のベク
トル積はゼロよりも小さく、多角形120が左側又は反
時計回り26に折れ曲っていることを示す。この転回テ
ストは多角形62つの隣接線の各々について反復される
(表2の5089行以下)。もしこのテストの結果が同
符号であれば、多角形は転回方向一致テストを満足する
。
トル積はゼロよりも小さく、多角形120が左側又は反
時計回り26に折れ曲っていることを示す。この転回テ
ストは多角形62つの隣接線の各々について反復される
(表2の5089行以下)。もしこのテストの結果が同
符号であれば、多角形は転回方向一致テストを満足する
。
多角形が厳密に凸であるために満足しなければならない
第2の条件は、表2の5099行以下のy方向−周テス
トである。これは内角の和が360度に等しいという条
件と等価である。
第2の条件は、表2の5099行以下のy方向−周テス
トである。これは内角の和が360度に等しいという条
件と等価である。
−周テストは、多角形をたどるための出発位置が最下位
値の頂点1(第1図)であり多角形を辺121.122
.123.124に沿って順にたどってゆく場合、順次
の辺121,122,123.124のy座標102は
最初に全て増加し、次に減少することを定めている。言
いかえると、多角形の第1群の辺121,122は最初
に全て上昇し、第2群の辺123.124は次に全て下
降しなければならない。
値の頂点1(第1図)であり多角形を辺121.122
.123.124に沿って順にたどってゆく場合、順次
の辺121,122,123.124のy座標102は
最初に全て増加し、次に減少することを定めている。言
いかえると、多角形の第1群の辺121,122は最初
に全て上昇し、第2群の辺123.124は次に全て下
降しなければならない。
一周条件は、多角形120の第1の辺121から出発す
ることにより全ての隣接頂点に関するy(i+1)
y (i)の代数的符号が正しく2又は3回変化すれば
満足される。水平線は、以前の線と同じ符号を有するも
のと考えられる。このテストにパスした多角形はy旧姓
を有している。即ち、yの任意の値について、1つだけ
の連続な充填線142が存在する。−周テスト(表2,
5099行以下)のために多角形120の点130の周
りをたどる時、最大及び最小のX値及びその位置がメモ
リに記憶される。この多角形充填アルゴリズムでBre
senhamアルゴリズムが使われる前に、y最小値2
及びy最大値1の値が、それらの位置のX値を用いて表
100中で初期化される。y最小値2に関するこの同じ
X値が、y最大値エントリ103に関する表100中の
maxl’07及びm1n106エントリの両者に記憶
される。同様に、y最小値1に関する同じX値が、y最
小値エントリ103に関する表100中のmax 10
7及びmin 1o6エントリの両者に記憶される。
ることにより全ての隣接頂点に関するy(i+1)
y (i)の代数的符号が正しく2又は3回変化すれば
満足される。水平線は、以前の線と同じ符号を有するも
のと考えられる。このテストにパスした多角形はy旧姓
を有している。即ち、yの任意の値について、1つだけ
の連続な充填線142が存在する。−周テスト(表2,
5099行以下)のために多角形120の点130の周
りをたどる時、最大及び最小のX値及びその位置がメモ
リに記憶される。この多角形充填アルゴリズムでBre
senhamアルゴリズムが使われる前に、y最小値2
及びy最大値1の値が、それらの位置のX値を用いて表
100中で初期化される。y最小値2に関するこの同じ
X値が、y最大値エントリ103に関する表100中の
maxl’07及びm1n106エントリの両者に記憶
される。同様に、y最小値1に関する同じX値が、y最
小値エントリ103に関する表100中のmax 10
7及びmin 1o6エントリの両者に記憶される。
転回方向一致テストとy方向−周テストを共に満足する
ことは、多角形の内角の総和が360度であり、多角形
が厳密に凸であると言う事と等価である。これら2つの
テストを通過した結果として、転回方向一致テスト中で
計算されたベクトル積の符号が多角形の方向を決定する
のに使われる。
ことは、多角形の内角の総和が360度であり、多角形
が厳密に凸であると言う事と等価である。これら2つの
テストを通過した結果として、転回方向一致テスト中で
計算されたベクトル積の符号が多角形の方向を決定する
のに使われる。
もし上式の値がゼロよりも大きければ、多角形120は
時計回りの方向にたどったことになる。また上式の値が
ゼロよりも小さければ、多角形120は反時計回りにた
どったことになる。第1の多角形充填アルゴリズム(表
3)は反時計回りの方向に基いているので、もし式の符
号が時計回りの方向を示したならば、点130をたどる
方向は逆にされなければならない。
時計回りの方向にたどったことになる。また上式の値が
ゼロよりも小さければ、多角形120は反時計回りにた
どったことになる。第1の多角形充填アルゴリズム(表
3)は反時計回りの方向に基いているので、もし式の符
号が時計回りの方向を示したならば、点130をたどる
方向は逆にされなければならない。
第1図を参照すると、多角形120が上述のように厳密
に凸であることが決定されると、多角形120の線12
1.122.123,124は2つの組114.115
に分割される。1つの組114の線121,122は走
査線132の最大値を定め、他方の組123,124は
最小値106を定める。上記両者のテストにおける多角
形の前処理を経た多角形120の提示に無関係に、頂点
1がy最小値と決定され、頂点2がy最大値と決定され
る。
に凸であることが決定されると、多角形120の線12
1.122.123,124は2つの組114.115
に分割される。1つの組114の線121,122は走
査線132の最大値を定め、他方の組123,124は
最小値106を定める。上記両者のテストにおける多角
形の前処理を経た多角形120の提示に無関係に、頂点
1がy最小値と決定され、頂点2がy最大値と決定され
る。
多角形120をy最小値1から反時計回りにy最大値2
へたどると、適当なyの指標103に関して表100の
waxエントリ1o7(第7図)中に走査線132の最
大値が記憶される。第1の多角形充填アルゴリズムが1
つの走査線から次の走査線に進むと共に、以前の走査線
のXの最大値107が記憶される。これはy最大値2に
到達するまでyの各走査線132に関して繰り返される
。
へたどると、適当なyの指標103に関して表100の
waxエントリ1o7(第7図)中に走査線132の最
大値が記憶される。第1の多角形充填アルゴリズムが1
つの走査線から次の走査線に進むと共に、以前の走査線
のXの最大値107が記憶される。これはy最大値2に
到達するまでyの各走査線132に関して繰り返される
。
y最大値2に到達すると、多角形120は、y最大値2
からy最小値1へ、以前に分割した線123.124を
トラバースされる。分割された腺123.124の組1
15に関して、走査線132上の最後の点130が、各
yエントリ103に関する表100中のXの最小値10
6として記憶される。これはy走査線毎に反復される。
からy最小値1へ、以前に分割した線123.124を
トラバースされる。分割された腺123.124の組1
15に関して、走査線132上の最後の点130が、各
yエントリ103に関する表100中のXの最小値10
6として記憶される。これはy走査線毎に反復される。
第1の多角形充填アルゴリズムの場合、アルゴリズムは
y最小値(第1図の画素1)で始まり。
y最小値(第1図の画素1)で始まり。
反時計回りの方向にy最大値へ向って直行する。
y最小値1からy最大値2へのこのトラバース中に、各
y毎にmin及びIIIaxのエン1−リ110を有す
る表100が使用される。各yに関する最大X値(これ
は走査線132上の最後の点(画素)130である)が
表100に記憶される。トラバース中にy最大値に到着
すると、多角形はy最大値2からy最小値1ヘトラバー
スされる。この部分の多角形トラバース中に、各走査線
132上の画素に関する最小値が表に記憶される。言い
かえると。
y毎にmin及びIIIaxのエン1−リ110を有す
る表100が使用される。各yに関する最大X値(これ
は走査線132上の最後の点(画素)130である)が
表100に記憶される。トラバース中にy最大値に到着
すると、多角形はy最大値2からy最小値1ヘトラバー
スされる。この部分の多角形トラバース中に、各走査線
132上の画素に関する最小値が表に記憶される。言い
かえると。
それは、次のy走査線に進んだ後に、以前の走査線上で
走査された最後の点130である。反時計回りに最下部
頂点1から最上部頂点2へ進むと、最大値が配列に記憶
される。最上部頂点2から最下部頂点1へ反時計回りに
進むと、最小値が配列に記憶される。
走査された最後の点130である。反時計回りに最下部
頂点1から最上部頂点2へ進むと、最大値が配列に記憶
される。最上部頂点2から最下部頂点1へ反時計回りに
進むと、最小値が配列に記憶される。
例えば、線121から出発して反時計回りに多角形をト
ラバースする時、y=11に関する走査線132を表わ
すy=11のエントリ103に関するm a xエント
リ107に画素42のX値が記憶される。y=12の次
の走査線132の場合は、y=12のyエン1−リ10
3に関するmaxエントリ107に画素44の値が記憶
される。これは各走査線132毎に反復される。同様に
、多角形120を頂点2から下向きにトラバースする時
、走査線132の画素130に関する最小値が、対応す
るyエントリ103に関する最小値エントリ106に記
憶される。例えば、画素54,53.51の値が、各々
表100の中のそれぞれy=13、y=12及びy=1
1を表わす走査線に関する最小値エントリ106に記憶
される 表2は第1の多角形充填アルゴリズムをC言語のコード
で表したものである。これはgsffと呼ばれ、その第
1引数1nlineは多角形の辺の数である。
ラバースする時、y=11に関する走査線132を表わ
すy=11のエントリ103に関するm a xエント
リ107に画素42のX値が記憶される。y=12の次
の走査線132の場合は、y=12のyエン1−リ10
3に関するmaxエントリ107に画素44の値が記憶
される。これは各走査線132毎に反復される。同様に
、多角形120を頂点2から下向きにトラバースする時
、走査線132の画素130に関する最小値が、対応す
るyエントリ103に関する最小値エントリ106に記
憶される。例えば、画素54,53.51の値が、各々
表100の中のそれぞれy=13、y=12及びy=1
1を表わす走査線に関する最小値エントリ106に記憶
される 表2は第1の多角形充填アルゴリズムをC言語のコード
で表したものである。これはgsffと呼ばれ、その第
1引数1nlineは多角形の辺の数である。
第2の引数ixyは多角形のX点の配列である。
第3の引数inyは多角形のy点の配列である。
これら最初の3つのパラメータは入力パラメータである
。引数xsは第7図に示されているように交互にmin
106及びmax107の値を両方含む配列100の
開始点へのポインタである。その最初のエントリはy=
Qのxmin106であり、2番目のエントリはy=Q
のxmax107である。そして3番目のエントリはy
=lのxmin106.4番目のエントリはy=lのx
max107である。
。引数xsは第7図に示されているように交互にmin
106及びmax107の値を両方含む配列100の
開始点へのポインタである。その最初のエントリはy=
Qのxmin106であり、2番目のエントリはy=Q
のxmax107である。そして3番目のエントリはy
=lのxmin106.4番目のエントリはy=lのx
max107である。
これはスクリーンのサイズから1を引いた値まで、例え
ば、1024画素のスクリーンの場合は1023まで、
y方向102に続く。引数ysは実施上の細部に関する
もので1点O,O11,1,2,2,3,3・・・・・
・スクリーン・サイズ−1例えば1023.1o23の
配列である。y 配列101は1度初期化される(行5
052)。この配列101が呼び出される時、Xに伴な
う正しいyを得るためにxllo及びylolの対とし
て呼び出される。
ば、1024画素のスクリーンの場合は1023まで、
y方向102に続く。引数ysは実施上の細部に関する
もので1点O,O11,1,2,2,3,3・・・・・
・スクリーン・サイズ−1例えば1023.1o23の
配列である。y 配列101は1度初期化される(行5
052)。この配列101が呼び出される時、Xに伴な
う正しいyを得るためにxllo及びylolの対とし
て呼び出される。
行5057〜5087は、y−周テスト及び転回テスト
の初期化を行なう。行5095〜5097は、転回テス
トで使われる式である。行5084〜5087は最初の
点のy min及びy waxを初期化する。次に、f
orループ(行5089)がある。
の初期化を行なう。行5095〜5097は、転回テス
トで使われる式である。行5084〜5087は最初の
点のy min及びy waxを初期化する。次に、f
orループ(行5089)がある。
これは以前に説明した3つのテストを行なう。
forループは転回テスト(行5090〜5097)を
計算し続け、y lll1n及びymaxを更新しく行
5109〜5111)、そして−周テスト(行5099
〜5102)を更新する。−周テスト(行5099〜5
102)中で、新しい符号は、それが負であれば0に等
しく、正であれば1に等しい。新しい符号が古い符号に
等しくなければ、カウントに1が加算される。このカウ
ントは符号の変化の数である。もしループの外側の方向
が、ちょうど計算した所の方向と違っていたら、又はy
の符号の変化の数が4以上であれば(行5104)、テ
ストは失敗しく行5105)、ループから出る(行51
06)。もしテストが失敗しなかったら、アルゴリズム
は次のように継続する。
計算し続け、y lll1n及びymaxを更新しく行
5109〜5111)、そして−周テスト(行5099
〜5102)を更新する。−周テスト(行5099〜5
102)中で、新しい符号は、それが負であれば0に等
しく、正であれば1に等しい。新しい符号が古い符号に
等しくなければ、カウントに1が加算される。このカウ
ントは符号の変化の数である。もしループの外側の方向
が、ちょうど計算した所の方向と違っていたら、又はy
の符号の変化の数が4以上であれば(行5104)、テ
ストは失敗しく行5105)、ループから出る(行51
06)。もしテストが失敗しなかったら、アルゴリズム
は次のように継続する。
次のステップ(行5109)はyの高さのテストである
。もし新しいyが以前のy maxよりも高ければ、y
maxは新しい値に更新される。新しいy maxが
見い出された所のインデックスが記憶される。同じこと
が最小値についても行なわれる。
。もし新しいyが以前のy maxよりも高ければ、y
maxは新しい値に更新される。新しいy maxが
見い出された所のインデックスが記憶される。同じこと
が最小値についても行なわれる。
もし最大値を越えなければ、新しいy値が以前のy m
in値よりも小さいか否かを見るために、y min値
が検査される。もしそうであれば、y lll1n値は
新しいy min値で更新される。またy min値の
位置を記録するためにインデックスも更新される。これ
は行5112でループを終了させる。行5089〜51
12は事前テストである。gsffアルゴリズムは、f
ailフラグが事前テスト中にセットされていなければ
、行5114に続く。
in値よりも小さいか否かを見るために、y min値
が検査される。もしそうであれば、y lll1n値は
新しいy min値で更新される。またy min値の
位置を記録するためにインデックスも更新される。これ
は行5112でループを終了させる。行5089〜51
12は事前テストである。gsffアルゴリズムは、f
ailフラグが事前テスト中にセットされていなければ
、行5114に続く。
行5114は、y配列101(第7図)に関する点の総
数は、ymax −ymin+ 1の和の2倍である。
数は、ymax −ymin+ 1の和の2倍である。
行5116〜5118はデバッグ目的の条件付きのプリ
ント・アウトである。行5119〜5134は診断出力
である。もしfailフラグが1に等しければ、事前テ
ストは失敗である。もし方向が違っていれば、アルゴリ
ズムは旧姓テストに失敗したことをプリント・アウトす
る。もし符号変化が4以上であれば、アルゴリズムは一
部テストの失敗をプリント・アウトする。
ント・アウトである。行5119〜5134は診断出力
である。もしfailフラグが1に等しければ、事前テ
ストは失敗である。もし方向が違っていれば、アルゴリ
ズムは旧姓テストに失敗したことをプリント・アウトす
る。もし符号変化が4以上であれば、アルゴリズムは一
部テストの失敗をプリント・アウトする。
アプリケーション・コードにおいて、事例テストが失敗
した場合に多角形充填を行なうためによリ一般的なアル
ゴリズムが呼び出されるのが、この地点、即ち行512
5である。もし事前テストに失敗すると、ユーザーによ
り充填するように選択された多角形に関して第1の多角
形充填ルーチンは使用できない。
した場合に多角形充填を行なうためによリ一般的なアル
ゴリズムが呼び出されるのが、この地点、即ち行512
5である。もし事前テストに失敗すると、ユーザーによ
り充填するように選択された多角形に関して第1の多角
形充填ルーチンは使用できない。
行5140は、もし方向がゼロであれば、それは既に反
時計回りであり、点130が下部の点から反時計回りに
多角形の各線121〜124毎に走査される。行514
0〜5153は、下部の点が多角形の最初の線でない場
合に多角形の線がどのように走査されるかを示す。
時計回りであり、点130が下部の点から反時計回りに
多角形の各線121〜124毎に走査される。行514
0〜5153は、下部の点が多角形の最初の線でない場
合に多角形の線がどのように走査されるかを示す。
行5144は、第1の多角形充填アルゴリズムの核心部
に対する実際の呼び出しである。行5144に先行する
ステップは、正しい線が指示されそれが反時計回りであ
る事等を保証している。
に対する実際の呼び出しである。行5144に先行する
ステップは、正しい線が指示されそれが反時計回りであ
る事等を保証している。
genline (行5144)は5つの引数を有する
。
。
第1の引数は、各yの値毎に、x min及びx n+
axの値が記憶されているmin/max配列100
(第7図)へのアドレスである。次に2つの引数は、走
査中のi番目の点のX及びyである。その次の2つの引
数は、i番目の点の直後の点のX及びyである。
axの値が記憶されているmin/max配列100
(第7図)へのアドレスである。次に2つの引数は、走
査中のi番目の点のX及びyである。その次の2つの引
数は、i番目の点の直後の点のX及びyである。
従って、genlineは配列100へのポインタ、並
びに第1の画素に関するX及びy、第2の画素に関する
次の隣接X及びyにより記述される線を指定して呼び出
される。
びに第1の画素に関するX及びy、第2の画素に関する
次の隣接X及びyにより記述される線を指定して呼び出
される。
genlineは走査線132の各々のyの値について
最小値106及び最大値107を計算する。多角形12
0は厳密に凸であり、且つ反時計回りの順序で提供され
ていると仮定する。従って、多角形120は、各yの値
毎に単一の水平線142で充填できる。1つの表100
しか使用せず、各走査線132毎にこの表に最大値10
7と最小値106だけが保存される。同じyに複数の画
素を有する線は、yが変化する時にXを更新することに
よってのみ取り扱われる。8全円領域I、■、■、■中
の線の場合更新は最大値107であり、一方8分円領域
■、■、■、■の場合更新は最小値である。第9図に示
されているように、8分用地域Iは0度で始まり(但し
yはゼロ、Xは任意の正の値である)、45度で終る。
最小値106及び最大値107を計算する。多角形12
0は厳密に凸であり、且つ反時計回りの順序で提供され
ていると仮定する。従って、多角形120は、各yの値
毎に単一の水平線142で充填できる。1つの表100
しか使用せず、各走査線132毎にこの表に最大値10
7と最小値106だけが保存される。同じyに複数の画
素を有する線は、yが変化する時にXを更新することに
よってのみ取り扱われる。8全円領域I、■、■、■中
の線の場合更新は最大値107であり、一方8分円領域
■、■、■、■の場合更新は最小値である。第9図に示
されているように、8分用地域Iは0度で始まり(但し
yはゼロ、Xは任意の正の値である)、45度で終る。
8分円領域■は45度から90度の範囲にわたる。これ
は領域I〜■に関して同様である。多角形の線は、線の
角度が0度と45度との間にあれば8分円領域I中にあ
る。多角形の線は、線の角度が45度と90度との間に
あれば8分周領域■中にある。多角形の線は、その線の
角度に依存して8分円領域の1つの中にある。多角形1
20は、前面121,122を上方ヘトラバースされる
時に点が8全円領域■、■、■、■内にしか入らないよ
うに8分円領域内に位置付けられる。
は領域I〜■に関して同様である。多角形の線は、線の
角度が0度と45度との間にあれば8分円領域I中にあ
る。多角形の線は、線の角度が45度と90度との間に
あれば8分周領域■中にある。多角形の線は、その線の
角度に依存して8分円領域の1つの中にある。多角形1
20は、前面121,122を上方ヘトラバースされる
時に点が8全円領域■、■、■、■内にしか入らないよ
うに8分円領域内に位置付けられる。
表100 (第7図)はこの処理に特有であるが。
他のインプリメンテーションに関しても使用できるであ
ろう。鍵は、各yに関して1つのX最大値と1つのX最
小値しか存在しないので、全てのyが定数であり初期化
の時に一度だけ計算されることである。表は第7図に示
されるように下記のように構成される。
ろう。鍵は、各yに関して1つのX最大値と1つのX最
小値しか存在しないので、全てのyが定数であり初期化
の時に一度だけ計算されることである。表は第7図に示
されるように下記のように構成される。
yOxmin
yOxmax
yl xmin
yl xmax
y2 xmin
y2 xmax
y max x m1n
y max x max
x l1inはymaxに関して初期化され、x wa
xはylIlaxに関して初期化される。これにより線
の最初の点で最小値又は最大値の同じX値を保持する必
要がなくなる。最初の点141,161(第1図)は、
線を引く時に除外されるが、それ以後のあらゆる点13
0が含められる。与えられた多角形120のy min
1からy wax 2までの表100の一部だけが多
角形充填に使用される。
xはylIlaxに関して初期化される。これにより線
の最初の点で最小値又は最大値の同じX値を保持する必
要がなくなる。最初の点141,161(第1図)は、
線を引く時に除外されるが、それ以後のあらゆる点13
0が含められる。与えられた多角形120のy min
1からy wax 2までの表100の一部だけが多
角形充填に使用される。
従ってgenlineは多角形120の1つの線121
〜124に関する点130を生成する。行6049及び
行605oは線の傾斜を生成する。行6055は配列中
の現在の位置のアドレスを計算するこれは現在の位置の
表100中のX最小値106を指す。例えば、もしyが
10であれば、ポインタは配列100の200番目位置
108を指す。
〜124に関する点130を生成する。行6049及び
行605oは線の傾斜を生成する。行6055は配列中
の現在の位置のアドレスを計算するこれは現在の位置の
表100中のX最小値106を指す。例えば、もしyが
10であれば、ポインタは配列100の200番目位置
108を指す。
エントリ108はy=10に関するX最小値106を含
み1次のエントリ109はy=10に関するX最大値1
07を含む。
み1次のエントリ109はy=10に関するX最大値1
07を含む。
genlineアルゴリズムの行6060は、多角形の
線が水平である特別な場合を処理する。もし最初のyが
2番目のyに等しければ、水平線が存在する。もし水平
線上でx2がxlよりも大きければ、全ての点は同一の
走査線上にあり、Bresenhamアルゴリズムのイ
ンプリメンテーションは不要である。この場合、Xの最
大値、x2がx maxに記憶される。もしx2がxl
よりも小さければ、線は8全円領域■、■、■、■のい
ずれかの中にあり、Xの最小値、xlがxmin106
として記憶される。
線が水平である特別な場合を処理する。もし最初のyが
2番目のyに等しければ、水平線が存在する。もし水平
線上でx2がxlよりも大きければ、全ての点は同一の
走査線上にあり、Bresenhamアルゴリズムのイ
ンプリメンテーションは不要である。この場合、Xの最
大値、x2がx maxに記憶される。もしx2がxl
よりも小さければ、線は8全円領域■、■、■、■のい
ずれかの中にあり、Xの最小値、xlがxmin106
として記憶される。
行6070〜6121は、線121〜124がどの8分
円領域に入るかを決定する。論理は、Xl又はX2のど
ちらが大きいが、yl又はy2のどちらが大きいか、y
l又はy2のどちらが大きいか、及び傾斜の相対的な符
号に応じて分岐する。
円領域に入るかを決定する。論理は、Xl又はX2のど
ちらが大きいが、yl又はy2のどちらが大きいか、y
l又はy2のどちらが大きいか、及び傾斜の相対的な符
号に応じて分岐する。
これらの3つの変数に依存して、8つの異なった場合が
存在する。そして線が引がれる8分円領域が、Bres
enham定数a及びbと共定数室備される。
存在する。そして線が引がれる8分円領域が、Bres
enham定数a及びbと共定数室備される。
行6124,6125.6126はa及びbの結果を受
は取り、さらに3つのBresenham定数を生成す
る。bマイナスa (bma)と呼ばれる定数はb−a
の2倍に等しい。b2定数はbの2倍に等しい、i定数
はエラ一定数であり、2掛けるbマイナスaマイナスx
2 (x 1に等しい。項X2〈Xlは丸めを正しく
させるので、多角形をトラバースする方向に無関係に同
じ点が選択される。
は取り、さらに3つのBresenham定数を生成す
る。bマイナスa (bma)と呼ばれる定数はb−a
の2倍に等しい。b2定数はbの2倍に等しい、i定数
はエラ一定数であり、2掛けるbマイナスaマイナスx
2 (x 1に等しい。項X2〈Xlは丸めを正しく
させるので、多角形をトラバースする方向に無関係に同
じ点が選択される。
この例は第10図に示されている。
典型的には、Bresenham線は1方向のトラバー
スする点により引かれ、点が反対方向にトラバースされ
るならば同じBresenham線は生じない。これを
示す単純な方法は、第10図に示すような1/2に等し
い傾斜を持つ線8である。もし線が(Olo)、画素8
1でスタートし、(2,1)、画素84で終了するなら
ば、理想的な線は画素82と83との間にある。Bre
senhamアルゴリズムはそのような場合、繰り上げ
を行なう。従って、線が第1の8分円領域にあれば画素
82の代りに画素83がオンになる。従ってBrese
nham線は画素81.83.84から成る。この同じ
線が第5の8分円領域に存在するかのように描かれるな
らば、スタート位置は(2,1)であり、終点は(0,
0)である。反対方向に進むと、繰り上げにより画素8
2が選択される。どちらの方向に引かれる同じ線も同じ
点から成る事を保証するように、方向に無関係に丸めは
常に同じに強制される。
スする点により引かれ、点が反対方向にトラバースされ
るならば同じBresenham線は生じない。これを
示す単純な方法は、第10図に示すような1/2に等し
い傾斜を持つ線8である。もし線が(Olo)、画素8
1でスタートし、(2,1)、画素84で終了するなら
ば、理想的な線は画素82と83との間にある。Bre
senhamアルゴリズムはそのような場合、繰り上げ
を行なう。従って、線が第1の8分円領域にあれば画素
82の代りに画素83がオンになる。従ってBrese
nham線は画素81.83.84から成る。この同じ
線が第5の8分円領域に存在するかのように描かれるな
らば、スタート位置は(2,1)であり、終点は(0,
0)である。反対方向に進むと、繰り上げにより画素8
2が選択される。どちらの方向に引かれる同じ線も同じ
点から成る事を保証するように、方向に無関係に丸めは
常に同じに強制される。
行6128から始まるgenlineアルゴリズムの残
りは、線121〜124がどの8分円領域に入るかに依
存する8つの異なった場合をカバーする。
りは、線121〜124がどの8分円領域に入るかに依
存する8つの異なった場合をカバーする。
例えば、8全円領域■の場合、線は8分周領域I、■、
■、■に関して以前に定義したように上昇している。従
ってgenlineアルゴリズムは各yに関してXの最
大値を記憶しようとする。第1の点141(第1図)は
ループ中で除外される。ループはx1+1に等しいXで
開始する。このループはXがx2に等しいか又はそれよ
りも小さい限り実行される。もしエラー係数がゼロより
も小さければ、これはその値が、次の走査線へ移動する
のに充分な程に大きくなかったことを意味する。定数b
2がiに加算され、再びループが実行される。
■、■に関して以前に定義したように上昇している。従
ってgenlineアルゴリズムは各yに関してXの最
大値を記憶しようとする。第1の点141(第1図)は
ループ中で除外される。ループはx1+1に等しいXで
開始する。このループはXがx2に等しいか又はそれよ
りも小さい限り実行される。もしエラー係数がゼロより
も小さければ、これはその値が、次の走査線へ移動する
のに充分な程に大きくなかったことを意味する。定数b
2がiに加算され、再びループが実行される。
もしiがゼロに等しいか又はそれよりも大きければ、こ
れは半分の点を越え次の走査線がアクセスされることを
意味する。この場合、以前の走査線上の以前の値(x
−1) 42 、44.46等は。
れは半分の点を越え次の走査線がアクセスされることを
意味する。この場合、以前の走査線上の以前の値(x
−1) 42 、44.46等は。
以前のyの値に関するxmax107として表中に保存
される。従って、行6129〜6139の間のコードは
、各走査線132の最後の最大値42゜44.46を記
憶している。走査線132の終端に到達し且つ何の値も
まだ記憶されていないという特別な場合も存在する。こ
の場合、その走査線に関する最後のy値(forループ
が既にXを増計数しているのでx−1により表わされる
)が記憶される。
される。従って、行6129〜6139の間のコードは
、各走査線132の最後の最大値42゜44.46を記
憶している。走査線132の終端に到達し且つ何の値も
まだ記憶されていないという特別な場合も存在する。こ
の場合、その走査線に関する最後のy値(forループ
が既にXを増計数しているのでx−1により表わされる
)が記憶される。
他の場合の全ても、以前の走査線から最後の画素を記憶
する。多角形120の各線121〜124毎に、gen
lineアルゴリズムが呼び出される。
する。多角形120の各線121〜124毎に、gen
lineアルゴリズムが呼び出される。
インプリメントされたアルゴリズムの一部は、線がどの
8分円領域に存在するかに依存する。
8分円領域に存在するかに依存する。
ganlineアルゴリズムは、多角形120の各線1
21〜124に関する各走査線毎に1つの画素位置13
0しか記憶しない。これは実行しなければならない記憶
動作の数を最小限にする。多角形は厳密に凸なので、各
走査線132毎に正確に1つの最小値106と最大値1
07が記憶される。
21〜124に関する各走査線毎に1つの画素位置13
0しか記憶しない。これは実行しなければならない記憶
動作の数を最小限にする。多角形は厳密に凸なので、各
走査線132毎に正確に1つの最小値106と最大値1
07が記憶される。
−膜内なプログラムffpfl (表1)は主ドライバ
・プログラムである。このプログラムのcase 5に
おいて(行4136)、第1の多角形充填ルーチンgs
ff (表2)に対する呼び出しが存在する。
・プログラムである。このプログラムのcase 5に
おいて(行4136)、第1の多角形充填ルーチンgs
ff (表2)に対する呼び出しが存在する。
次にプログラムgsffはgenline (表3)を
呼び出す。プログラムffpf 1のcase 6の場
合は、第2の多角形充填アルゴリズムgsff2 (表
4)に対する呼び出しが存在する。もし第2の多角形充
填アルゴリズムgsff 2の条件が満たされると、g
sff 2は第2のgenlineプログラムgenl
ine 2 (表5)を呼び出す(表4の行7099)
。
呼び出す。プログラムffpf 1のcase 6の場
合は、第2の多角形充填アルゴリズムgsff2 (表
4)に対する呼び出しが存在する。もし第2の多角形充
填アルゴリズムgsff 2の条件が満たされると、g
sff 2は第2のgenlineプログラムgenl
ine 2 (表5)を呼び出す(表4の行7099)
。
第2の多角形充填ルーチンgsff 2は、特定の多角
形が第2の多角形充填アルゴリズムの適用可能な多角形
の範囲内にあるか否かを見るために検査される。このテ
ストは第1多角形充填アルゴリズムのためのテストより
も単純である。というのは第2の多角形充填アルゴリズ
ムのためのテストはy方向の一部テストしか含まない(
表4 行7056〜7070)からである。多角形のy
値が増加し次に減少すれば、その多角形はこの第2の多
角形充填アルゴリズムにより充填できる。
形が第2の多角形充填アルゴリズムの適用可能な多角形
の範囲内にあるか否かを見るために検査される。このテ
ストは第1多角形充填アルゴリズムのためのテストより
も単純である。というのは第2の多角形充填アルゴリズ
ムのためのテストはy方向の一部テストしか含まない(
表4 行7056〜7070)からである。多角形のy
値が増加し次に減少すれば、その多角形はこの第2の多
角形充填アルゴリズムにより充填できる。
閉じた多角形上の任意の場所から出発し、y2−ylの
代数的符号が2又は3回変化するか否かを検査する。こ
れはy旧姓の条件を与える。即ち、yの任意の値に関し
て、ただ1本だけの連続な充填線133が存在する(第
6A図〜第6AC図)。
代数的符号が2又は3回変化するか否かを検査する。こ
れはy旧姓の条件を与える。即ち、yの任意の値に関し
て、ただ1本だけの連続な充填線133が存在する(第
6A図〜第6AC図)。
水平線は以前の線と同じ符号を持つものと考えられる。
また、最大及び最小のy値は同時に記録される(行70
60〜7063)。多角形がテストに失敗すると(行7
069〜7070)、標準的なGSL多角形充填アルゴ
リズムが、第2の多角形充填ルーチンgenline
2の代りに使用される。
60〜7063)。多角形がテストに失敗すると(行7
069〜7070)、標準的なGSL多角形充填アルゴ
リズムが、第2の多角形充填ルーチンgenline
2の代りに使用される。
この−周テストに関して第11A図を参照し、頂点Pか
ら出発して時計回り25に進む時、Δy符号の変化が記
録される。頂点Pから頂点Qに進むと、Δyは正である
。頂点Qから頂点Rに進むと、Δyは負である。頂点R
から頂点Sに進むと、Δyは負である。頂点Sから頂点
Tに進むと、Δyは負である。頂点′rから頂点Uに進
むと、Δyは正である。頂点Uから頂点Pに進むと、Δ
yは正である。Δyの変化を分析すると、それは3回符
号を変えている。もし多角形が一部テストに合格すると
、異なった符号変化は正しく2又は3回である。第11
A図のこの同じ多角医において、もし多角形61が頂点
Tから開始して時計回りの方向25にトラバースされる
と、符号変化のカウントは2である。頂点Tから頂点Q
まで、全てのΔyは正であり、時計回りに頂点Qから頂
点Tまで、全てのΔyは負である。
ら出発して時計回り25に進む時、Δy符号の変化が記
録される。頂点Pから頂点Qに進むと、Δyは正である
。頂点Qから頂点Rに進むと、Δyは負である。頂点R
から頂点Sに進むと、Δyは負である。頂点Sから頂点
Tに進むと、Δyは負である。頂点′rから頂点Uに進
むと、Δyは正である。頂点Uから頂点Pに進むと、Δ
yは正である。Δyの変化を分析すると、それは3回符
号を変えている。もし多角形が一部テストに合格すると
、異なった符号変化は正しく2又は3回である。第11
A図のこの同じ多角医において、もし多角形61が頂点
Tから開始して時計回りの方向25にトラバースされる
と、符号変化のカウントは2である。頂点Tから頂点Q
まで、全てのΔyは正であり、時計回りに頂点Qから頂
点Tまで、全てのΔyは負である。
Δyの符号変化の各群のカウントが3よりも大きければ
、多角形は第11B図に示すように一部テストに失敗す
る。第11B図の多角形62は、多角形が頂点Vから出
発して時計回りにトラバースされるΔyの符号に4つの
異なった変化を示す。
、多角形は第11B図に示すように一部テストに失敗す
る。第11B図の多角形62は、多角形が頂点Vから出
発して時計回りにトラバースされるΔyの符号に4つの
異なった変化を示す。
第11B図に示される多角形62は、この第2の多角形
充填アルゴリズムを用いて充填できない多角形を示して
いる。この多角形62は点5及び点6の間に示すように
1本の走査線を用いて充填することができない。点5及
び点6の両者は同じy値102を有している。にもかか
わらず、多角形62を充填するのに2本の異なった線1
34.135が必要である。
充填アルゴリズムを用いて充填できない多角形を示して
いる。この多角形62は点5及び点6の間に示すように
1本の走査線を用いて充填することができない。点5及
び点6の両者は同じy値102を有している。にもかか
わらず、多角形62を充填するのに2本の異なった線1
34.135が必要である。
第2の多角形充填アルゴリズムは第11B図の多角形6
2の特性を有する多角形を充填するように修正できるが
、アルゴリズムはより複雑になる。
2の特性を有する多角形を充填するように修正できるが
、アルゴリズムはより複雑になる。
例えば、アルゴリズムは2組の最小値及び最大値を設け
それらの値を初期化することによって拡張できる。しか
し、アルゴリズムはより複雑になり且つアルゴリズムの
一般性は失われる。
それらの値を初期化することによって拡張できる。しか
し、アルゴリズムはより複雑になり且つアルゴリズムの
一般性は失われる。
第11C図に示される多角形63は厳密に凸ではないが
、第2の多角形充填アルゴリズムに適合する。この多角
形63は、X方向に凹部を有する。
、第2の多角形充填アルゴリズムに適合する。この多角
形63は、X方向に凹部を有する。
しかしこの多角形は一部テストに合格する。多角形を頂
点Jから出発して時計回り25にトラバースすると、頂
点Jから頂点KまでΔyは正である。
点Jから出発して時計回り25にトラバースすると、頂
点Jから頂点KまでΔyは正である。
△yの符号は頂点Kから頂点りまで及び頂点りから頂点
Mまで正である。次にΔyの符号は頂点Mから頂点Jま
で正である。出発位置に無関係に、△yの符号に2又は
3の変化が存在する。この多角形は各y値102毎に1
本のy走査線132により充填できる。
Mまで正である。次にΔyの符号は頂点Mから頂点Jま
で正である。出発位置に無関係に、△yの符号に2又は
3の変化が存在する。この多角形は各y値102毎に1
本のy走査線132により充填できる。
もし多角形が一部テストに失敗すると、第2の多角形充
填アルゴリズムの代りに標準的なGSL多角形充填アル
ゴリズムが使用される。もし−周テストに合格すると、
gsff (表4)は行7099で第2の多角形充填ア
ルゴリズムgenline 2 (表5)を呼び出す。
填アルゴリズムの代りに標準的なGSL多角形充填アル
ゴリズムが使用される。もし−周テストに合格すると、
gsff (表4)は行7099で第2の多角形充填ア
ルゴリズムgenline 2 (表5)を呼び出す。
genline 2はganlineに類似している。
しかし、走査線上の最後の点を記憶する代りに、それは
走査線の最初と最後の点を記憶する。行8062.80
63で、geneline 2はgenlineと同様
に傾斜を計算する。行8072と8121との間にはg
enlineと同様の8分円領域論理が存在する。行8
126〜8128はBresenhamアルゴリズムと
同じ初期化を行なう。行8139以下には、X=x+1
からX≦x2までの同じforループが存在する。もし
行8140でiがゼロよりも小さければ、これは何も変
化していないことを意味する。
走査線の最初と最後の点を記憶する。行8062.80
63で、geneline 2はgenlineと同様
に傾斜を計算する。行8072と8121との間にはg
enlineと同様の8分円領域論理が存在する。行8
126〜8128はBresenhamアルゴリズムと
同じ初期化を行なう。行8139以下には、X=x+1
からX≦x2までの同じforループが存在する。もし
行8140でiがゼロよりも小さければ、これは何も変
化していないことを意味する。
i = i 十b −a時、 table+ 1に、X
の以前の最大値が記憶される。即座に、tableは増
計数され、新しい走査線上にあるXの現在値も記憶され
る。
の以前の最大値が記憶される。即座に、tableは増
計数され、新しい走査線上にあるXの現在値も記憶され
る。
任意の走査線に関して、充填線は、2つの配列に記憶さ
れている値の最小の最小値から最大の最大値へ引かれる
。
れている値の最小の最小値から最大の最大値へ引かれる
。
第1図を参照すると、第2の多角形充填アルゴリズムg
enline 2は、yが最小値1を有する点から開始
する。各線121〜124毎に、各走査線132上の最
小値及び最大値が第8図の2つの表111.112に保
存される。各表111.112は各yの値103毎に2
つのエントリ116゜118を有する。yminlとy
max 2との間の時計回りの線121.122に関
しては、第2の表112中にエントリが形成される。y
max 2とy m1n1との間の、反時計回りの線
123.124に関しては、第1の表111にエントリ
が形成させる。
enline 2は、yが最小値1を有する点から開始
する。各線121〜124毎に、各走査線132上の最
小値及び最大値が第8図の2つの表111.112に保
存される。各表111.112は各yの値103毎に2
つのエントリ116゜118を有する。yminlとy
max 2との間の時計回りの線121.122に関
しては、第2の表112中にエントリが形成される。y
max 2とy m1n1との間の、反時計回りの線
123.124に関しては、第1の表111にエントリ
が形成させる。
多角形120を上方ヘトラバースする時、表8112が
使用され、多角形120を下方ヘトラバースする時、表
A111が使用される。このルーチンでは第1の多角形
充填アルゴリズムよりも多くの記憶及び処理が行なわれ
る。従って第2の多角形充填ルーチンは第1の多角形充
填ルーチンよリも低速になる。しかし、その利点は、そ
れが大きなりラスの多角形を充填できることである。そ
れにもかかわらず、第2の多角形充填ルーチンは一般的
な多角形充填アルゴリズムよりも高速であり、処理時間
が短かい。
使用され、多角形120を下方ヘトラバースする時、表
A111が使用される。このルーチンでは第1の多角形
充填アルゴリズムよりも多くの記憶及び処理が行なわれ
る。従って第2の多角形充填ルーチンは第1の多角形充
填ルーチンよリも低速になる。しかし、その利点は、そ
れが大きなりラスの多角形を充填できることである。そ
れにもかかわらず、第2の多角形充填ルーチンは一般的
な多角形充填アルゴリズムよりも高速であり、処理時間
が短かい。
表111,112を埋めた後、複数ライン描画ルーチン
が呼び出される(行7111〜7112)。
が呼び出される(行7111〜7112)。
これは範囲yminl〜ymax2にy毎に水平線14
2を引くためである。このルーチンは、GSL複数ライ
ン・ルーチンを呼び出す前に、行7104で、2つの表
111,112を組み合せて1つの表にする。組み合せ
は、各走査線毎に2つの最大値のうち最大のもの及び2
つの最小値のうち最小のものを見つけることより成る。
2を引くためである。このルーチンは、GSL複数ライ
ン・ルーチンを呼び出す前に、行7104で、2つの表
111,112を組み合せて1つの表にする。組み合せ
は、各走査線毎に2つの最大値のうち最大のもの及び2
つの最小値のうち最小のものを見つけることより成る。
またその代りに、複数ライン・ルーチンは、両者の表1
11.112へのポインタを受は取り、各走査線毎にm
in及びmaxを形成するように書かれることも可能で
ある。
11.112へのポインタを受は取り、各走査線毎にm
in及びmaxを形成するように書かれることも可能で
ある。
多角形120を上方ヘトラバースする時、各走査線13
2上の最初の画素41.43.45及び最終の画素42
.44.46が記憶される。これが終了すると、B配列
112に各走査線132に関するXの最小値及び最大値
が記入される。多角形120を下方ヘトラバースする時
、各走査線132に関するXの最小値及び最大値がA配
列111に記憶される。凸性の要求により、上昇及び下
降時に正確に1本の線が存在する。最終的な後処理とし
て、両者の配列に対するポインタがデイスプレィに送ら
れるか、又は後処理装置が最小の最小値及び最大の最大
値を各走査線毎に決定し、これがデイスプレィに送られ
る。
2上の最初の画素41.43.45及び最終の画素42
.44.46が記憶される。これが終了すると、B配列
112に各走査線132に関するXの最小値及び最大値
が記入される。多角形120を下方ヘトラバースする時
、各走査線132に関するXの最小値及び最大値がA配
列111に記憶される。凸性の要求により、上昇及び下
降時に正確に1本の線が存在する。最終的な後処理とし
て、両者の配列に対するポインタがデイスプレィに送ら
れるか、又は後処理装置が最小の最小値及び最大の最大
値を各走査線毎に決定し、これがデイスプレィに送られ
る。
本発明を特定の実施例に則して説明してきたが、種の変
更が可能なことはいうまでもない。例えば、X及びX方
向を参照しながら本発明を説明したが、その方向は交換
してもよい。従って本発明はX方向の代りにX方向に走
査線を有する事によって動作する任意のデイスプレィに
適用できる。
更が可能なことはいうまでもない。例えば、X及びX方
向を参照しながら本発明を説明したが、その方向は交換
してもよい。従って本発明はX方向の代りにX方向に走
査線を有する事によって動作する任意のデイスプレィに
適用できる。
右
61 や
−(′J rnゞ40ゝ0■0−〜rマ。ψ8の。0−
0゜ワー。、。。(() () () () ()()
() () O++P−−−++++ ++ −−(
’J (%J (’J (%J C%J (’J (%
J (’J C%J (%J T’000000000
000000000000000 Cl0000C’?
???臂ぐ!寸臂寸!!マ!ぐぐ守ぐぐママ豐マママ寸
ぐ寸寸〜【−4どub f gsl and Hpl are equal
4/参本 ・−516
ス #1fdsf G!;1 ” yminl、 ays[2’ yminl l;、
469− \ −鴫 牢 へ ! ω −ω − ζ カ0++−〜n!GψNの(FI OW〜哨ぐいφトω
Φ0!〜っ望0’−ト1’−1”−r”−トトトトトω
のωωのωのののω■cn cn cnΦ)OOOOo
oooooooo()OOOOOOOOO00pψψψ
ψWψψψψψψψψψψψφψψψψψΦψψC r1O?〜−寸む■トcocn o−〜つ望OψトのΦ
01へO(n O’l an cyt (n cn c
n cn cn cyt OOO000000Q −−
−63ご5J〕;ごごJ5認認認認淵氾さ8認さ認鑓ト
φ Φ牢 tn
−1の
本
X傘ト
v率
へ、
−−亨率
J 車 本
0゜ワー。、。。(() () () () ()()
() () O++P−−−++++ ++ −−(
’J (%J (’J (%J C%J (’J (%
J (’J C%J (%J T’000000000
000000000000000 Cl0000C’?
???臂ぐ!寸臂寸!!マ!ぐぐ守ぐぐママ豐マママ寸
ぐ寸寸〜【−4どub f gsl and Hpl are equal
4/参本 ・−516
ス #1fdsf G!;1 ” yminl、 ays[2’ yminl l;、
469− \ −鴫 牢 へ ! ω −ω − ζ カ0++−〜n!GψNの(FI OW〜哨ぐいφトω
Φ0!〜っ望0’−ト1’−1”−r”−トトトトトω
のωωのωのののω■cn cn cnΦ)OOOOo
oooooooo()OOOOOOOOO00pψψψ
ψWψψψψψψψψψψψφψψψψψΦψψC r1O?〜−寸む■トcocn o−〜つ望OψトのΦ
01へO(n O’l an cyt (n cn c
n cn cn cyt OOO000000Q −−
−63ご5J〕;ごごJ5認認認認淵氾さ8認さ認鑓ト
φ Φ牢 tn
−1の
本
X傘ト
v率
へ、
−−亨率
J 車 本
第1図は本発明のアルゴリズムにより充填される多角形
を示す図、 第2A図は凸多角形を示す図、 第2B図は非凸多角形を示す図、 第3A図及び第3B図は従来技術の方法により凸と定義
される多角形を示す図。 第4A図及び第4B図は一般的な多角形として分類され
る多角形を示す図、 第5A図は本発明が実施される処理システムの図、 第5B図は第5A図の処理システムの論理構造を示す図
、 第5C図は第5A図の処理システムの物理的構造を示す
図、 第6A図は第1及び第2の多角形充填アルゴリズムによ
り充填できる多角形の図。 第6B図及び第6C図は第2の多角形充填アルゴリズム
により充填できる多角形の図、第6D図は第1及び第2
の多角形充填アルゴリズムにより充填できない多角形の
図、 第7図は第1の多角形充填アルゴリズムで使われる配列
を示す図。 第8図は第2の多角形充填アルゴリズムで使われる2つ
の配列を示す図、 第9図は8分円領域中の多角形を示す図、第10図はト
ラバースの方向が反転された時の丸め誤差を説明するた
めの図、 第11A図は一周テストに合格し第2の多角形充填アル
ゴリズムにより充填可能な多角形の図、第11B図は一
周テストに失敗し第2の多角形充填アルゴリズムにより
充填不可能な多角形の図。 第11C図は厳密に凸ではないが一周テストに合格し第
2の多角形充填アルゴリズムにより充填可能な多角形の
図である。 出願人 インターナショナ7いビジネス・マシーンズ
φコーホレーyMン代理人弁r1士 頓 宮 孝
−外1名ゴ→ 第5A図 −、f川 f−71LA ヤー、−,,,412第
8図 第10図 第11A図 第11C図
を示す図、 第2A図は凸多角形を示す図、 第2B図は非凸多角形を示す図、 第3A図及び第3B図は従来技術の方法により凸と定義
される多角形を示す図。 第4A図及び第4B図は一般的な多角形として分類され
る多角形を示す図、 第5A図は本発明が実施される処理システムの図、 第5B図は第5A図の処理システムの論理構造を示す図
、 第5C図は第5A図の処理システムの物理的構造を示す
図、 第6A図は第1及び第2の多角形充填アルゴリズムによ
り充填できる多角形の図。 第6B図及び第6C図は第2の多角形充填アルゴリズム
により充填できる多角形の図、第6D図は第1及び第2
の多角形充填アルゴリズムにより充填できない多角形の
図、 第7図は第1の多角形充填アルゴリズムで使われる配列
を示す図。 第8図は第2の多角形充填アルゴリズムで使われる2つ
の配列を示す図、 第9図は8分円領域中の多角形を示す図、第10図はト
ラバースの方向が反転された時の丸め誤差を説明するた
めの図、 第11A図は一周テストに合格し第2の多角形充填アル
ゴリズムにより充填可能な多角形の図、第11B図は一
周テストに失敗し第2の多角形充填アルゴリズムにより
充填不可能な多角形の図。 第11C図は厳密に凸ではないが一周テストに合格し第
2の多角形充填アルゴリズムにより充填可能な多角形の
図である。 出願人 インターナショナ7いビジネス・マシーンズ
φコーホレーyMン代理人弁r1士 頓 宮 孝
−外1名ゴ→ 第5A図 −、f川 f−71LA ヤー、−,,,412第
8図 第10図 第11A図 第11C図
Claims (1)
- 【特許請求の範囲】 グラフィック・ディスプレイ・システムにおいて、複数
の選択可能な画素により定義可能な境界を有する多角形
を充填する方法であって、 上記境界を順次に、上記複数の選択可能な画素に沿って
トラバースし、 上記トラバース中に、上記多角形の複数の走査線の各々
に関する複数の選択可能な画素の最小値及び最大値を選
択し、 上記最小値と上記最大値との間に充填線を描くステップ
を含む 多角形充填方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US130851 | 1987-12-09 | ||
| US07/130,851 US4962468A (en) | 1987-12-09 | 1987-12-09 | System and method for utilizing fast polygon fill routines in a graphics display system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01191275A true JPH01191275A (ja) | 1989-08-01 |
| JPH07113977B2 JPH07113977B2 (ja) | 1995-12-06 |
Family
ID=22446662
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63310301A Expired - Fee Related JPH07113977B2 (ja) | 1987-12-09 | 1988-12-09 | 多角形の充填方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US4962468A (ja) |
| EP (1) | EP0323558B1 (ja) |
| JP (1) | JPH07113977B2 (ja) |
| BR (1) | BR8806303A (ja) |
| DE (1) | DE3851046T2 (ja) |
Families Citing this family (149)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5016189A (en) * | 1988-07-06 | 1991-05-14 | Ricoh Company, Ltd. | Area filling device |
| JP2690110B2 (ja) * | 1988-08-15 | 1997-12-10 | 沖電気工業株式会社 | 走査変換方法 |
| DE68923412T2 (de) * | 1988-08-26 | 1995-12-21 | Canon Kk | Bildverarbeitungseinrichtung. |
| JPH02231687A (ja) * | 1989-03-06 | 1990-09-13 | Brother Ind Ltd | 描画データ作成装置 |
| JPH0760465B2 (ja) * | 1989-10-23 | 1995-06-28 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 凹ポリゴン描出方法及びプロセツサ |
| US5265198A (en) * | 1989-10-23 | 1993-11-23 | International Business Machines Corporation | Method and processor for drawing `polygon with edge`-type primitives in a computer graphics display system |
| US5155813A (en) * | 1990-01-08 | 1992-10-13 | Wang Laboratories, Inc. | Computer apparatus for brush styled writing |
| JPH04256080A (ja) * | 1990-08-29 | 1992-09-10 | Xerox Corp | 多角形を表現する規約を変換する方法 |
| US5420970A (en) * | 1991-03-13 | 1995-05-30 | Martin Marietta Corporation | Method for determining computer image generation display pixels occupied by a circular feature |
| US5347619A (en) * | 1991-04-30 | 1994-09-13 | International Business Machines Corporation | Nonconvex polygon identifier |
| US5428717A (en) * | 1991-12-30 | 1995-06-27 | Xerox Corporation | Methods for converting concave polyhedra to their convex hulls |
| US5317681A (en) * | 1991-12-30 | 1994-05-31 | Xerox Corporation | Sequencing and scheduling moves for converting concave polyhedra to their convex hulls |
| JP3332165B2 (ja) * | 1992-08-08 | 2002-10-07 | 株式会社リコー | 画像処理装置 |
| US5371843A (en) * | 1992-10-16 | 1994-12-06 | International Business Machines Corporation | Method and system for filling non-complex polygons using vertical spans |
| US5446836A (en) * | 1992-10-30 | 1995-08-29 | Seiko Epson Corporation | Polygon rasterization |
| US5649104A (en) * | 1993-03-19 | 1997-07-15 | Ncr Corporation | System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers |
| US5835713A (en) * | 1993-03-19 | 1998-11-10 | Ncr Corporation | Remote collaboration system for selectively locking the display at remote computers to prevent annotation of the display by users of the remote computers |
| US5463723A (en) * | 1993-09-20 | 1995-10-31 | International Business Machines Corporation | Method and apparatus for filling polygons |
| AU3313895A (en) * | 1994-10-14 | 1996-04-26 | Compaq Computer Corporation | Method and apparatus for determining simple convex polygons |
| US5644691A (en) * | 1994-10-14 | 1997-07-01 | Compaq Computer Corporation | Method and apparatus for accelerated filling of polygons on a computer display by rectangular decomposition |
| JP3239975B2 (ja) * | 1994-11-29 | 2001-12-17 | 富士通株式会社 | 多角形描画装置 |
| US6172682B1 (en) * | 1996-01-24 | 2001-01-09 | Hewlett-Packard Co. | Detecting insideness of a rectangle to an arbitrary polygon |
| JP3264619B2 (ja) * | 1996-06-05 | 2002-03-11 | キヤノン株式会社 | 画像処理装置および方法 |
| US6662210B1 (en) | 1997-03-31 | 2003-12-09 | Ncr Corporation | Method of remote collaboration system |
| JPH10326352A (ja) * | 1997-05-27 | 1998-12-08 | Mitsubishi Electric Corp | 多角形塗り潰し方法及び記録媒体 |
| US6285375B1 (en) | 1999-02-05 | 2001-09-04 | International Business Machines Corporation | Algorithm to transform generalized polygons to trapezoids |
| US6345354B1 (en) | 1999-04-29 | 2002-02-05 | Mips Technologies, Inc. | Register file access |
| GB9922248D0 (en) * | 1999-09-21 | 1999-11-17 | Rolls Royce Plc | Improvements in or relating to methods and apparatus for machining workpieces |
| US6897869B1 (en) * | 1999-10-25 | 2005-05-24 | International Business Machines Corporation | System and method for filling a polygon |
| AU2579501A (en) * | 1999-12-15 | 2001-06-25 | Verizon Laboratories Inc. | Method and apparatus for network planning |
| US6392646B1 (en) | 1999-12-22 | 2002-05-21 | General Electric Co. | Iterative determination of the shortest path between two points on a polygonal surface |
| US6845448B1 (en) * | 2000-01-07 | 2005-01-18 | Pennar Software Corporation | Online repository for personal information |
| US8117644B2 (en) * | 2000-01-07 | 2012-02-14 | Pennar Software Corporation | Method and system for online document collaboration |
| US8468035B2 (en) | 2000-10-02 | 2013-06-18 | Computer Sciences Corporation | Computerized method and system for accumulating liability estimates |
| US6433329B1 (en) | 2001-01-30 | 2002-08-13 | International Business Machines Corporation | Optical position sensor with threshold updated dynamically by interpolation between minimum and maximum levels of output signal |
| US20040103011A1 (en) * | 2001-05-29 | 2004-05-27 | Kouji Hatano | Insurance system |
| US7761361B2 (en) * | 2001-07-10 | 2010-07-20 | The Boeing Company | System, method and computer program product for performing a contingent claim valuation of a combination option |
| US7676412B2 (en) * | 2001-07-10 | 2010-03-09 | The Boeing Company | System, method and computer program product for determining a minimum asset value for exercising a contingent claim of an option |
| US20040249642A1 (en) * | 2003-06-03 | 2004-12-09 | The Boeing Company | Systems, methods and computer program products for modeling uncertain future benefits |
| US7747503B2 (en) * | 2001-07-10 | 2010-06-29 | The Boeing Company | System, method and computer program product for determining a minimum asset value for exercising a contingent claim of an option |
| US7698189B2 (en) * | 2001-07-10 | 2010-04-13 | The Boeing Company | System, method and computer program product for determining a minimum asset value for exercising a contingent claim of an option |
| US6862579B2 (en) * | 2001-07-10 | 2005-03-01 | The Boeing Company | Systems, methods and computer program products for performing a generalized contingent claim valuation |
| US7676413B2 (en) * | 2001-07-10 | 2010-03-09 | The Boeing Company | System, method and computer program product for determining a minimum asset value for exercising a contingent claim of an option |
| US7739176B2 (en) * | 2001-07-10 | 2010-06-15 | The Boeing Company | System, method and computer program product for performing a contingent claim valuation of an early-launch option |
| US7752113B2 (en) * | 2001-07-10 | 2010-07-06 | The Boeing Company | System, method and computer program product for performing a contingent claim valuation of a multi-stage option |
| US7747504B2 (en) * | 2001-07-10 | 2010-06-29 | The Boeing Company | System, method and computer program product for determining a minimum asset value for exercising a contingent claim of an option |
| WO2003014997A1 (en) * | 2001-08-08 | 2003-02-20 | Ims Health | System and method for creating data links between diagnostic information and prescription information records |
| JP3929740B2 (ja) * | 2001-10-16 | 2007-06-13 | 本田技研工業株式会社 | 内燃機関の制御装置 |
| AUPR860901A0 (en) * | 2001-10-31 | 2001-11-29 | Canon Kabushiki Kaisha | Activating a filling of a graphical object |
| JP4416374B2 (ja) * | 2002-03-26 | 2010-02-17 | 富士通株式会社 | 保険料設定方法、保険料設定プログラムおよび保険料設定装置 |
| US7925518B2 (en) * | 2002-04-19 | 2011-04-12 | Visa U.S.A. Inc. | System and method for payment of medical claims |
| AU2003241385A1 (en) | 2002-05-03 | 2003-11-17 | Pixearth, Corporation | A system to navigate within images spatially referenced to a computed space |
| US20040054556A1 (en) * | 2002-09-09 | 2004-03-18 | Stephan Wahlbin | Computerized method and system for determining causation in premises liability for an accident |
| US7672860B2 (en) * | 2002-09-09 | 2010-03-02 | Computer Sciences Corporation | Computerized method and system for determining the contribution of defenses to premises liability for an accident |
| US7702529B2 (en) | 2002-11-27 | 2010-04-20 | Computer Sciences Corporation | Computerized method and system for estimating an effect on liability using claim data accessed from claim reporting software |
| US7895063B2 (en) * | 2002-11-27 | 2011-02-22 | Computer Sciences Corporation | Computerized method and system for creating pre-configured claim reports including liability in an accident estimated using a computer system |
| US7809586B2 (en) * | 2002-11-27 | 2010-10-05 | Computer Sciences Corporation | Computerized method and system for estimating an effect on liability using a comparison of the actual speed of a vehicle in an accident and time and distance traveled by the vehicles in a merging vehicle accident |
| US7805321B2 (en) * | 2002-11-27 | 2010-09-28 | Computer Sciences Corporation | Computerized method and system for estimating liability for an accident from an investigation of the accident |
| US7725334B2 (en) * | 2002-11-27 | 2010-05-25 | Computer Sciences Corporation | Computerized method and system for estimating liability for an accident using dynamic generation of questions |
| US7660725B2 (en) | 2002-11-27 | 2010-02-09 | Computer Sciences Corporation | Computerized method and system for estimating an effect on liability based on the stopping distance of vehicles |
| US7818187B2 (en) * | 2002-11-27 | 2010-10-19 | Computer Sciences Corporation | Computerized method and system for estimating liability |
| US20040103005A1 (en) * | 2002-11-27 | 2004-05-27 | Stefan Wahlbin | Computerized method and system for estimating monetary damages due to injuries in an accident from liability estimated using a computer system |
| US7792690B2 (en) * | 2002-11-27 | 2010-09-07 | Computer Sciences Corporation | Computerized method and system for estimating an effect on liability of the speed of vehicles in an accident and time and distance traveled by the vehicles |
| US7002574B2 (en) * | 2002-12-27 | 2006-02-21 | Microsoft Corporation | Method and system for tessellating a polygon |
| US20040138934A1 (en) * | 2003-01-09 | 2004-07-15 | General Electric Company | Controlling a business using a business information and decisioning control system |
| US20040153347A1 (en) * | 2003-01-31 | 2004-08-05 | David Kunze | Method and apparatus for point-of-sale purchasing |
| TW200422974A (en) * | 2003-04-17 | 2004-11-01 | Benq Corp | Method for filling a closed region |
| US8121889B2 (en) * | 2003-05-16 | 2012-02-21 | International Business Machines Corporation | Information technology portfolio management |
| US7599849B2 (en) * | 2003-06-03 | 2009-10-06 | The Boeing Company | Systems, methods and computer program products for determining a learning curve value and modeling associated profitability and costs of a good |
| US7627494B2 (en) * | 2003-06-03 | 2009-12-01 | The Boeing Company | Systems, methods and computer program products for modeling a monetary measure for a good based upon technology maturity levels |
| US7739166B2 (en) * | 2003-06-03 | 2010-06-15 | The Boeing Company | Systems, methods and computer program products for modeling demand, supply and associated profitability of a good in a differentiated market |
| US7769628B2 (en) | 2003-06-03 | 2010-08-03 | The Boeing Company | Systems, methods and computer program products for modeling uncertain future demand, supply and associated profitability of a good |
| US7627495B2 (en) * | 2003-06-03 | 2009-12-01 | The Boeing Company | Systems, methods and computer program products for modeling demand, supply and associated profitability of a good |
| US20050192850A1 (en) * | 2004-03-01 | 2005-09-01 | Lorenz Scott K. | Systems and methods for using data structure language in web services |
| US8027886B2 (en) * | 2004-03-08 | 2011-09-27 | Sap Aktiengesellschaft | Program product for purchase order processing |
| US8050990B2 (en) * | 2004-03-08 | 2011-11-01 | Sap Ag | Method of and system for generating purchase orders using an auction process |
| US8423428B2 (en) * | 2004-03-08 | 2013-04-16 | Sap Ag | Method for allocation of budget to order periods and delivery periods in a purchase order system |
| US7805335B2 (en) * | 2004-03-08 | 2010-09-28 | Sap Ag | Purchase list having status indicators |
| US8050956B2 (en) * | 2004-03-08 | 2011-11-01 | Sap Ag | Computer-readable medium, program product, and system for providing a schedule bar with event dates to monitor procurement of a product |
| US8046273B2 (en) | 2004-03-08 | 2011-10-25 | Sap Ag | System and method for purchase order creation, procurement, and controlling |
| US7647250B2 (en) * | 2004-03-08 | 2010-01-12 | Sap Ag | Method and program product for event monitoring |
| US7983962B2 (en) * | 2004-03-08 | 2011-07-19 | Sap Aktiengesellschaft | Method and system for purchase order data entry |
| US7813949B2 (en) * | 2004-03-08 | 2010-10-12 | Sap Ag | Method and system for flexible budgeting in a purchase order system |
| US20060031103A1 (en) * | 2004-08-06 | 2006-02-09 | Henry David S | Systems and methods for diagram data collection |
| US20060173714A1 (en) * | 2004-12-22 | 2006-08-03 | Grotzinger Raymond P Jr | Apparatus, system, and method for facilitating compliance with guidelines for pharmaceutical preparations |
| US20060149529A1 (en) * | 2005-01-04 | 2006-07-06 | Loc Nguyen | Method for encoding messages between two devices for transmission over standard online payment networks |
| US7650308B2 (en) | 2005-01-04 | 2010-01-19 | Visa U.S.A. Inc. | Auto substantiation for over-the-counter transactions |
| US20060149603A1 (en) * | 2005-01-04 | 2006-07-06 | Barbara Patterson | Method and system for determining healthcare eligibility |
| US7792693B2 (en) * | 2005-02-25 | 2010-09-07 | Novell, Inc. | Distributed workflow techniques |
| US8660862B2 (en) | 2005-09-20 | 2014-02-25 | Visa U.S.A. Inc. | Determination of healthcare coverage using a payment account |
| US20070083504A1 (en) * | 2005-10-06 | 2007-04-12 | Britt Michael W | Selecting information technology components for target market offerings |
| US10042980B2 (en) * | 2005-11-17 | 2018-08-07 | Gearbox Llc | Providing assistance related to health |
| US20070112592A1 (en) * | 2005-11-17 | 2007-05-17 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Payments in providing assistance related to health |
| US20070119928A1 (en) * | 2005-11-17 | 2007-05-31 | Jung Edward K | Generating a nutraceutical request from an inventory |
| US20070112796A1 (en) * | 2005-11-17 | 2007-05-17 | Jung Edward K | Research in providing assistance related to health |
| US20070112589A1 (en) * | 2005-11-17 | 2007-05-17 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | User interface for providing assistance related to health |
| US8532938B2 (en) * | 2005-11-17 | 2013-09-10 | The Invention Science Fund I, Llc | Testing-dependent administration of a nutraceutical |
| US20070208520A1 (en) * | 2006-03-01 | 2007-09-06 | Siemens Energy & Automation, Inc. | Systems, devices, and methods for arc fault management |
| JP4621617B2 (ja) * | 2006-03-28 | 2011-01-26 | 株式会社東芝 | 図形描画装置、図形描画方法、及びプログラム |
| JP4621618B2 (ja) * | 2006-03-28 | 2011-01-26 | 株式会社東芝 | 図形描画装置、図形描画方法、およびプログラム |
| US7739129B2 (en) * | 2006-04-10 | 2010-06-15 | Accenture Global Services Gmbh | Benefit plan intermediary |
| US20070239492A1 (en) * | 2006-04-10 | 2007-10-11 | Sweetland Christopher L | Estimating benefit plan costs |
| US8788284B2 (en) * | 2006-05-30 | 2014-07-22 | Visa U.S.A. Inc. | Method and system using combined healthcare-payment device and web portal for receiving patient medical information |
| WO2007146817A2 (en) * | 2006-06-08 | 2007-12-21 | Visa Usa Inc. | System and method using extended authorization hold period |
| US20080010094A1 (en) * | 2006-06-21 | 2008-01-10 | Mark Carlson | Distribution of health information for providing health related services |
| US7769599B2 (en) * | 2006-07-31 | 2010-08-03 | Visa U.S.A. Inc. | Electronic payment delivery service |
| US20080319794A1 (en) * | 2007-06-20 | 2008-12-25 | Mark Carlson | Health information services using phone |
| US20090006131A1 (en) * | 2007-06-29 | 2009-01-01 | General Electric Company | Electronic medical record-influenced data acquisition, processing, and display system and method |
| US8244558B2 (en) | 2008-01-18 | 2012-08-14 | Computer Sciences Corporation | Determining recommended settlement amounts by adjusting values derived from matching similar claims |
| US20100057621A1 (en) * | 2008-06-30 | 2010-03-04 | Faith Patrick L | Payment processing system secure healthcare data trafficking |
| US8201424B2 (en) * | 2009-01-22 | 2012-06-19 | Lockheed Martin Corporation | Synthetic redundancy via prognostics |
| WO2010129571A2 (en) * | 2009-05-04 | 2010-11-11 | Visa International Service Association | Demographic analysis using time-based consumer transaction histories |
| US8939356B2 (en) | 2009-06-08 | 2015-01-27 | Visa International Service Association | Portable prescription payment device management platform apparautses, methods and systems |
| US8413905B2 (en) * | 2009-10-05 | 2013-04-09 | Visa U.S.A. Inc. | Portable prescription transaction payment device |
| US10614458B2 (en) * | 2009-08-14 | 2020-04-07 | Visa U.S.A. Inc. | Influenza vaccine administration payment device processing |
| US20110166872A1 (en) * | 2009-08-14 | 2011-07-07 | Cervenka Karen L | Auto-substantiation for healthcare upon sponsor account through payment processing system |
| US8676721B2 (en) * | 2009-09-18 | 2014-03-18 | Apo Offshore, Inc. | Method, system and apparatus for intelligent management of oil and gas platform surface equipment |
| US20110079643A1 (en) * | 2009-10-05 | 2011-04-07 | Stacy Pourfallah | Prescription sample transaction payment card |
| US8301512B2 (en) | 2009-10-23 | 2012-10-30 | Ebay Inc. | Product identification using multiple services |
| WO2016111963A1 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Characterization of crude oil by nmr spectroscopy |
| WO2016111965A1 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Characterization of crude oil by simulated distillation |
| WO2016111962A1 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Characterization of crude oil by ultraviolet visible spectroscopy |
| WO2016111982A1 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Characterization of crude oil by near infrared spectroscopy |
| US9589266B2 (en) | 2011-04-01 | 2017-03-07 | Visa International Service Association | Restricted-use account payment administration apparatuses, methods and systems |
| US9760871B1 (en) | 2011-04-01 | 2017-09-12 | Visa International Service Association | Event-triggered business-to-business electronic payment processing apparatuses, methods and systems |
| US8768812B2 (en) | 2011-05-02 | 2014-07-01 | The Boeing Company | System, method and computer-readable storage medium for valuing a performance option |
| US20120305756A1 (en) | 2011-05-31 | 2012-12-06 | Russ William R | Spectrometer Calibration System and Method |
| WO2016111989A1 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Characterization of crude oil by high pressure liquid chromatography |
| WO2016111988A1 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Charaterization of crude oil by fourier transform ion cyclotron resonance mass spectrometry |
| US9040932B2 (en) | 2011-11-16 | 2015-05-26 | Canberra Industries, Inc. | Surface contamination monitoring system and method |
| WO2016111986A1 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Characterization of crude oil by ultraviolet visible spectroscopy |
| US9023257B2 (en) | 2012-11-14 | 2015-05-05 | Perfect Ip, Llc | Hydrophilicity alteration system and method |
| US9040925B2 (en) | 2012-12-21 | 2015-05-26 | Canberra Industries, Inc. | Spatially-aware radiation probe system and method |
| US9509158B2 (en) | 2013-12-31 | 2016-11-29 | Lite-On, Inc. | Power supply configuration system and method |
| US9047075B1 (en) | 2013-12-31 | 2015-06-02 | Victor K. J. Lee | Uninterruptable power supply system and method |
| US20150310647A1 (en) | 2014-04-24 | 2015-10-29 | Sas Institute Inc. | Techniques for Visualization of Data |
| EP2952933B1 (en) | 2014-05-26 | 2019-07-17 | Mirion Technologies (Canberra ) SAS | Radiation camera system and method |
| WO2016111961A2 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Relative valuation method for naphtha streams |
| SG11201705503PA (en) | 2015-01-05 | 2017-08-30 | Saudi Arabian Oil Co | Characterization of crude oil by near infrared spectroscopy |
| JP2018509594A (ja) | 2015-01-05 | 2018-04-05 | サウジ アラビアン オイル カンパニー | ナフサ流の相対評価法 |
| WO2016111956A1 (en) | 2015-01-05 | 2016-07-14 | Saudi Arabian Oil Company | Characterization of crude oil and its fractions by fluorescence spectroscopy analysis |
| JP6836507B2 (ja) | 2015-01-05 | 2021-03-03 | サウジ アラビアン オイル カンパニー | 紫外可視分光法による原油のキャラクタリゼーション |
| CN107257918B (zh) | 2015-01-05 | 2020-10-23 | 沙特阿拉伯石油公司 | 通过热重分析表征原油及其级分 |
| EP3243066B1 (en) | 2015-01-05 | 2020-11-11 | Saudi Arabian Oil Company | Characterization of crude oil and its fractions by fourier transform infrared spectroscopy (ftir) analysis |
| US10576704B2 (en) | 2017-02-16 | 2020-03-03 | Perfect Ip, Llc | Ophthalmic lens customization system and method |
| US10048389B1 (en) | 2017-04-19 | 2018-08-14 | Mirion Technologies (Canberra), Inc. | Centroid contact radiation detector system and method |
| US11874258B2 (en) | 2018-10-11 | 2024-01-16 | Saudi Arabian Oil Company | System and method of characterizing crude oil by gel permeation chromatography (GPC) |
| US20200209213A1 (en) | 2018-12-27 | 2020-07-02 | Saudi Arabian Oil Company | Method for determining the composition and properties of hydrocarbon fractions by spectroscopy or spectrometry |
| US20230273177A1 (en) * | 2022-02-28 | 2023-08-31 | Saudi Arabian Oil Company | Method to prepare virtual assay using simulated distillation |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4481594A (en) * | 1982-01-18 | 1984-11-06 | Honeywell Information Systems Inc. | Method and apparatus for filling polygons displayed by a raster graphic system |
| US4667306A (en) * | 1983-07-20 | 1987-05-19 | Ramtek Corporation | Method and apparatus for generating surface-fill vectors |
| US4646262A (en) * | 1983-07-20 | 1987-02-24 | Ramtek Corporation | Feedback vector generator for storage of data at a selectable rate |
| US4730261A (en) * | 1983-10-25 | 1988-03-08 | Ramtek Corporation | Solids modelling generator |
| US4725831A (en) * | 1984-04-27 | 1988-02-16 | Xtar Corporation | High-speed video graphics system and method for generating solid polygons on a raster display |
| US4677573A (en) * | 1984-05-15 | 1987-06-30 | International Business Machines Corporation | Hardware generation of styled vectors in a graphics system |
| US4758965A (en) * | 1985-10-09 | 1988-07-19 | International Business Machines Corporation | Polygon fill processor |
| JPS62192878A (ja) * | 1986-02-20 | 1987-08-24 | Nippon Gakki Seizo Kk | 多角形の塗りつぶし方法 |
| US4805116A (en) * | 1986-04-23 | 1989-02-14 | International Business Machines Corporation | Interpolated display characteristic value generator |
| US4808986A (en) * | 1987-02-12 | 1989-02-28 | International Business Machines Corporation | Graphics display system with memory array access |
-
1987
- 1987-12-09 US US07/130,851 patent/US4962468A/en not_active Expired - Lifetime
-
1988
- 1988-11-21 EP EP88119280A patent/EP0323558B1/en not_active Expired - Lifetime
- 1988-11-21 DE DE3851046T patent/DE3851046T2/de not_active Expired - Fee Related
- 1988-11-30 BR BR888806303A patent/BR8806303A/pt not_active Application Discontinuation
- 1988-12-09 JP JP63310301A patent/JPH07113977B2/ja not_active Expired - Fee Related
-
1990
- 1990-05-09 US US07/521,858 patent/US5710578A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH07113977B2 (ja) | 1995-12-06 |
| US5710578A (en) | 1998-01-20 |
| DE3851046D1 (de) | 1994-09-15 |
| DE3851046T2 (de) | 1995-03-09 |
| EP0323558A2 (en) | 1989-07-12 |
| BR8806303A (pt) | 1989-08-15 |
| US4962468A (en) | 1990-10-09 |
| EP0323558B1 (en) | 1994-08-10 |
| EP0323558A3 (en) | 1991-07-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH01191275A (ja) | 多角形の充填方法 | |
| EP0356103A2 (en) | Scan-conversion process and processor | |
| US5307451A (en) | Method and apparatus for generating and manipulating graphical data for display on a computer output device | |
| US5369739A (en) | Apparatus and method for generating point sample masks in a graphics display system | |
| US8624899B2 (en) | Arc spline GPU rasterization for cubic Bezier drawing | |
| JPS5985573A (ja) | コンピュータ・ディスプレイ装置における図形の生成方法 | |
| JPH0445874B2 (ja) | ||
| EP0592770B1 (en) | Method for filling of interior pixels within a polygon | |
| US5347619A (en) | Nonconvex polygon identifier | |
| KR101159320B1 (ko) | 폰트-힌팅 언어를 이용한 제한들의 반복적인 솔루션 | |
| EP0344686B1 (en) | Clipping process and processor | |
| US5295234A (en) | Apparatus for displaying a three dimensional object which appears substantially the same in different display directions by modifying stored image data by a scale factor | |
| CA2025782A1 (en) | Method for determining the optimum angle for displaying a line on raster output devices | |
| KR930000998B1 (ko) | 컴퓨터 그래픽스의 문자 그리고/또는 도형처리 방법 및 그의 장치 | |
| CA1319996C (en) | Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system | |
| US6025851A (en) | Envolvent approximation using accurate slope information | |
| JPH04362793A (ja) | ラスタ装置における描画方法 | |
| JPH06290270A (ja) | 閉じた輪郭イメージを凸多角形で境界づける方法及びデータ処理装置 | |
| JPH03119387A (ja) | デジタル活字面の輪郭を形成する方法およびその装置 | |
| JP3264619B2 (ja) | 画像処理装置および方法 | |
| US7292247B2 (en) | Dynamically determining directions of freedom for control points used to represent graphical objects | |
| JPH06180760A (ja) | コンピュータグラフィックス装置において主形状の1つを描く方法およびコンピュータグラフィックス装置 | |
| US6226014B1 (en) | Ellipse filling graphics method | |
| JPH08235362A (ja) | 単純な凸状の多角形を決定するための方法および装置 | |
| CN120279787A (zh) | 一种汉字临摹设备及其控制方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |