JPH0324676A - コンピュータ出力表示装置で表示するための多角形をクリップする方法 - Google Patents
コンピュータ出力表示装置で表示するための多角形をクリップする方法Info
- Publication number
- JPH0324676A JPH0324676A JP2148850A JP14885090A JPH0324676A JP H0324676 A JPH0324676 A JP H0324676A JP 2148850 A JP2148850 A JP 2148850A JP 14885090 A JP14885090 A JP 14885090A JP H0324676 A JPH0324676 A JP H0324676A
- Authority
- JP
- Japan
- Prior art keywords
- window
- polygon
- point
- algorithm
- code
- 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
- 238000000034 method Methods 0.000 title claims description 18
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 66
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 239000003973 paint Substances 0.000 description 3
- 241000282414 Homo sapiens Species 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 235000019832 sodium triphosphate Nutrition 0.000 description 2
- 241000276457 Gadidae Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 240000000233 Melia azedarach Species 0.000 description 1
- 241000357701 Polygona Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 244000309464 bull Species 0.000 description 1
- 238000009933 burial Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明ハコンピュータグラフィックス装置に関するもの
であシ、更に詳しくいえば、コ/ビュータの出力表示装
置上の窓内に存在させるために多角形を一層効率的にク
リップする方法に関するものである。
であシ、更に詳しくいえば、コ/ビュータの出力表示装
置上の窓内に存在させるために多角形を一層効率的にク
リップする方法に関するものである。
最近のコンピュータ装置は複数のプログラムを同時に処
理できる。これは、中央処理装置の機能をほぼ時分割し
ている、コンピュータで実行される各種のプログラムに
よシ通常行われる。複数のプログラムが中央処理装置に
よシ同時に実行されると、各プログラムのためのグラフ
ィック出力表示をコンピュータ出力表示装置の別々のウ
ィンドウに一緒に表示できる。二次元コンピュータ出力
表示装置のウィンドウは通常は長方形であって、そのウ
ィンドウに表示される特定のプログラムに対するグラフ
ィック情報を含む。いずれの場合にも、ウィンドウに表
示される情報は、利用できる全体的なグラフィック呈示
ようしばしば少い。したがって、特定の出力表示装置に
適合するようにグラフィック映像をクリップする必要が
ある。
理できる。これは、中央処理装置の機能をほぼ時分割し
ている、コンピュータで実行される各種のプログラムに
よシ通常行われる。複数のプログラムが中央処理装置に
よシ同時に実行されると、各プログラムのためのグラフ
ィック出力表示をコンピュータ出力表示装置の別々のウ
ィンドウに一緒に表示できる。二次元コンピュータ出力
表示装置のウィンドウは通常は長方形であって、そのウ
ィンドウに表示される特定のプログラムに対するグラフ
ィック情報を含む。いずれの場合にも、ウィンドウに表
示される情報は、利用できる全体的なグラフィック呈示
ようしばしば少い。したがって、特定の出力表示装置に
適合するようにグラフィック映像をクリップする必要が
ある。
グラフィック形象は多角形の形で出力表示にしばしば記
述される。通常は、ウィンドウに適合するように多角形
をクリップする方法は、表示すべき多角形の頂点を結ぶ
線を、ウィンドウの境界を描く線と比較して、多角形の
どの部分がウィンドウの境界内に含まれるかを判定する
。多角形の頂点を結ぶ線をコンピュータの境界と比較す
るためにいくつかのアルゴリズムが提供されている。そ
れらのアルゴリズムのうち最も使用されているもの、す
なわち、サザーランド=ホツジマン( 8utherl
an − HOdgman )アルゴリズムが雑誌、
コミエ二ケーションズ●オブ●ザ●アソシエーション●
7オー●コンピューティング●マシナリイ(C@mmu
nicat1ons of the Assoc
iatlon for Computlng Mac
hinery)、17巻、1号、1974牟1月号所載
のサザーランド( 8utherlan )とホツジマ
ン(Hodgman)の「リエントラント・ポリゴン●
クリツビング( Re−entrmnt PolFgo
n cttpptng) Jと題する論文に記載されて
いる。サザーランド=ホツジマン・アルゴリズムは、「
入力」多角形の各辺を特定のウィンドウ境界に対してク
リップすることによシ、各ウィンドウ境界に対して新し
い多角形を形成する。これによって「出力」多角形が発
生される。次にその「出力」多角形は次のウィンドウ境
界に対する「入力」多角形となって、新しい「出力」多
角形を生ずる。全てのウィンドウ境界が走査されて、最
後の「出力」多角形がウィンドウに適合するまでこの動
作が繰返見される。
述される。通常は、ウィンドウに適合するように多角形
をクリップする方法は、表示すべき多角形の頂点を結ぶ
線を、ウィンドウの境界を描く線と比較して、多角形の
どの部分がウィンドウの境界内に含まれるかを判定する
。多角形の頂点を結ぶ線をコンピュータの境界と比較す
るためにいくつかのアルゴリズムが提供されている。そ
れらのアルゴリズムのうち最も使用されているもの、す
なわち、サザーランド=ホツジマン( 8utherl
an − HOdgman )アルゴリズムが雑誌、
コミエ二ケーションズ●オブ●ザ●アソシエーション●
7オー●コンピューティング●マシナリイ(C@mmu
nicat1ons of the Assoc
iatlon for Computlng Mac
hinery)、17巻、1号、1974牟1月号所載
のサザーランド( 8utherlan )とホツジマ
ン(Hodgman)の「リエントラント・ポリゴン●
クリツビング( Re−entrmnt PolFgo
n cttpptng) Jと題する論文に記載されて
いる。サザーランド=ホツジマン・アルゴリズムは、「
入力」多角形の各辺を特定のウィンドウ境界に対してク
リップすることによシ、各ウィンドウ境界に対して新し
い多角形を形成する。これによって「出力」多角形が発
生される。次にその「出力」多角形は次のウィンドウ境
界に対する「入力」多角形となって、新しい「出力」多
角形を生ずる。全てのウィンドウ境界が走査されて、最
後の「出力」多角形がウィンドウに適合するまでこの動
作が繰返見される。
サザーランド=ホツジマンの実現には大容量のメモリを
必要とし、かつそれの目的を這成するためには中央処理
装置の十分に長い処理時間を要する。
必要とし、かつそれの目的を這成するためには中央処理
装置の十分に長い処理時間を要する。
サザーツンド=ホツジマン●アルゴリズムは非常に長い
時間と大容量のメモリを必要とするから、別のアルゴリ
ズムが提案されている。1977午に出版されたグロシ
ーデイングス●オプ●シッグラフ( Pr@ceedi
ngs of 81gfraPh )の214〜222
ページ所載の「ヒツドン●t−7エイス.リムーバル.
エージング.ポリゴン●エリア.ソーティング( }I
idden 8urfac@Removaluslng
Polygon Area 8ortln!r)
) と題する論文において、ウエイラー(Welle
r)とアサ−トン(Ath@rton )は、多角形の
隠されている表面と隠されている線を除去するためのア
ルゴリズムを提案している。このアルゴリズムは映像ヲ
、ウィンドウ内の深さオーダーが見出されるまで、多形
状のウィンドウに繰返見し分割される。このアルゴリズ
ムはとくに正確であるが、非常に複雑であるからコンピ
ュータによる処理時間が非常に長く、かつメモリの動作
時間が非常に長い。更に、このアルゴリズムは長方形の
ウィンドウに対しては最適にされず、したがって動作が
比較的遅い.リアン(x,tang)とパースキー(B
arsk7 )ハ、コ電エニケーションズ●オブ◆ザ◆
エーシーエム( Communlcmtlons of
the ACM)、1983年11月号、2648
68〜877ページ所載の「アン・アナリシス●アンド
●アルゴリズム●7オー●ポリゴン●クリツビング(▲
n Analysls and Algoritbm
for PolygonCllppimg)Jと題する
論文において、サザーランド*ホツジマン・アルゴリズ
ムの動作速度を約2倍にするアルゴリズムを提案してい
る。サザーランド=ホツジマン・アルゴリズムとは異b
, リアン=バースキー・アルゴリズムは二次元の長
方形ウィンドウに限定される。リアン=バース中一●ア
ルゴリズムは、無限に延長している多角形の辺である線
と、無限に拡っている全てのクリップ平面との交差を計
算する。それから、多角形の通から離れて存在するが、
クリップされる多角形の中に含着れる必l!がある点(
転換点iたは転換頂点として知られている)を決定する
ために、そのアルゴリズムはそれらの交差を用いる。そ
れらの点はクリップされたウィンドウの4つの隅であっ
て、クリップされた多角形内では呈示すべき多角形の部
分にしばしばなる。リマン=パースキー●アルゴリズム
は、サザーランドヨホツジマン●アルゴリズムよう速い
が、かなシな数の浮動小数点計算を行う必要があるが、
特定のコンビエータ装置が浮動小数点コブロセツサを含
んでいなければ、その計算は困難で、非常κ時間を要す
る。マイクロプロセッサをベースとする多くのコンビエ
ータ装置はそのようなコプロセツサを含まず、それらの
装置による計算は極めて複雑で、時間がかかる。
時間と大容量のメモリを必要とするから、別のアルゴリ
ズムが提案されている。1977午に出版されたグロシ
ーデイングス●オプ●シッグラフ( Pr@ceedi
ngs of 81gfraPh )の214〜222
ページ所載の「ヒツドン●t−7エイス.リムーバル.
エージング.ポリゴン●エリア.ソーティング( }I
idden 8urfac@Removaluslng
Polygon Area 8ortln!r)
) と題する論文において、ウエイラー(Welle
r)とアサ−トン(Ath@rton )は、多角形の
隠されている表面と隠されている線を除去するためのア
ルゴリズムを提案している。このアルゴリズムは映像ヲ
、ウィンドウ内の深さオーダーが見出されるまで、多形
状のウィンドウに繰返見し分割される。このアルゴリズ
ムはとくに正確であるが、非常に複雑であるからコンピ
ュータによる処理時間が非常に長く、かつメモリの動作
時間が非常に長い。更に、このアルゴリズムは長方形の
ウィンドウに対しては最適にされず、したがって動作が
比較的遅い.リアン(x,tang)とパースキー(B
arsk7 )ハ、コ電エニケーションズ●オブ◆ザ◆
エーシーエム( Communlcmtlons of
the ACM)、1983年11月号、2648
68〜877ページ所載の「アン・アナリシス●アンド
●アルゴリズム●7オー●ポリゴン●クリツビング(▲
n Analysls and Algoritbm
for PolygonCllppimg)Jと題する
論文において、サザーランド*ホツジマン・アルゴリズ
ムの動作速度を約2倍にするアルゴリズムを提案してい
る。サザーランド=ホツジマン・アルゴリズムとは異b
, リアン=バースキー・アルゴリズムは二次元の長
方形ウィンドウに限定される。リアン=バース中一●ア
ルゴリズムは、無限に延長している多角形の辺である線
と、無限に拡っている全てのクリップ平面との交差を計
算する。それから、多角形の通から離れて存在するが、
クリップされる多角形の中に含着れる必l!がある点(
転換点iたは転換頂点として知られている)を決定する
ために、そのアルゴリズムはそれらの交差を用いる。そ
れらの点はクリップされたウィンドウの4つの隅であっ
て、クリップされた多角形内では呈示すべき多角形の部
分にしばしばなる。リマン=パースキー●アルゴリズム
は、サザーランドヨホツジマン●アルゴリズムよう速い
が、かなシな数の浮動小数点計算を行う必要があるが、
特定のコンビエータ装置が浮動小数点コブロセツサを含
んでいなければ、その計算は困難で、非常κ時間を要す
る。マイクロプロセッサをベースとする多くのコンビエ
ータ装置はそのようなコプロセツサを含まず、それらの
装置による計算は極めて複雑で、時間がかかる。
最後に、サザーランド=コーヘン(Cohen)が、特
定の線分がクリツピングウィンドウの内部に完全に含ま
れ、かつ完全に引かなければならないようなケースと、
特定の線分を引くべきでない特定の領域内のクリツビン
グ・ウィンドウの完全に外側にその線分が存在するよう
なケースとを迅速に決定するととべよってのみ線をクリ
ップする方法を提案している。これについては、ニュー
マン(N@w man ) >よびスプルール(8Pr
oall)着、「プリンシプルス●オプ●インターアク
ティブ●コンビエータ●グラフィックス( Prlnc
1pl@厘of Interactive Compu
ter Grmph1cm)J第2版、マグローヒル(
McGrav − Hi 1 1 )発行、65〜6
9ページを参照されたい。それらは単純な合格ケースか
よび単純な不合格ケースと呼ばれ、交差計算の全体の実
現を要しない。サザーツンド=コーへ冫・アルゴリズム
はそれらの単純な合格ケースシよび単純な不合格ケース
を決定する迅速な方法を提供するものであって、クリツ
ビング・アルゴリズムの実現速度を大幅に向上させるも
のである。しかし、サザーランド●コーへ冫・7/I/
ゴリズムには多角形をクリップする方法はなく、したが
って、多角形の辺から離れて存在するが、クリップされ
る多角形内に含まれるべき点(転換点)を決定するため
に付加交差は発生しない。
定の線分がクリツピングウィンドウの内部に完全に含ま
れ、かつ完全に引かなければならないようなケースと、
特定の線分を引くべきでない特定の領域内のクリツビン
グ・ウィンドウの完全に外側にその線分が存在するよう
なケースとを迅速に決定するととべよってのみ線をクリ
ップする方法を提案している。これについては、ニュー
マン(N@w man ) >よびスプルール(8Pr
oall)着、「プリンシプルス●オプ●インターアク
ティブ●コンビエータ●グラフィックス( Prlnc
1pl@厘of Interactive Compu
ter Grmph1cm)J第2版、マグローヒル(
McGrav − Hi 1 1 )発行、65〜6
9ページを参照されたい。それらは単純な合格ケースか
よび単純な不合格ケースと呼ばれ、交差計算の全体の実
現を要しない。サザーツンド=コーへ冫・アルゴリズム
はそれらの単純な合格ケースシよび単純な不合格ケース
を決定する迅速な方法を提供するものであって、クリツ
ビング・アルゴリズムの実現速度を大幅に向上させるも
のである。しかし、サザーランド●コーへ冫・7/I/
ゴリズムには多角形をクリップする方法はなく、したが
って、多角形の辺から離れて存在するが、クリップされ
る多角形内に含まれるべき点(転換点)を決定するため
に付加交差は発生しない。
したがって、本発明の目的はコンピュータの出力表示装
置によるグラフィック物体の表示を加速することである
。
置によるグラフィック物体の表示を加速することである
。
本発明の別の目的は、多角形の頂点を決定し、コンビエ
ータの出力表示装置にかけるウィンドウに適合させるよ
うにクリップする速度を向上させることである. 〔課題を解決するための手段〕 本発明のそれらの目的シよびその他の目的は、単純な合
格ケースと単純な不合格ケースを決定するためにサザー
ランドツコーヘン●アルゴリズムを多角形に筐ず適用し
、それから、多角形の辺上には存在しないが、クリツピ
ングウィンドウの隅である、多角形に含ませられ、ある
付加点の存在を、多角形の辺が存在する領域から決定す
るために、サザーランドーコーへ冫・アルゴリズムによ
る単純な合格テス}Thよび不合格テストにかいて決定
された情報が利用される。これは、終点の頂点と、特定
のウィンドウに対して発生された種々のルックアップテ
ーブルとを用いるプール演算を用いることによシ、ほと
んどの場合に可視ウィンドウの外部のウィンドウ境界と
の交差を計算する必要なしに非常に簡単に行われる。
ータの出力表示装置にかけるウィンドウに適合させるよ
うにクリップする速度を向上させることである. 〔課題を解決するための手段〕 本発明のそれらの目的シよびその他の目的は、単純な合
格ケースと単純な不合格ケースを決定するためにサザー
ランドツコーヘン●アルゴリズムを多角形に筐ず適用し
、それから、多角形の辺上には存在しないが、クリツピ
ングウィンドウの隅である、多角形に含ませられ、ある
付加点の存在を、多角形の辺が存在する領域から決定す
るために、サザーランドーコーへ冫・アルゴリズムによ
る単純な合格テス}Thよび不合格テストにかいて決定
された情報が利用される。これは、終点の頂点と、特定
のウィンドウに対して発生された種々のルックアップテ
ーブルとを用いるプール演算を用いることによシ、ほと
んどの場合に可視ウィンドウの外部のウィンドウ境界と
の交差を計算する必要なしに非常に簡単に行われる。
表記シよび用語
以下に行う詳細な説明のいくつかの部分は、コンピュー
タメモリ内のデータピットについてのオベレーションの
アルゴリズムと記号表記に関して行っている。それらの
アルゴリズム記述と表現は、データ処理技術にかける専
門家が自己の業績をその分野にかける他の専門家へ最も
効果的に伝えるために用いる手段である。
タメモリ内のデータピットについてのオベレーションの
アルゴリズムと記号表記に関して行っている。それらの
アルゴリズム記述と表現は、データ処理技術にかける専
門家が自己の業績をその分野にかける他の専門家へ最も
効果的に伝えるために用いる手段である。
アルゴリズムというのは、ここでは、かよび一般的に、
希望の結果へ導く、自己矛盾しない一連の過程であると
解される。それらの過程は物理量の物理的取扱いを要す
るものである。通常は、それらの量は、格納、転送、組
合わせ、比較およびその他の処理を行うことができる電
気信号1たは磁気信号の形をとるが、必ずしもそうする
必要はない。主として一般的に使用するという理由から
、それらの信号をビット、値、素子、記号、文字、項、
数等と呼ぶ方が時には便利であることが判明している。
希望の結果へ導く、自己矛盾しない一連の過程であると
解される。それらの過程は物理量の物理的取扱いを要す
るものである。通常は、それらの量は、格納、転送、組
合わせ、比較およびその他の処理を行うことができる電
気信号1たは磁気信号の形をとるが、必ずしもそうする
必要はない。主として一般的に使用するという理由から
、それらの信号をビット、値、素子、記号、文字、項、
数等と呼ぶ方が時には便利であることが判明している。
しかし、それらの用[1&よび類似の用語の全て適切な
物理量に関連づけるべきであう、かつそれらの用語はそ
れらの量につけられる便利なレッテルであるにすぎない
ことも憶えておくべきである。
物理量に関連づけるべきであう、かつそれらの用語はそ
れらの量につけられる便利なレッテルであるにすぎない
ことも憶えておくべきである。
更に、行われる処理は、加算または比較のような用語で
しばしば呼ばれる。それらの処理は人により行われる精
神活動に関連するものである。本発明の部分を形成する
ここで説明する処理のいずれにもおけるほとんどの場合
に、人のそのような能力は必要でないことが望會しい。
しばしば呼ばれる。それらの処理は人により行われる精
神活動に関連するものである。本発明の部分を形成する
ここで説明する処理のいずれにもおけるほとんどの場合
に、人のそのような能力は必要でないことが望會しい。
操作は機械による操作である。本発明の操作を行うため
に有用な装置には汎用デジタルコンピュータおよヒ他の
類似の装置が含まれる。あらゆる場合に、コンピュータ
を動作させる方法と、処理方法自体の違いを記憶してか
くべきである。本発明は、電気信号その他の(たとえば
、機械的、化学的ノ物理的信号を処理して、他の希望の
物理信号を発生させるために、コンピュータを使用する
方法に関するものである。
に有用な装置には汎用デジタルコンピュータおよヒ他の
類似の装置が含まれる。あらゆる場合に、コンピュータ
を動作させる方法と、処理方法自体の違いを記憶してか
くべきである。本発明は、電気信号その他の(たとえば
、機械的、化学的ノ物理的信号を処理して、他の希望の
物理信号を発生させるために、コンピュータを使用する
方法に関するものである。
本発明はそれらの操作を行う装置にも関するものである
。この装置は求められている目的のためにとくに製作で
き、あるいは、コンピュータに格納サれているコンピュ
ータプログラムによう選択的に起動tたは再構成される
汎用コンピュータを含むことができる。ここで示すアル
ゴリズムは特定のコンピュータその他の装置に本質的に
関連するものではない。とくに、この明細書の記載に従
って書かれたプログラムに各種の汎用機を使用でき、あ
るいは求められている方法を実施するために一層専用化
された装置を製作することが更に便利であることが判明
している。
。この装置は求められている目的のためにとくに製作で
き、あるいは、コンピュータに格納サれているコンピュ
ータプログラムによう選択的に起動tたは再構成される
汎用コンピュータを含むことができる。ここで示すアル
ゴリズムは特定のコンピュータその他の装置に本質的に
関連するものではない。とくに、この明細書の記載に従
って書かれたプログラムに各種の汎用機を使用でき、あ
るいは求められている方法を実施するために一層専用化
された装置を製作することが更に便利であることが判明
している。
まず、本発明の方法の実現を示す線図が示されている第
1図を参照する。この図は、出力表示装置にサザーラン
ド=コーヘン●アルゴリズムで与えられる様式で呈示す
べき可視ウィンドウを囲む領域の命名を示す。二次元ク
リップウィンドウを示す4本の線が第1図に示されてい
る。2本の平行な自直線がxtnin , Xmaxで
示され、2本の平行な水平線がYmin , Ymmx
で示されている。それら4本の線で囲まれた中央部分に
ある領域は、コンピュータの出力表示装置に表示すべき
ウィンドウの領域である。他の領域はコンピュータ表示
装置の上、下、左および右にある領域である。
1図を参照する。この図は、出力表示装置にサザーラン
ド=コーヘン●アルゴリズムで与えられる様式で呈示す
べき可視ウィンドウを囲む領域の命名を示す。二次元ク
リップウィンドウを示す4本の線が第1図に示されてい
る。2本の平行な自直線がxtnin , Xmaxで
示され、2本の平行な水平線がYmin , Ymmx
で示されている。それら4本の線で囲まれた中央部分に
ある領域は、コンピュータの出力表示装置に表示すべき
ウィンドウの領域である。他の領域はコンピュータ表示
装置の上、下、左および右にある領域である。
サザー2冫ド=コーヘン●アルゴリズムは4つの2進ビ
ットを用いてそれらの各領域をコード化する。最も左側
のビット1はクリップウィンドウの下の点を示し、左か
ら2番目のビット1はウィンドウの左側にある点を示し
、左から3番目のビット1はウィンドウの上の点を示し
、最も右のビット1はウィンドウの右の点を示す。した
がって、ウィンドウ自体はooooとして示され、他の
領域は第1図に示すように示されている。したがって、
たとえば、ウィンドウの左上の領域が0110で示され
ている。
ットを用いてそれらの各領域をコード化する。最も左側
のビット1はクリップウィンドウの下の点を示し、左か
ら2番目のビット1はウィンドウの左側にある点を示し
、左から3番目のビット1はウィンドウの上の点を示し
、最も右のビット1はウィンドウの右の点を示す。した
がって、ウィンドウ自体はooooとして示され、他の
領域は第1図に示すように示されている。したがって、
たとえば、ウィンドウの左上の領域が0110で示され
ている。
サザーランド←コーヘン●クリップアルゴリズムは、両
方の頂点がそれらの領域のうちの特定の1つにあるかど
うかを検査することによシ、単純に合格tたは不合格に
できる線を効果的に識別するために構成される。たとえ
ば、第3図にはサザ−?ント=コーヘン●アルゴリズム
のオペレーシツンを説明する際に考えることができる何
本かの線が示されている。ウィンドウ領域の中に完全に
含筐れている線10の各端点はoooo領域内にある.
?ザーランド2コーヘン●アルゴリズムにかいて、線分
の2個の各端点が存在する領域を比較する検査が、それ
が、どのような検査決定または他のどのような検査も行
うことなしに、合格にすぺき線の単純なケースであるこ
とを決定する。
方の頂点がそれらの領域のうちの特定の1つにあるかど
うかを検査することによシ、単純に合格tたは不合格に
できる線を効果的に識別するために構成される。たとえ
ば、第3図にはサザ−?ント=コーヘン●アルゴリズム
のオペレーシツンを説明する際に考えることができる何
本かの線が示されている。ウィンドウ領域の中に完全に
含筐れている線10の各端点はoooo領域内にある.
?ザーランド2コーヘン●アルゴリズムにかいて、線分
の2個の各端点が存在する領域を比較する検査が、それ
が、どのような検査決定または他のどのような検査も行
うことなしに、合格にすぺき線の単純なケースであるこ
とを決定する。
同様にして、線1202つの靖点はウィンドウのすぐ上
の領域0010 内にあb、アルゴリズムによD交差点
を計算することを必要としないものとして、頂点が含1
れる領域を比較した後で単純にそれを除去できる。同様
にして、線14の両方の端点がウィンドウの右上の領域
0011の中にあるものとして、線14を単純に除去で
きる。
の領域0010 内にあb、アルゴリズムによD交差点
を計算することを必要としないものとして、頂点が含1
れる領域を比較した後で単純にそれを除去できる。同様
にして、線14の両方の端点がウィンドウの右上の領域
0011の中にあるものとして、線14を単純に除去で
きる。
しかし、クリップされた多角形を完全に形成するために
、第3図に示す他の線を単純に合格または不合格にしな
いようにでき、かつ種々の交差点の決定にサザーツンド
=コーへ冫●アルゴリズムの使用を要する。サザーラン
ド=コーヘン・アルゴリズムを用いてこれをどのように
して行うかを以下に説明する。線16のような線が、決
定されるウィンドウ境界を定める1本の延長線と第lの
交差を行う。たとえば線Ymaxと1s1Bの代数的な
定義を用いて、第3図の交点18を計算できる。
、第3図に示す他の線を単純に合格または不合格にしな
いようにでき、かつ種々の交差点の決定にサザーツンド
=コーへ冫●アルゴリズムの使用を要する。サザーラン
ド=コーヘン・アルゴリズムを用いてこれをどのように
して行うかを以下に説明する。線16のような線が、決
定されるウィンドウ境界を定める1本の延長線と第lの
交差を行う。たとえば線Ymaxと1s1Bの代数的な
定義を用いて、第3図の交点18を計算できる。
それから線16の1つの部分がすてられる.サザー2冫
ト=コーへ冫−アルゴリズムハ、ウィンドウの上、下、
右または左にある線の一部を、このアルゴリズムの適用
を通じてたどる特定の順序で選択することによ少、捨て
るべき部分をすてる。
ト=コーへ冫−アルゴリズムハ、ウィンドウの上、下、
右または左にある線の一部を、このアルゴリズムの適用
を通じてたどる特定の順序で選択することによ少、捨て
るべき部分をすてる。
線16の場合には、ウィンドウの上にある部分が捨てら
れる。線18の残bの部分を調べて、その部分を単純に
合格にするか、単純に不合格にするかを決定する。いず
れも採用しないとすると、線16と次のウィンドウ境界
Xminの新しい交差を点20において決定する。交差
点20が決定されたとすると、ウィンドウの左側の線部
分がすてられる。この線の、点18と20の間にある部
分を調べて、その部分の合否を単純に決定する。この線
の両方の端点が領域0000内の可視ウィンドウの境界
内にあるから、その部分は単純に合格にできることが明
らかである。これでその特定の線16をクリップするた
めの計算が終る。
れる。線18の残bの部分を調べて、その部分を単純に
合格にするか、単純に不合格にするかを決定する。いず
れも採用しないとすると、線16と次のウィンドウ境界
Xminの新しい交差を点20において決定する。交差
点20が決定されたとすると、ウィンドウの左側の線部
分がすてられる。この線の、点18と20の間にある部
分を調べて、その部分の合否を単純に決定する。この線
の両方の端点が領域0000内の可視ウィンドウの境界
内にあるから、その部分は単純に合格にできることが明
らかである。これでその特定の線16をクリップするた
めの計算が終る。
線22のような他の線に適用されると、このアルゴリズ
ムによシ行われる決定は一層複雑になる。
ムによシ行われる決定は一層複雑になる。
たとえば、@22は、ウィンドウの中K完全に含まれる
多角形を完成できる。その場合には(たとえば、第3図
に破線で示されている、線22と10の端点を結ぶ多角
形の場合には)、それらの線とクリップウィンドウの縁
部の交点24と26を上記のように単純なやb方で決定
できる。しかし、クリップウィンドウ内に、クリップウ
ィンドウの左上隅へ延長する多角形の部分を含ませるこ
とによb5!威されるだけである。この点28は、多角
形を形成する線のどれにもなく、ウィンドウの境界に対
するI!22の位置から決定せねばならない.サザーラ
ンド=コーへ冫●アルゴリズムは線をクリップする線で
あるから、そのアルゴリズムを用いてこの点を見つける
方法はない。サザーランド=コーへ冫●アルゴリズムは
、拡張されているクリップウィンドウを定める@Yma
xおよびXminと線22の種々の交差の計算を続け、
線全体を除去するとの結論に達する。
多角形を完成できる。その場合には(たとえば、第3図
に破線で示されている、線22と10の端点を結ぶ多角
形の場合には)、それらの線とクリップウィンドウの縁
部の交点24と26を上記のように単純なやb方で決定
できる。しかし、クリップウィンドウ内に、クリップウ
ィンドウの左上隅へ延長する多角形の部分を含ませるこ
とによb5!威されるだけである。この点28は、多角
形を形成する線のどれにもなく、ウィンドウの境界に対
するI!22の位置から決定せねばならない.サザーラ
ンド=コーへ冫●アルゴリズムは線をクリップする線で
あるから、そのアルゴリズムを用いてこの点を見つける
方法はない。サザーランド=コーへ冫●アルゴリズムは
、拡張されているクリップウィンドウを定める@Yma
xおよびXminと線22の種々の交差の計算を続け、
線全体を除去するとの結論に達する。
リアン(Limng)=バースキー(B轟rmky)ア
ルゴリズムは、全ての交差を決定し、それらの交差の決
定からクリップ点の値を割自てるやシ方を用いることに
よb1この問題をある程度解決する。リアン=バースキ
ー●アルゴリズムは基本的なサザーランド=ホツジマン
・アルゴリズムよb2倍速いが、全てのクリップウィン
ドウ境界に対して交差を計算した後で、転換点の割当て
を行うことができる。そして、浮動小数点計算による交
差を計算を行うことを必要とする。マイクロプロセッサ
をベースとする多くのコンピエータ装置においては、そ
の計算は極めて遅いからグラフィック出力表示装置での
映像表示を損う。
ルゴリズムは、全ての交差を決定し、それらの交差の決
定からクリップ点の値を割自てるやシ方を用いることに
よb1この問題をある程度解決する。リアン=バースキ
ー●アルゴリズムは基本的なサザーランド=ホツジマン
・アルゴリズムよb2倍速いが、全てのクリップウィン
ドウ境界に対して交差を計算した後で、転換点の割当て
を行うことができる。そして、浮動小数点計算による交
差を計算を行うことを必要とする。マイクロプロセッサ
をベースとする多くのコンピエータ装置においては、そ
の計算は極めて遅いからグラフィック出力表示装置での
映像表示を損う。
本発明は、無限に延びているウィンドウ境界との交差を
、ほとんどの場合に計算する必要なしに、多角形の辺t
−離れている点の決定を大幅に改良するものである。本
発明は次のように動作する。まず初めに、サザーランド
=コーへ冫・アルゴリズムによb割蟲てられている各領
域コードが、可視ウィンドウの対角線上の隅にある2つ
の1ビットと、可携ウィンドウの右、左、上tたは下に
ある1つの1ビットを含むことをg識する.可視多角形
の転換点を決定するためにこの方法はこの認識を用いる
。
、ほとんどの場合に計算する必要なしに、多角形の辺t
−離れている点の決定を大幅に改良するものである。本
発明は次のように動作する。まず初めに、サザーランド
=コーへ冫・アルゴリズムによb割蟲てられている各領
域コードが、可視ウィンドウの対角線上の隅にある2つ
の1ビットと、可携ウィンドウの右、左、上tたは下に
ある1つの1ビットを含むことをg識する.可視多角形
の転換点を決定するためにこの方法はこの認識を用いる
。
クリップすべき多角形の辺を形成する最初の線分に対し
て、単純な合格条件iたは単純な不合格条件が存在する
かを判定するために、サザーランドーコーへ冫・アルゴ
リズムが最初に適用される。
て、単純な合格条件iたは単純な不合格条件が存在する
かを判定するために、サザーランドーコーへ冫・アルゴ
リズムが最初に適用される。
その条件が存在しないとすると、サザー2ンド=コーへ
冫●アルゴリズムは可視ウィンドウの餘部と辺の交差を
判定する。それらが起らないとするト、サザー27ドー
コーヘン●アルゴリズムによ)供給される、頂点が存在
する領域についての情報が、その線分の始点と終点を基
にして種類に分類される。各逮は始点から次の終点まで
と考えられる。その終点から次の辺が考えられる。線の
端点が、4ビットコード指示が2個の1ビットを含んで
いる領域(すなわち、ウィンドウの隅の区域)に存在す
るものとすると、その領域に接触する可視ウィンドウの
ウィンドウの隅力瓢クリップすべき多角形中の付加点、
すなわち転換点、として可視多角形Kll当てられる。
冫●アルゴリズムは可視ウィンドウの餘部と辺の交差を
判定する。それらが起らないとするト、サザー27ドー
コーヘン●アルゴリズムによ)供給される、頂点が存在
する領域についての情報が、その線分の始点と終点を基
にして種類に分類される。各逮は始点から次の終点まで
と考えられる。その終点から次の辺が考えられる。線の
端点が、4ビットコード指示が2個の1ビットを含んで
いる領域(すなわち、ウィンドウの隅の区域)に存在す
るものとすると、その領域に接触する可視ウィンドウの
ウィンドウの隅力瓢クリップすべき多角形中の付加点、
すなわち転換点、として可視多角形Kll当てられる。
第1図からわかるように、これは、多角形の辺の靖点が
、可視ウィンドウの対角線上の隅における区域0110
、0011,1001,iたは1100内にあるものと
すると、この最初(いわゆる一般的な規則)が適用畜れ
ることを意味する。そして、それらの各領域に最も近い
ウィンドウの隅がクリップされる多角形に対する付加点
として割当てられる。
、可視ウィンドウの対角線上の隅における区域0110
、0011,1001,iたは1100内にあるものと
すると、この最初(いわゆる一般的な規則)が適用畜れ
ることを意味する。そして、それらの各領域に最も近い
ウィンドウの隅がクリップされる多角形に対する付加点
として割当てられる。
この一般的な規則は、ウィンドウの真上、真下、左およ
び右の領域の中に端点が存在する場合はカバーし々い。
び右の領域の中に端点が存在する場合はカバーし々い。
その一般的な規則は、斜めの領域K終る線に対する全て
の転換点もカバーしない。この瑠由から、始点と終点が
含まれる領域に依存して線分が分類される。ウィンドウ
の上、下、左シよび右の領域であって、その領域に対す
るコードが1側の1ビットを有するような領域に始点と
終点が含噴れるものとすると、辺は1−1ピット線と命
名されて、1つのやう万で処理される。他方、始点と終
点がコード化された領域に含まれ、それらの領域の1つ
が1つの1ビットを有し、残)が−Jの1ビット(いわ
ゆる1−2ビット線)を有するものとすると、その線は
異なるヤシ方で取扱われる。最後に、一対の1ビット(
いわゆる2一2ビット線)を含むコードを虜する領域に
始点と終点が含筐れる線が第3のやシ方で取扱われる。
の転換点もカバーしない。この瑠由から、始点と終点が
含まれる領域に依存して線分が分類される。ウィンドウ
の上、下、左シよび右の領域であって、その領域に対す
るコードが1側の1ビットを有するような領域に始点と
終点が含噴れるものとすると、辺は1−1ピット線と命
名されて、1つのやう万で処理される。他方、始点と終
点がコード化された領域に含まれ、それらの領域の1つ
が1つの1ビットを有し、残)が−Jの1ビット(いわ
ゆる1−2ビット線)を有するものとすると、その線は
異なるヤシ方で取扱われる。最後に、一対の1ビット(
いわゆる2一2ビット線)を含むコードを虜する領域に
始点と終点が含筐れる線が第3のやシ方で取扱われる。
1−1ビット線の場合には、両方の頂点が同じ領域内に
あるものとすると、転換点を割当てる必要はない。これ
に対して線はサザーランドーコーヘン●アルゴリズムの
最初のステップにかいて単純な不合格な場合として既に
単純に除去されることにiる.しかし、1−1ビット通
の両方の頂点が種々の領域内にあるものとすると、2つ
のコードが論珊オア操作で組合わされる。そのオア操作
の結果は一般的な規則の適用において用いられる。
あるものとすると、転換点を割当てる必要はない。これ
に対して線はサザーランドーコーヘン●アルゴリズムの
最初のステップにかいて単純な不合格な場合として既に
単純に除去されることにiる.しかし、1−1ビット通
の両方の頂点が種々の領域内にあるものとすると、2つ
のコードが論珊オア操作で組合わされる。そのオア操作
の結果は一般的な規則の適用において用いられる。
たとえば、第3図に示す113GのようなIIが区域0
100 で始って区域0010 に終るものとすると、
論理オア操作によって2進数0110が与えられる。そ
の2進数は左上の領域に対するコードと同じ数である。
100 で始って区域0010 に終るものとすると、
論理オア操作によって2進数0110が与えられる。そ
の2進数は左上の領域に対するコードと同じ数である。
この数は、一般的な規則を用いて、クリップされるウィ
ンドウ内に記述すべき多角形内に含ませるべき転換点と
して、可視ウィンドウの左上隅を割当てることを求める
。
ンドウ内に記述すべき多角形内に含ませるべき転換点と
して、可視ウィンドウの左上隅を割当てることを求める
。
1−2ビット指定内に入る頂点を有する線の場合には、
4つの可能性が起る。第1に、線の端点が1ビット領域
内にあシ、領域の2つのコードの論理アンド操作の結果
が零でないとすると、転換点は発生されない。たとえば
、0110区域から0010 区域へ進む線は転換点を
発生する必要はない。というのは、一般的な規則の下で
、左上隅の領域が01lO区域内の頂点κ終るMKよb
転換点として既に指定されているからである。ある点が
クリップされた多角形内にあるものと指定されると、ク
リップされるウィンドウ内に存在する多角形を完全に記
述するためにはそのように再び指定する必要はない。
4つの可能性が起る。第1に、線の端点が1ビット領域
内にあシ、領域の2つのコードの論理アンド操作の結果
が零でないとすると、転換点は発生されない。たとえば
、0110区域から0010 区域へ進む線は転換点を
発生する必要はない。というのは、一般的な規則の下で
、左上隅の領域が01lO区域内の頂点κ終るMKよb
転換点として既に指定されているからである。ある点が
クリップされた多角形内にあるものと指定されると、ク
リップされるウィンドウ内に存在する多角形を完全に記
述するためにはそのように再び指定する必要はない。
しかし、線の端点が1ビット領域内にあう、頂点の領域
を指定するコードのア/ド操作によって零結来が得られ
る場合、たとえば区域0110からooottで延長す
る線32(第4図)のような場合には、ウィンドウの右
上隅に対応する転換点40が発生される。本発明にかい
ては指定はルックアップテーブルによb行われる。
を指定するコードのア/ド操作によって零結来が得られ
る場合、たとえば区域0110からooottで延長す
る線32(第4図)のような場合には、ウィンドウの右
上隅に対応する転換点40が発生される。本発明にかい
ては指定はルックアップテーブルによb行われる。
線が2ビット領域に終シ、2つのコードのアンド操作に
よシ零となる結果が生じないものとすると、そのケース
は一般的な規則Kよう取扱われて、その線の端点に最も
近いウィンドウの隅を転換点として発生する。
よシ零となる結果が生じないものとすると、そのケース
は一般的な規則Kよう取扱われて、その線の端点に最も
近いウィンドウの隅を転換点として発生する。
他方、線が2ビット領域に終って、2つのコードのアン
ド操作によシ零となる結果が生ずる場合、たとえば、区
域0001で始って区域0110に終る線34(第5図
)の場合には、2つの転換点を発生せねばならない。す
なわち、1つの転換点42をウィンドウの左上隅で一般
的な規則によ)発生し、他の1つの点44をウィンドウ
の右上隅で発生する。このW!.2の転換点44は本発
明のこの実施例ではルックアップテーブルによっても取
扱われる。
ド操作によシ零となる結果が生ずる場合、たとえば、区
域0001で始って区域0110に終る線34(第5図
)の場合には、2つの転換点を発生せねばならない。す
なわち、1つの転換点42をウィンドウの左上隅で一般
的な規則によ)発生し、他の1つの点44をウィンドウ
の右上隅で発生する。このW!.2の転換点44は本発
明のこの実施例ではルックアップテーブルによっても取
扱われる。
2−2ビットケースとして示されている辺の場合には、
3つの状況が起る。まず、始点と終点が同じ領域にある
時は、サザーランド=コーヘン●アルゴリズムによシ単
純な合格tたは不合格のケースとして取扱われるから、
転換点は発生する必要はない。もし、単純なケースでは
危くて、線の端点に対する2つのコード領域のアンド操
作の結果が零でないとすると、通の端点に一般的な規則
が適用される。それらの週は、たとえば、区域0011
から区域1001へ、および区域1001から区域1l
00へ移動する線のことがある。
3つの状況が起る。まず、始点と終点が同じ領域にある
時は、サザーランド=コーヘン●アルゴリズムによシ単
純な合格tたは不合格のケースとして取扱われるから、
転換点は発生する必要はない。もし、単純なケースでは
危くて、線の端点に対する2つのコード領域のアンド操
作の結果が零でないとすると、通の端点に一般的な規則
が適用される。それらの週は、たとえば、区域0011
から区域1001へ、および区域1001から区域1l
00へ移動する線のことがある。
しかし、線の端点が存在する2つの領域に対するコード
のアンド操作によって零が生じたとすると(たとえば、
第6図において線36と38が区域0011 から反対
側の対角線の隅へ移動する)、その線は可視ウィンドウ
の1つの辺筐たは他の辺に含まれることがある。それで
あいまいな状況が生ずる。この状況においては、線(第
6図の36tたは38)が、いわゆる中間点(第6図で
、たとえば1138上の点39)を決定することによシ
、2本OIIに分割される。本発明のこの実施例は、そ
の点が2個の原点のうちの1つと同じ領域にあるかどう
かを決定する。もしそうだとすると、対応する原点が中
間点で置換され、新しい中間点が評価される。端点が含
まれる領域とは異なる領域に中間点が含まれるまでその
操作は繰返見される。
のアンド操作によって零が生じたとすると(たとえば、
第6図において線36と38が区域0011 から反対
側の対角線の隅へ移動する)、その線は可視ウィンドウ
の1つの辺筐たは他の辺に含まれることがある。それで
あいまいな状況が生ずる。この状況においては、線(第
6図の36tたは38)が、いわゆる中間点(第6図で
、たとえば1138上の点39)を決定することによシ
、2本OIIに分割される。本発明のこの実施例は、そ
の点が2個の原点のうちの1つと同じ領域にあるかどう
かを決定する。もしそうだとすると、対応する原点が中
間点で置換され、新しい中間点が評価される。端点が含
まれる領域とは異なる領域に中間点が含まれるまでその
操作は繰返見される。
中間点が端点が含まれている領域の1つにないものとす
ると、本発明のこの実施例は、1−1ビットの場合また
は1−2ビットの場合について先に述べた規則の1つを
適用することによb5適切な転換点を決定する。
ると、本発明のこの実施例は、1−1ビットの場合また
は1−2ビットの場合について先に述べた規則の1つを
適用することによb5適切な転換点を決定する。
本発明に従ってルックアップテーブルを構或することが
比較的聞単なやり方で容易に行えることが判明している
。たとえば、第4図の転換点40を決定するのに必要な
コード番号0110 を得るため、線分32が始る区域
0110のコードが、非プール代数計算κおいて、コー
ド0001 (これは端点を示す)によシ索引される
ルックアップテーブルの内容に単に加えられる。したが
って、初めの頂点にシけるコード0110 (6の2
進表現)にマイナス3が加えられるとすると、第4図の
領域との比較によう、ウィンドウの左上隅にシける転換
点が一般的な規則によシ示されることがわかるであろう
。したがって、2進で示されているマイナス3がルック
アップテーブルの索引位置0001 で得られ、それか
ら一般的な規則が適用される。同様にして、他の隅、i
たは1ビット領域tたは2ピット領域で種々に始b,ま
たは終る線のための転換点を実現するために、ルックア
ップテーブルは数プラス6tたはマイナス6、あるいは
プラス3を保持できる。
比較的聞単なやり方で容易に行えることが判明している
。たとえば、第4図の転換点40を決定するのに必要な
コード番号0110 を得るため、線分32が始る区域
0110のコードが、非プール代数計算κおいて、コー
ド0001 (これは端点を示す)によシ索引される
ルックアップテーブルの内容に単に加えられる。したが
って、初めの頂点にシけるコード0110 (6の2
進表現)にマイナス3が加えられるとすると、第4図の
領域との比較によう、ウィンドウの左上隅にシける転換
点が一般的な規則によシ示されることがわかるであろう
。したがって、2進で示されているマイナス3がルック
アップテーブルの索引位置0001 で得られ、それか
ら一般的な規則が適用される。同様にして、他の隅、i
たは1ビット領域tたは2ピット領域で種々に始b,ま
たは終る線のための転換点を実現するために、ルックア
ップテーブルは数プラス6tたはマイナス6、あるいは
プラス3を保持できる。
コード区域1100で始シ、同じ区域0001に同様に
して終る線分は、コード区域1001内の転換点に達す
るために、ルックアップテーブルからのマイナス3を用
いる。区域1100 tたは1001 で始って、
コード区域0010で終る線分が索引され、マイナス6
を加えて区域0110または0011内の転換点に達す
る。コード区域ooti tたは0110 で始って
コード区域1100で終る線分は検索され、プラス6を
加えて区域1100 tたは1001内の転換点に達す
る。また、コード区域0011 tたは1001で始
って、区域Ol10に終る線分が索引され、プラス3を
加えて区域0110 tたは1100内の転換点に達す
る。
して終る線分は、コード区域1001内の転換点に達す
るために、ルックアップテーブルからのマイナス3を用
いる。区域1100 tたは1001 で始って、
コード区域0010で終る線分が索引され、マイナス6
を加えて区域0110または0011内の転換点に達す
る。コード区域ooti tたは0110 で始って
コード区域1100で終る線分は検索され、プラス6を
加えて区域1100 tたは1001内の転換点に達す
る。また、コード区域0011 tたは1001で始
って、区域Ol10に終る線分が索引され、プラス3を
加えて区域0110 tたは1100内の転換点に達す
る。
本発IMのためのルックアップテーブルの構成において
は、頂点が2ピット領域に終る端点によシ発生された各
2ビットコード、1たはそのような領域を指定するコー
ドを提供するプールオア操作へ第1のルックアップテー
ブルが提供される。ルックアップテーブルはそれらの各
転換点(ウィンドウの隅)に対してX値とY値を発生す
る。それらの値はクリップされた多角形へ加えられてそ
の多角形を完全に構戒する。
は、頂点が2ピット領域に終る端点によシ発生された各
2ビットコード、1たはそのような領域を指定するコー
ドを提供するプールオア操作へ第1のルックアップテー
ブルが提供される。ルックアップテーブルはそれらの各
転換点(ウィンドウの隅)に対してX値とY値を発生す
る。それらの値はクリップされた多角形へ加えられてそ
の多角形を完全に構戒する。
本発明の実施において提供される第2のルックアップテ
ーブルは、頂点を終らせるためのコードがアドレスへオ
フセットとして供給され、ウィンドウの特定の隅に対す
る値に開始頂点を達せさせるための他のコードがそのル
ックアップテーブルによう供給される。この値は(番号
の符号に応じて)コードの1つから差し引かれ、tたは
その1つに加えられ、転換点を供給するために結果のア
ドレスの下に第1のルックアップテーブルが調べられる
。!た、クリップされた多角形に加える付加点を指示す
るために、この転換点がX@>よびY値として供給され
る。
ーブルは、頂点を終らせるためのコードがアドレスへオ
フセットとして供給され、ウィンドウの特定の隅に対す
る値に開始頂点を達せさせるための他のコードがそのル
ックアップテーブルによう供給される。この値は(番号
の符号に応じて)コードの1つから差し引かれ、tたは
その1つに加えられ、転換点を供給するために結果のア
ドレスの下に第1のルックアップテーブルが調べられる
。!た、クリップされた多角形に加える付加点を指示す
るために、この転換点がX@>よびY値として供給され
る。
本発明を実施するための一般的なアルゴリズムは次の通
シである。
シである。
Calculate the cod@of the
first point of the polygo
n.for all aubaequent poin
ts:Calculate th@code of t
he point,CIip the line ac
cording to the two codes,
lf th@line is outside th@
cliPPing region:T@st for
1−1, l−2 and 2−2 caaes.●n
dif Test for the gen@ral cmse
.Set @first point”=”curr@
nt point’endfor (以後の全ての点に対して、 多角形の第1の点のコードを計算する:点のコードを計
算する、 線がクリップ領域の外ならば、 2つのコードに従って線をクリップする=1−1、1−
2、2−2コードについてテストする。
first point of the polygo
n.for all aubaequent poin
ts:Calculate th@code of t
he point,CIip the line ac
cording to the two codes,
lf th@line is outside th@
cliPPing region:T@st for
1−1, l−2 and 2−2 caaes.●n
dif Test for the gen@ral cmse
.Set @first point”=”curr@
nt point’endfor (以後の全ての点に対して、 多角形の第1の点のコードを計算する:点のコードを計
算する、 線がクリップ領域の外ならば、 2つのコードに従って線をクリップする=1−1、1−
2、2−2コードについてテストする。
endlf
一般的なケースをテストする。
「第1の点」を「現在の点」にセットする。
endfor )
このアルゴリズムのCMHによる特定の実現を次節に示
す。この実現には、下記の2つの機能で構成されたナザ
ーランド=コーヘン・アルゴリズムが含まれていない。
す。この実現には、下記の2つの機能で構成されたナザ
ーランド=コーヘン・アルゴリズムが含まれていない。
CpJve−clipO performa a si
mple coding of the first
pointof the polygon. Thla
function r@turns SEGM if
the point imlnsld@ th@ c
l1pp1ng region,NOSKGM i
f the point lm outsid
&Cp−drsv−cl1p ) perforam
the clipping of a line co
ded in the一structures Cp;
ove and Cp−drsr vmich reg
pectiver representth@gbrt
and @nd point of one pol
ygon edgs Cp−drtw−cl1ppro
vid@s th@following inform
ation:− Th@returned statu
a N)S加M, SEGH fmGM l CLIP
, whichrepr@s@nts the vi
sibility characterigtlc o
f the @dge,− MLrsv* and L
drm. which are ths comput
ed codes of the startand
@ad point of th@edges res
pectively,− Cp−move and C
p−drsvcontaln the clipped
line coordinates atth@en
d of the algoritlp.typed@
f mtruct ( float x; floaty: l Upaint: typedef gtruct ( Upoint point: int cods: ) Ppolnt: /” xcoordtnate (couldbe t
nt) ”//” y coordinate (co
uld be Int)ン/’ User paint
γ /’ The paint’s coordinate
sン/” The cod@comPut@d for
this pointγ/” Internal r
epresentation ”/#d@ftna B
MXTEST 1Nefine NO8EG
M O /”The line is rejec
ted ”/Mefine SEGM 1
/●The line is visibl
e (even pirtlally) γ Nefin@CLIP 2 /@Thelineh
asbe*n”clipped”(left)ン#de
flne TmBIT8 0xlG)/” A fi
g to indicate a bpo bit
s code ン均噛tnt Ql−mov●: int [code: /” The dart point of
the line ”/Ppoint Cp−dr
一 1ni D−code: /” The end point of the l
ineγPpoint C−*xehmnge:/”
These are two 1ook−u
p tables ”//” used in f
inding the turning pointン
/” in the elm@ l−2.
They should be ”//” I!
Iodifl@d with th@region’s
codes. ンint Thc[L6,)−(
0,−3,−6.1,3,0,1,0,6,1,0,0
,1,0,0,01:lnt Vpt(16)=(−1
,−1,−1.2,−1,−1,3,−1,−1,1,
−1,−1.0,−1,−1,−1):/” Tcc
is us@d to compute a corr
ectン/” offset, while vpt
gives an index ”//’ In th
@viewport array+ for theン
/” turninlr coordinates ン
Upoint Viewport[:4,1:/” V
lswport coor出nates IL1r,u
r.ulン機能cp *paco一codeO は与え
られた点に関連するコードを戻す。戻されたコードは1
つの値にてき、または1つの値と、2ビットコードを示
す7クッグとの間の連合にできる。
mple coding of the first
pointof the polygon. Thla
function r@turns SEGM if
the point imlnsld@ th@ c
l1pp1ng region,NOSKGM i
f the point lm outsid
&Cp−drsv−cl1p ) perforam
the clipping of a line co
ded in the一structures Cp;
ove and Cp−drsr vmich reg
pectiver representth@gbrt
and @nd point of one pol
ygon edgs Cp−drtw−cl1ppro
vid@s th@following inform
ation:− Th@returned statu
a N)S加M, SEGH fmGM l CLIP
, whichrepr@s@nts the vi
sibility characterigtlc o
f the @dge,− MLrsv* and L
drm. which are ths comput
ed codes of the startand
@ad point of th@edges res
pectively,− Cp−move and C
p−drsvcontaln the clipped
line coordinates atth@en
d of the algoritlp.typed@
f mtruct ( float x; floaty: l Upaint: typedef gtruct ( Upoint point: int cods: ) Ppolnt: /” xcoordtnate (couldbe t
nt) ”//” y coordinate (co
uld be Int)ン/’ User paint
γ /’ The paint’s coordinate
sン/” The cod@comPut@d for
this pointγ/” Internal r
epresentation ”/#d@ftna B
MXTEST 1Nefine NO8EG
M O /”The line is rejec
ted ”/Mefine SEGM 1
/●The line is visibl
e (even pirtlally) γ Nefin@CLIP 2 /@Thelineh
asbe*n”clipped”(left)ン#de
flne TmBIT8 0xlG)/” A fi
g to indicate a bpo bit
s code ン均噛tnt Ql−mov●: int [code: /” The dart point of
the line ”/Ppoint Cp−dr
一 1ni D−code: /” The end point of the l
ineγPpoint C−*xehmnge:/”
These are two 1ook−u
p tables ”//” used in f
inding the turning pointン
/” in the elm@ l−2.
They should be ”//” I!
Iodifl@d with th@region’s
codes. ンint Thc[L6,)−(
0,−3,−6.1,3,0,1,0,6,1,0,0
,1,0,0,01:lnt Vpt(16)=(−1
,−1,−1.2,−1,−1,3,−1,−1,1,
−1,−1.0,−1,−1,−1):/” Tcc
is us@d to compute a corr
ectン/” offset, while vpt
gives an index ”//’ In th
@viewport array+ for theン
/” turninlr coordinates ン
Upoint Viewport[:4,1:/” V
lswport coor出nates IL1r,u
r.ulン機能cp *paco一codeO は与え
られた点に関連するコードを戻す。戻されたコードは1
つの値にてき、または1つの値と、2ビットコードを示
す7クッグとの間の連合にできる。
CP−space−code(paint−to−co
de)Upoint ’polnt−t偏c
ode:{ if (paint−to−code−+v < Lo
wer−1eft.x) (i f(paint−to
−COdr>7 <tllpper−right.y)
return( 6 l TWOBIT8 ) :i
f(paint−to−code−)y <Lower
−1eft.y)return(121’ImBITE
1):return (4) : } kt (po1nt−to−code−M >Upp@
r−right−x) {if(paint−to−c
od@−>y<Upper right.y)retu
rn(3 1TEBIT8):if(point−t
o−code−)y<LtN@r left.7) r
eturn (’j l T%’llOBITS) :
return (1) : 》 if (p61nt−to−code−)5” UPp
er−rlght.y) return (1) :i
f (po1nt−to−cods−)7 < Low
er−1eft.y) return (8) :re
turn (0): 》 CP2D polygon−clip( )機能は頂点
のアレイを入力として受け、長方形のビューポートに対
してベクトルをクリップする。多角形構造を保ち、正し
い視覚化を確実に行うために必要i場合には転換点が発
生される。この機能は結果としての多角形を点の出力ア
レイで発生する。
de)Upoint ’polnt−t偏c
ode:{ if (paint−to−code−+v < Lo
wer−1eft.x) (i f(paint−to
−COdr>7 <tllpper−right.y)
return( 6 l TWOBIT8 ) :i
f(paint−to−code−)y <Lower
−1eft.y)return(121’ImBITE
1):return (4) : } kt (po1nt−to−code−M >Upp@
r−right−x) {if(paint−to−c
od@−>y<Upper right.y)retu
rn(3 1TEBIT8):if(point−t
o−code−)y<LtN@r left.7) r
eturn (’j l T%’llOBITS) :
return (1) : 》 if (p61nt−to−code−)5” UPp
er−rlght.y) return (1) :i
f (po1nt−to−cods−)7 < Low
er−1eft.y) return (8) :re
turn (0): 》 CP2D polygon−clip( )機能は頂点
のアレイを入力として受け、長方形のビューポートに対
してベクトルをクリップする。多角形構造を保ち、正し
い視覚化を確実に行うために必要i場合には転換点が発
生される。この機能は結果としての多角形を点の出力ア
レイで発生する。
Qs−2DJolygon−cl ip(nin,In
,nout ,outl量at nin: IJpotnt ’in:int
”nout: Upolnt @out:{ register lnt L L k:r@gi
ster Ppoint ”pt−CP−Eaove
= &CP movesreg1star P
point ”pLQ)−dry −▲Cp−
drlw:/I ” Teaiporary data used i
n the case of 2−2 bitm.功め
int cp−t−m胛●;Upoint
Cp−t−drw:Upoint
Op−AJOlnt:int A−eod
e: ” Be sur@to close the pol
ygon.ン k=nin+1: tncnlrLJ− in(0:) :” Coa+p
ute the fird point’ statu
s.@If visible, then store
the first po1nt 1n the o
utput arr?.ン if (Cp−move−clip(in) l (
out (”nout〕= pLcpJov*−)po
int:◆nout +− 1: } /I ” Next polygona points...
%% bulld a vector from th
e ”movs’” point to the @d
r〆point.” CIip the line w
ith a standard 2D line cl
ipping method.′h/ for (1 − t: l<k; l++)l (j
= Cp−drsv−cl lpT in + i )
:/I If the line ia vis%ble, t
hen store the computed po
int(a), mjump to tho gen●
ral case.ン Cp−move. Code − D eode:tx
(j a IIEGM) ( lfcj &CLIPl { out(’nout) − pt−Cp−asove−
)point:’nout +−II1: out( ”nout) − pLCp−drsr−s
Point:1肋ut += 1 : Here the 11ne has been re
jected−.. See mat we can
dolン J else ( ◆Beg1n with * 2 bita end
paint.ン 1f (D−codI& TWoBIT8) (if
(1(M− code & Dcode>) (/I ” If the start point ia a
lso a 2 bitg... Need some
more to” make a d@eis1on
+ン if ([code& TWOBIT8 ) (j−
1; Cp−t−OIovsrwpt−Cp;ova→やoi
nt:Cp−t−drvpt−qp−drar>Pot
nt:値1l●り){ Q)−AJoi nt −x = (Cp−t;owe
.x+ Ql− t−drar.x) /2 . :
Cp−AJoint−y− (Cp−t;6y@.y+
Q)−t−dry.y) /2 . .”jcOd@
= Cp−1plc@jod@(”Cp−j%1ni
’ :if (jcode & TWOBITS)
(if (A−code =Jcode) Cp−t−
drsv”CP.Apoint:else if(^−
codemM−code ) Cp−tμv@= Cp
−A−pot nt :●is●j−0; }−18◆ { if (jcodI& D code)jcod*mJ
code+Tcc[code龜(mf) : el s@A−code− Kcod●+Tcc(I)
,code &αd〕; j−0: } } }●lee ( /I ” ’rh1s is for a 1 bit st
art po1nt <2 bits end poi
nt).ン A−code=Dcode + TccO(code)
:} out ( ”nout) = vi 一如rt (
vpt (kcode a art )) :”mut
+墳l: 》 lal謬e{ t ” Here we have a 1 bit en
d pointーif (Jcoda & TWOBI
T8) (1 f t ! (yLcode h D
−code ) ) I),code=yLccde
+%c■一code):} else { Dcode l = yLcode: lf (Tcc(D−code) = 1) Dcod
e I =T%vOBIT8:》 } } /@ ” The genera1 rule.−ン if (Dcode & TWOBITS) (ou
t( ’nout) −Vietvport ( Vp
t ([Lcode轟叫〕〕;”nout +=1: } ” Copy the current point
a@the next starting point
.ン pt−Cpmove−:b Point − ”(
in+ 1 ) :} 1f (”nout) ( out( ”nout〕− out [0) :”no
ut += 1: 》 以上説明したクリツピングアルゴリズムの実現をいくつ
かのワークステーションに対してプログラムし、いくつ
かの図形について、サザーランド=ホツジマン●アルゴ
リズムト、リアン讃パースキー●アルゴリズムによる実
現と速度を比較した。
,nout ,outl量at nin: IJpotnt ’in:int
”nout: Upolnt @out:{ register lnt L L k:r@gi
ster Ppoint ”pt−CP−Eaove
= &CP movesreg1star P
point ”pLQ)−dry −▲Cp−
drlw:/I ” Teaiporary data used i
n the case of 2−2 bitm.功め
int cp−t−m胛●;Upoint
Cp−t−drw:Upoint
Op−AJOlnt:int A−eod
e: ” Be sur@to close the pol
ygon.ン k=nin+1: tncnlrLJ− in(0:) :” Coa+p
ute the fird point’ statu
s.@If visible, then store
the first po1nt 1n the o
utput arr?.ン if (Cp−move−clip(in) l (
out (”nout〕= pLcpJov*−)po
int:◆nout +− 1: } /I ” Next polygona points...
%% bulld a vector from th
e ”movs’” point to the @d
r〆point.” CIip the line w
ith a standard 2D line cl
ipping method.′h/ for (1 − t: l<k; l++)l (j
= Cp−drsv−cl lpT in + i )
:/I If the line ia vis%ble, t
hen store the computed po
int(a), mjump to tho gen●
ral case.ン Cp−move. Code − D eode:tx
(j a IIEGM) ( lfcj &CLIPl { out(’nout) − pt−Cp−asove−
)point:’nout +−II1: out( ”nout) − pLCp−drsr−s
Point:1肋ut += 1 : Here the 11ne has been re
jected−.. See mat we can
dolン J else ( ◆Beg1n with * 2 bita end
paint.ン 1f (D−codI& TWoBIT8) (if
(1(M− code & Dcode>) (/I ” If the start point ia a
lso a 2 bitg... Need some
more to” make a d@eis1on
+ン if ([code& TWOBIT8 ) (j−
1; Cp−t−OIovsrwpt−Cp;ova→やoi
nt:Cp−t−drvpt−qp−drar>Pot
nt:値1l●り){ Q)−AJoi nt −x = (Cp−t;owe
.x+ Ql− t−drar.x) /2 . :
Cp−AJoint−y− (Cp−t;6y@.y+
Q)−t−dry.y) /2 . .”jcOd@
= Cp−1plc@jod@(”Cp−j%1ni
’ :if (jcode & TWOBITS)
(if (A−code =Jcode) Cp−t−
drsv”CP.Apoint:else if(^−
codemM−code ) Cp−tμv@= Cp
−A−pot nt :●is●j−0; }−18◆ { if (jcodI& D code)jcod*mJ
code+Tcc[code龜(mf) : el s@A−code− Kcod●+Tcc(I)
,code &αd〕; j−0: } } }●lee ( /I ” ’rh1s is for a 1 bit st
art po1nt <2 bits end poi
nt).ン A−code=Dcode + TccO(code)
:} out ( ”nout) = vi 一如rt (
vpt (kcode a art )) :”mut
+墳l: 》 lal謬e{ t ” Here we have a 1 bit en
d pointーif (Jcoda & TWOBI
T8) (1 f t ! (yLcode h D
−code ) ) I),code=yLccde
+%c■一code):} else { Dcode l = yLcode: lf (Tcc(D−code) = 1) Dcod
e I =T%vOBIT8:》 } } /@ ” The genera1 rule.−ン if (Dcode & TWOBITS) (ou
t( ’nout) −Vietvport ( Vp
t ([Lcode轟叫〕〕;”nout +=1: } ” Copy the current point
a@the next starting point
.ン pt−Cpmove−:b Point − ”(
in+ 1 ) :} 1f (”nout) ( out( ”nout〕− out [0) :”no
ut += 1: 》 以上説明したクリツピングアルゴリズムの実現をいくつ
かのワークステーションに対してプログラムし、いくつ
かの図形について、サザーランド=ホツジマン●アルゴ
リズムト、リアン讃パースキー●アルゴリズムによる実
現と速度を比較した。
あらゆる場合に、本発明のアルゴリズムは、類似の多角
形図形を比較した時に、それら2つのアルゴリズムよシ
十分に速〈動作した。本発明のアルゴリズムは浮動小数
点演算と整数演算の両方を用いて演算できる。整数演算
を用いる時は、本発明は上記2つのアルゴリズムよシ十
分に速く動作する。
形図形を比較した時に、それら2つのアルゴリズムよシ
十分に速〈動作した。本発明のアルゴリズムは浮動小数
点演算と整数演算の両方を用いて演算できる。整数演算
を用いる時は、本発明は上記2つのアルゴリズムよシ十
分に速く動作する。
【図面の簡単な説明】
第1図はサザーランド=コーへ冫●アルゴリズムで用い
られる領域コードを示す線図、第2図は本発明で用いる
転換点の意味を示す線図、第3図は本発明の説明に用い
られるウィンドウのクリップに関する線の種々の全般的
な形を示し、第4図は本発明の実施にかいて特定のクリ
ップされたウィンドウに関する多角形の臂定の辺に対し
て発生すぺき峙定の転換点を示し、第5図は本発明の実
施において特定のクリップウィンドウにおける多角形の
特定の通に関して発生された別の転換点セットを示し、
第6図は本発明の実施+’l−いて取扱わねばならない
あいまいな条件を示す。 特許出願人 サン●マイクロシステムズ・インコーポ
レーテツド 代瑠人山川政樹 X−1m xffvLx XIFLIル ×附M X肌1へ X凰賦 X^1PL X−収
られる領域コードを示す線図、第2図は本発明で用いる
転換点の意味を示す線図、第3図は本発明の説明に用い
られるウィンドウのクリップに関する線の種々の全般的
な形を示し、第4図は本発明の実施にかいて特定のクリ
ップされたウィンドウに関する多角形の臂定の辺に対し
て発生すぺき峙定の転換点を示し、第5図は本発明の実
施において特定のクリップウィンドウにおける多角形の
特定の通に関して発生された別の転換点セットを示し、
第6図は本発明の実施+’l−いて取扱わねばならない
あいまいな条件を示す。 特許出願人 サン●マイクロシステムズ・インコーポ
レーテツド 代瑠人山川政樹 X−1m xffvLx XIFLIル ×附M X肌1へ X凰賦 X^1PL X−収
Claims (1)
- 多角形の辺の頂点が存在する窓に対する領域に依存し、
かつその領域が窓の上か、下か、左か、右かの各頂点に
ついての指示を含むコードを各頂点に割当てる過程と、
多角形の各辺の2つの頂点が存在する領域を決定するた
めに、それらの頂点のコードによりそれら2つの頂点を
試験する過程と、多角形の辺のうち、その辺の両方の頂
点が窓の外側の同じ領域に存在するような辺を除去する
過程と、窓の可視縁部と辺の交差を判定するために標準
的なクリップアルゴリズムを適用する過程と、クリップ
ウィンドウの右上、左上、右下、左下にある領域内に終
端し、そのウィンドウの外側にある多角形の辺に、ウィ
ンドウの最も近い隅におけるクリップされた多角形内の
新しい点を供給する過程とを備えることを特徴とするコ
ンピューータ出力表示装置で表示するための多角形でク
リップする改良した方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US364,697 | 1989-06-09 | ||
US07/364,697 US5079719A (en) | 1989-06-09 | 1989-06-09 | Method and apparatus for clipping polygons |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0324676A true JPH0324676A (ja) | 1991-02-01 |
JP3066599B2 JP3066599B2 (ja) | 2000-07-17 |
Family
ID=23435668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2148850A Expired - Lifetime JP3066599B2 (ja) | 1989-06-09 | 1990-06-08 | コンピュータ出力表示装置で表示するための多角形をクリップする方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5079719A (ja) |
JP (1) | JP3066599B2 (ja) |
CA (1) | CA2010967C (ja) |
GB (1) | GB2232564B (ja) |
HK (1) | HK76694A (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5566292A (en) * | 1992-04-17 | 1996-10-15 | International Business Machines Corporation | Methods for detecting the closest existing point on a spline or polyline |
US5357599A (en) * | 1992-07-30 | 1994-10-18 | International Business Machines Corporation | Method and apparatus for rendering polygons |
US5613052A (en) * | 1993-09-02 | 1997-03-18 | International Business Machines Corporation | Method and apparatus for clipping and determining color factors for polygons |
US5491494A (en) * | 1993-11-19 | 1996-02-13 | International Business Machines Corporation | Pick correlation |
GB9406584D0 (en) * | 1994-03-31 | 1994-05-25 | Argonaut Software Limited | Clipping in 3-d computer graphics |
EP0680020B1 (en) * | 1994-04-28 | 2003-02-05 | Sun Microsystems, Inc. | Apparatus and method for direct calculation of clip region outcodes |
US5720019A (en) * | 1995-06-08 | 1998-02-17 | Hewlett-Packard Company | Computer graphics system having high performance primitive clipping preprocessing |
US6137497A (en) * | 1997-05-30 | 2000-10-24 | Hewlett-Packard Company | Post transformation clipping in a geometry accelerator |
US5877773A (en) * | 1997-05-30 | 1999-03-02 | Hewlett-Packard Company | Multi-pass clipping in a geometry accelerator |
US7224364B1 (en) * | 1999-02-03 | 2007-05-29 | Ati International Srl | Optimal initial rasterization starting point |
US7414635B1 (en) * | 2000-08-01 | 2008-08-19 | Ati International Srl | Optimized primitive filler |
KR100444782B1 (ko) * | 2002-10-29 | 2004-08-18 | (주)사나이시스템 | 다각형 부울리안 연산을 위한 선분 데이터 생성 방법 |
US6919908B2 (en) * | 2003-08-06 | 2005-07-19 | Ati Technologies, Inc. | Method and apparatus for graphics processing in a handheld device |
US20050280658A1 (en) * | 2004-06-22 | 2005-12-22 | Aleksandar Filipov | Method of accurate fixed-point line clipping |
JP2008009719A (ja) * | 2006-06-29 | 2008-01-17 | Fujitsu Ltd | 直線描画方法、直線描画プログラム及び直線描画装置 |
CA2729234C (en) | 2008-07-03 | 2014-01-07 | Research In Motion Limited | Method and system for fast clipping of line segments |
EP2297692A4 (en) * | 2008-07-03 | 2015-04-15 | Blackberry Ltd | METHOD AND SYSTEM FOR QUICKLY CLIPING POLYGONES |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3638736A (en) * | 1969-06-25 | 1972-02-01 | Esco Corp | Corner bit structure |
US3639736A (en) * | 1969-11-19 | 1972-02-01 | Ivan E Sutherland | Display windowing by clipping |
US3816726A (en) * | 1972-10-16 | 1974-06-11 | Evans & Sutherland Computer Co | Computer graphics clipping system for polygons |
US4181953A (en) * | 1978-02-17 | 1980-01-01 | The Singer Company | Face vertex correction for real-time simulation of a polygon face object system |
JPS603695A (ja) * | 1983-06-21 | 1985-01-10 | ダイキン工業株式会社 | Crtデイスプレイ装置のクリツプ回路 |
JPS6120128A (ja) * | 1984-07-07 | 1986-01-28 | Daikin Ind Ltd | Crtデイスプレイ装置のクリツプ回路 |
US4958305A (en) * | 1987-11-04 | 1990-09-18 | General Electric Company | Polygon edge clipping |
-
1989
- 1989-06-09 US US07/364,697 patent/US5079719A/en not_active Expired - Fee Related
- 1989-11-27 GB GB8926764A patent/GB2232564B/en not_active Expired - Fee Related
-
1990
- 1990-02-27 CA CA002010967A patent/CA2010967C/en not_active Expired - Fee Related
- 1990-06-08 JP JP2148850A patent/JP3066599B2/ja not_active Expired - Lifetime
-
1994
- 1994-08-04 HK HK76694A patent/HK76694A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
GB2232564B (en) | 1994-01-12 |
HK76694A (en) | 1994-08-12 |
US5079719A (en) | 1992-01-07 |
CA2010967A1 (en) | 1990-12-09 |
GB2232564A (en) | 1990-12-12 |
CA2010967C (en) | 1998-12-01 |
GB8926764D0 (en) | 1990-01-17 |
JP3066599B2 (ja) | 2000-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0324676A (ja) | コンピュータ出力表示装置で表示するための多角形をクリップする方法 | |
Glassner | Graphics gems | |
US5613052A (en) | Method and apparatus for clipping and determining color factors for polygons | |
EP0775982B1 (en) | System and method for merging pixel fragments based on depth range values | |
EP0356103B1 (en) | Scan-conversion process and processor | |
US6333744B1 (en) | Graphics pipeline including combiner stages | |
US7006101B1 (en) | Graphics API with branching capabilities | |
US6292192B1 (en) | System and method for the direct rendering of curve bounded objects | |
US8928668B2 (en) | Method and apparatus for rendering a stroked curve for display in a graphics processing system | |
JP2007193835A (ja) | 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム | |
US9460552B2 (en) | Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program | |
US5003497A (en) | Method for three-dimensional clip checking for computer graphics | |
US5841442A (en) | Method for computing parameters used in a non-homogeneous second order perspective texture mapping process using interpolation | |
US5347619A (en) | Nonconvex polygon identifier | |
US7117238B1 (en) | Method and system for performing pipelined reciprocal and reciprocal square root operations | |
US4930091A (en) | Triangle classification setup method and apparatus for 3-D graphics display system | |
US20190236820A1 (en) | Method for rendering resolution-independent shapes directly from outline control points | |
US5463723A (en) | Method and apparatus for filling polygons | |
AU618128B2 (en) | Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system | |
US10269168B2 (en) | Graphics processing systems | |
US5412765A (en) | Method for vector field visualization using time varying texture maps | |
US5563990A (en) | Method and apparatus for processing a pick event | |
US20050231533A1 (en) | Apparatus and method for performing divide by w operations in a graphics system | |
US6930686B1 (en) | Method and apparatus for drawing thick graphic primitives | |
US6515661B1 (en) | Anti-aliasing buffer |