JPH08235362A - 単純な凸状の多角形を決定するための方法および装置 - Google Patents
単純な凸状の多角形を決定するための方法および装置Info
- Publication number
- JPH08235362A JPH08235362A JP7293750A JP29375095A JPH08235362A JP H08235362 A JPH08235362 A JP H08235362A JP 7293750 A JP7293750 A JP 7293750A JP 29375095 A JP29375095 A JP 29375095A JP H08235362 A JPH08235362 A JP H08235362A
- Authority
- JP
- Japan
- Prior art keywords
- polygon
- respect
- vertices
- coordinate axis
- convex
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
(57)【要約】 (修正有)
【課題】単純凸多角形を検出するとともに塗りつぶしを
速かに行う。 【解決手段】オペレーティング環境が多角形演算を要請
すると、ドライバ(又はビデオコントローラ上のソフト
ウエア)は、特定された多角形が単純凸であるか否かを
決定する。凸多角形が単純凸であるか否かの決定は、多
角形の頂点間をトレースし、所定の座標軸に関する方向
変化回数を閾値と比較することにより行なわれる。多角
形が単純凸である場合、幾つかの演算はより簡単なコー
ド又はハードウエア増速形態を利用して実行することが
できる。多角形塗り潰しに対しては、多角形が単純凸で
あれば、多角形の辺が検査されて多角形が一つの矩形と
より小さい多角形に分解可能か否かを決定する。肯定で
あれば、ビデオコントローラが矩形の高速塗り潰しを実
行する。
速かに行う。 【解決手段】オペレーティング環境が多角形演算を要請
すると、ドライバ(又はビデオコントローラ上のソフト
ウエア)は、特定された多角形が単純凸であるか否かを
決定する。凸多角形が単純凸であるか否かの決定は、多
角形の頂点間をトレースし、所定の座標軸に関する方向
変化回数を閾値と比較することにより行なわれる。多角
形が単純凸である場合、幾つかの演算はより簡単なコー
ド又はハードウエア増速形態を利用して実行することが
できる。多角形塗り潰しに対しては、多角形が単純凸で
あれば、多角形の辺が検査されて多角形が一つの矩形と
より小さい多角形に分解可能か否かを決定する。肯定で
あれば、ビデオコントローラが矩形の高速塗り潰しを実
行する。
Description
【0001】本発明は、一般的にコンピュータに関し、
特に単純凸多角形を検出する方法及び装置に関する。
特に単純凸多角形を検出する方法及び装置に関する。
【0002】パーソナルコンピュータの演算速度は、多
くの要因に依存する。当然、マイクロプロセッサの速度
がコンピュータシステム全体の演算速度にかなり影響す
る。プロセッサの速度の次に、多くの場合、ビデオ・グ
ラフィック・サブシステムがコンピュータシステム全体
の性能に最大の影響を持っている。これはマイクロソフ
ト・ウインドウズ(ワシントン州、レッドモンドのマイ
クロソフト・コーポレーションによる)のようなグラフ
ィック・ユーザ・インターフェイスを使用している場合
に特に当てはまる。性能を高めるために、最も今日的な
パーソナルコンピュータはローカル・ビデオ・バス(メ
イン・ペリフェラルバスよりも高いデータ帯域巾を有し
ている。)及び一定の演算の速度を上げる増速(accele
rated )ビデオカードの何れかを使用している。増速ビ
デオカードは、選択されたビデオ演算をその演算を実行
するためのCPUを利用するよりも高速でビデオカード
が実行するのを可能とする。ハードウエア増速方式は、
コンピュータシステムの演算を2つの方法で改善する。
即ち、(1) CPUはビデオカードにより扱われる低レベ
ルのビデオ演算をもはや実行する必要がない。(2) 一定
の演算用のデータバンド巾が大巾に減少し、バス交通量
が減る。
くの要因に依存する。当然、マイクロプロセッサの速度
がコンピュータシステム全体の演算速度にかなり影響す
る。プロセッサの速度の次に、多くの場合、ビデオ・グ
ラフィック・サブシステムがコンピュータシステム全体
の性能に最大の影響を持っている。これはマイクロソフ
ト・ウインドウズ(ワシントン州、レッドモンドのマイ
クロソフト・コーポレーションによる)のようなグラフ
ィック・ユーザ・インターフェイスを使用している場合
に特に当てはまる。性能を高めるために、最も今日的な
パーソナルコンピュータはローカル・ビデオ・バス(メ
イン・ペリフェラルバスよりも高いデータ帯域巾を有し
ている。)及び一定の演算の速度を上げる増速(accele
rated )ビデオカードの何れかを使用している。増速ビ
デオカードは、選択されたビデオ演算をその演算を実行
するためのCPUを利用するよりも高速でビデオカード
が実行するのを可能とする。ハードウエア増速方式は、
コンピュータシステムの演算を2つの方法で改善する。
即ち、(1) CPUはビデオカードにより扱われる低レベ
ルのビデオ演算をもはや実行する必要がない。(2) 一定
の演算用のデータバンド巾が大巾に減少し、バス交通量
が減る。
【0003】システムの応答性を増加する加速のため
に、ウインドウズのようなオペレーティング環境は、増
速ビデオサブシステムの能力を知る必要がある。オペレ
ーティング環境がロードされると、それは、オペレーテ
ィング環境と増速ビデオハードウエアとの仲介手段であ
るビデオドライバのローディングを開始する。ドライバ
はオペレーティング環境にパラメータを渡し、それはビ
デオ・サブシステムの増速された能力を特定する。その
後、増速された能力の利益を受け得るビデオ操作の実行
をオペレーティング環境が必要としたとき、それは必要
なデータをドライバに供給する。ドライバはその情報を
解釈して、その情報及びデータをバス経由でビデオ・サ
ブシステムに渡す。ビデオ・サブシステムは、次にその
フレームバッファにデータを書込むことにより、ビデオ
操作を実行する。アクセラレーテド・ビデオ・サブシス
テムの市場は成熟しているので、ビデオ・サブシステム
の速度は大部分ビデオドライバの動作に依存しているこ
とが明らかになった。
に、ウインドウズのようなオペレーティング環境は、増
速ビデオサブシステムの能力を知る必要がある。オペレ
ーティング環境がロードされると、それは、オペレーテ
ィング環境と増速ビデオハードウエアとの仲介手段であ
るビデオドライバのローディングを開始する。ドライバ
はオペレーティング環境にパラメータを渡し、それはビ
デオ・サブシステムの増速された能力を特定する。その
後、増速された能力の利益を受け得るビデオ操作の実行
をオペレーティング環境が必要としたとき、それは必要
なデータをドライバに供給する。ドライバはその情報を
解釈して、その情報及びデータをバス経由でビデオ・サ
ブシステムに渡す。ビデオ・サブシステムは、次にその
フレームバッファにデータを書込むことにより、ビデオ
操作を実行する。アクセラレーテド・ビデオ・サブシス
テムの市場は成熟しているので、ビデオ・サブシステム
の速度は大部分ビデオドライバの動作に依存しているこ
とが明らかになった。
【0004】ドライバの総合速度にかなり影響する或る
部類のドライバ機能(或いは“基本命令”)に多角形機
能がある。ウインドウズは二つの多角形用基本命令をサ
ポートしている。即ち、Alternate Fill Polygon()及び
Winding Fill Polygon()である。これらの基本命令は、
塗りつぶした(solid )多角形及び外形線多角形の各図
形を描くために使用される。基本命令呼出しの支援で、
ウインドウズは必要な多角形に関する情報を渡す。例え
ば、(1)画面座標における頂点の順序リスト(最後の
座標は省略することが可能で、そうであれば、第1の座
標が最後の座標とみなされる。)、パターン情報、色情
報及び縁情報である。この情報に基づいて、ドライバは
多角形を描く。ドライバが多角形を描く速度は、コード
の効率とビデオボードがハードウエア支援を与えている
か否かに依存している。
部類のドライバ機能(或いは“基本命令”)に多角形機
能がある。ウインドウズは二つの多角形用基本命令をサ
ポートしている。即ち、Alternate Fill Polygon()及び
Winding Fill Polygon()である。これらの基本命令は、
塗りつぶした(solid )多角形及び外形線多角形の各図
形を描くために使用される。基本命令呼出しの支援で、
ウインドウズは必要な多角形に関する情報を渡す。例え
ば、(1)画面座標における頂点の順序リスト(最後の
座標は省略することが可能で、そうであれば、第1の座
標が最後の座標とみなされる。)、パターン情報、色情
報及び縁情報である。この情報に基づいて、ドライバは
多角形を描く。ドライバが多角形を描く速度は、コード
の効率とビデオボードがハードウエア支援を与えている
か否かに依存している。
【0005】ある例では、多角形が凸状であるかどう
か、肯定であれば単純多角形であるかどうかを知ること
に利益がある。図1aは単純凸多角形10(頂点11及
び辺13で定義されている)を示し、図1bは複雑な凸
多角形12を示している。単純凸多角形は交叉ラインを
持っていないので、このためビデオドライバ基本命令
は、多角形に関する機能を実行するのにより簡単なコー
ド、例えばウインドウの外に一部が出ている多角形をク
リップするためのコーヘン・スーザーランド(Cohen-Sut
herland)クリップ法を利用するといった利益を得ること
ができる。更に、多角形が単純凸の例においては、幾つ
かのハードウエア増速機能をドライバソフトウエアによ
り利用することも可能である。
か、肯定であれば単純多角形であるかどうかを知ること
に利益がある。図1aは単純凸多角形10(頂点11及
び辺13で定義されている)を示し、図1bは複雑な凸
多角形12を示している。単純凸多角形は交叉ラインを
持っていないので、このためビデオドライバ基本命令
は、多角形に関する機能を実行するのにより簡単なコー
ド、例えばウインドウの外に一部が出ている多角形をク
リップするためのコーヘン・スーザーランド(Cohen-Sut
herland)クリップ法を利用するといった利益を得ること
ができる。更に、多角形が単純凸の例においては、幾つ
かのハードウエア増速機能をドライバソフトウエアによ
り利用することも可能である。
【0006】多角形が凸であるか否かを決定する方法
が、デイビッド・ロジャースによる“コンピュータグラ
フィックスのための手順初歩”(Procedual Elements f
or Computer graphics)(マックグロー−ヒル、198
5)のページ146−151に記載されている。このテ
キストは、多角形が凸であるかどうかを決定する2つの
方法を提供している。しかし、第1の方法(多角形の隣
接辺の交差積(cross products)を計算し、比較する)
は、単純と複雑の凸多角形の差異を正確に識別しない。
上記の引用文献に記載された第2の方法は、i番目の頂
点が原点に位置され、(i+1)番目の頂点が正のx軸
に位置するように多角形を原点を中心に回転するといっ
た多角形の移動の繰り返しを含む。回転の後、(i+
2)番目の頂点のy成分の符号が記入される。この手順
は各頂点に対し繰り返される。移動の処理は高速に実行
されるが、回転処理はサイン及びコサイン計算のため時
間がかかる。このため第2の方法は単純と複雑の凸多角
形の差異を正しく識別するが、ドライバソフトウエア組
込んだ場合この方法の遅さは望ましくない。
が、デイビッド・ロジャースによる“コンピュータグラ
フィックスのための手順初歩”(Procedual Elements f
or Computer graphics)(マックグロー−ヒル、198
5)のページ146−151に記載されている。このテ
キストは、多角形が凸であるかどうかを決定する2つの
方法を提供している。しかし、第1の方法(多角形の隣
接辺の交差積(cross products)を計算し、比較する)
は、単純と複雑の凸多角形の差異を正確に識別しない。
上記の引用文献に記載された第2の方法は、i番目の頂
点が原点に位置され、(i+1)番目の頂点が正のx軸
に位置するように多角形を原点を中心に回転するといっ
た多角形の移動の繰り返しを含む。回転の後、(i+
2)番目の頂点のy成分の符号が記入される。この手順
は各頂点に対し繰り返される。移動の処理は高速に実行
されるが、回転処理はサイン及びコサイン計算のため時
間がかかる。このため第2の方法は単純と複雑の凸多角
形の差異を正しく識別するが、ドライバソフトウエア組
込んだ場合この方法の遅さは望ましくない。
【0007】従って、多角形が単純凸多角形であるか否
かを決定する方法及び装置に対する要求が業界に上がっ
ている。
かを決定する方法及び装置に対する要求が業界に上がっ
ている。
【0008】本発明においては、コンピュータ内で単純
と複雑の凸多角形の区別を行なうドライバ・ソフトウエ
アは、要求された演算動作が高速で実行されるかどうか
を決定する。多角形が単純または複雑な凸状であるか否
かを決定するために、ビデオドライバは、多角形の頂点
についての情報を受け取った後、多角形が凸であるか否
かを決定する。肯定であれば、出発頂点が選択され、多
角形をトレースすることにより得られる所定の座標軸に
関する方向変化の回数が調べられる。方向変化の回数
は、閾値回数と比較される。方向変化の回数が閾値回数
を越えた場合には、多角形は複雑凸である。
と複雑の凸多角形の区別を行なうドライバ・ソフトウエ
アは、要求された演算動作が高速で実行されるかどうか
を決定する。多角形が単純または複雑な凸状であるか否
かを決定するために、ビデオドライバは、多角形の頂点
についての情報を受け取った後、多角形が凸であるか否
かを決定する。肯定であれば、出発頂点が選択され、多
角形をトレースすることにより得られる所定の座標軸に
関する方向変化の回数が調べられる。方向変化の回数
は、閾値回数と比較される。方向変化の回数が閾値回数
を越えた場合には、多角形は複雑凸である。
【0009】本発明は、従来技術に対しかなりの利点を
提供する。第1に、この方法は、速度またはコードの複
雑さに関し少ないオーバーヘッドで多角形が単純凸か複
雑凸かを決定することができる。多角形が単純凸である
か否かを迅速に決定することにより、ドライバは、複雑
凸多角形では得られないような演算の速度を上げる幾つ
かのテクニックを実施することができる。
提供する。第1に、この方法は、速度またはコードの複
雑さに関し少ないオーバーヘッドで多角形が単純凸か複
雑凸かを決定することができる。多角形が単純凸である
か否かを迅速に決定することにより、ドライバは、複雑
凸多角形では得られないような演算の速度を上げる幾つ
かのテクニックを実施することができる。
【0010】本発明の好ましい実施例及びその利点は図
面の図1−12を参照することにより最もよく理解で
き、各図の同じ対応する部分には同じ番号を使用してい
る。
面の図1−12を参照することにより最もよく理解で
き、各図の同じ対応する部分には同じ番号を使用してい
る。
【0011】図2はコンピュータシステム20のブロッ
ク図を示す。このコンピュータシステム20は、メモリ
24、ローカルバス26及び周辺バス28に接続された
マイクロプロセッサ(または中央処理装置)22を含
む。ビデオメモリ30及びI/O回路32がローカルバ
ス26に接続されている。ディスプレイ34がビデオコ
ンピュータ30に接続されている。ハードディスク38
がI/O回路32に接続されている。複数の周辺装置4
0がメインバス28に接続されている。キーボード42
がキーボード・インターフェイス45を介してCPU2
2に接続されている。プリンタ43もI/O回路32に
接続されている。この図2のコンピュータシステム20
は高性能コンピュータシステムのための例示的なの実施
例である。多くのコンピュータシステムは図2のアーキ
テクチャとは変っていて、ここで説明する本発明は多様
なアーキテクチャに適用され得る。更に、図2に示すア
ーキテクチャは基本的なアーキテクチャであり、説明の
ためにかなりの細部が省略されている。
ク図を示す。このコンピュータシステム20は、メモリ
24、ローカルバス26及び周辺バス28に接続された
マイクロプロセッサ(または中央処理装置)22を含
む。ビデオメモリ30及びI/O回路32がローカルバ
ス26に接続されている。ディスプレイ34がビデオコ
ンピュータ30に接続されている。ハードディスク38
がI/O回路32に接続されている。複数の周辺装置4
0がメインバス28に接続されている。キーボード42
がキーボード・インターフェイス45を介してCPU2
2に接続されている。プリンタ43もI/O回路32に
接続されている。この図2のコンピュータシステム20
は高性能コンピュータシステムのための例示的なの実施
例である。多くのコンピュータシステムは図2のアーキ
テクチャとは変っていて、ここで説明する本発明は多様
なアーキテクチャに適用され得る。更に、図2に示すア
ーキテクチャは基本的なアーキテクチャであり、説明の
ためにかなりの細部が省略されている。
【0012】図3はビデオコントローラ30のより詳細
なブロック図を示す。このビデオコントローラ30は、
コントロールレジスタ及びバッファを含むメモリ部分4
4、メモリ部分44に接続されたロジック46及びフレ
ームバッファ48を備える。フレームバッファ48はデ
ィジタル―アナログ・コンバータ(DAC)50に接続
されていて、このコンバータはフレームバッファに蓄積
されたデータに応答してビデオ情報をディスプレイ34
に出力する。
なブロック図を示す。このビデオコントローラ30は、
コントロールレジスタ及びバッファを含むメモリ部分4
4、メモリ部分44に接続されたロジック46及びフレ
ームバッファ48を備える。フレームバッファ48はデ
ィジタル―アナログ・コンバータ(DAC)50に接続
されていて、このコンバータはフレームバッファに蓄積
されたデータに応答してビデオ情報をディスプレイ34
に出力する。
【0013】ビデオドライバは、実行時にウインドウズ
のようなオペレーティング環境と共にコンピュータシス
テム20にロードされる。ビデオドライバはオペレーテ
ィング環境と共に、マイクロプロセッサ22により実行
され、計算を実行し、ビデオコントローラ30と通信す
る。動作時に、ビデオドライバはオペレーティング環境
からの命令に応答してデータ及び制御信号をビデオコン
トローラ30に出力する。これらのデータ及び制御信号
に応答して、ロジック46がフレームバッファ48への
及びからのデータの流れを制御する。
のようなオペレーティング環境と共にコンピュータシス
テム20にロードされる。ビデオドライバはオペレーテ
ィング環境と共に、マイクロプロセッサ22により実行
され、計算を実行し、ビデオコントローラ30と通信す
る。動作時に、ビデオドライバはオペレーティング環境
からの命令に応答してデータ及び制御信号をビデオコン
トローラ30に出力する。これらのデータ及び制御信号
に応答して、ロジック46がフレームバッファ48への
及びからのデータの流れを制御する。
【0014】図4は、多角形が単純凸多角形であるか否
かを決定するために、ドライバソフトウエア(またはハ
ードウエアコントローラに組込のソフトウエア)により
実現された方法の好ましい実施例のフロー図を示す。ス
テップ50において、オペレーティング環境から多角形
の頂点が受け取られる。典型的には、ウインドウズと同
様に、頂点は順番に受け取られ、画面座標値である(即
ち、座標値が画面の座標系での画素を示す。)頂点が多
角形の辺を定義する。
かを決定するために、ドライバソフトウエア(またはハ
ードウエアコントローラに組込のソフトウエア)により
実現された方法の好ましい実施例のフロー図を示す。ス
テップ50において、オペレーティング環境から多角形
の頂点が受け取られる。典型的には、ウインドウズと同
様に、頂点は順番に受け取られ、画面座標値である(即
ち、座標値が画面の座標系での画素を示す。)頂点が多
角形の辺を定義する。
【0015】ステップ52において、ドライバは多角形
が凸であるか否かを決定する。凸多角形は、隣接辺のベ
クトル交差積(cross products)を計算することにより
識別することができる。ベクトル交差積の符号が全て同
じかゼロであれば(即ち、交差積が[1]全て正または
ゼロ、或いは[2]全て負またはゼロ)、多角形は凸で
ある。多角形が正及び負の双方のベクトル交差積を有し
ていると、多角形は凹であり、更に考慮する必要はな
い。この方法はより詳細にはデイビッド・ロジャースに
よる“コンピュータグラフィックスのための手順初歩”
(マックグロー−ヒル、1985)のページ146−1
51に論じられている。上述の方法の代りに多角形が凸
かどうかを決定する他の方法が使用されてもよい。
が凸であるか否かを決定する。凸多角形は、隣接辺のベ
クトル交差積(cross products)を計算することにより
識別することができる。ベクトル交差積の符号が全て同
じかゼロであれば(即ち、交差積が[1]全て正または
ゼロ、或いは[2]全て負またはゼロ)、多角形は凸で
ある。多角形が正及び負の双方のベクトル交差積を有し
ていると、多角形は凹であり、更に考慮する必要はな
い。この方法はより詳細にはデイビッド・ロジャースに
よる“コンピュータグラフィックスのための手順初歩”
(マックグロー−ヒル、1985)のページ146−1
51に論じられている。上述の方法の代りに多角形が凸
かどうかを決定する他の方法が使用されてもよい。
【0016】多角形が凸でない場合には、サブルーチン
はブロック54で終了する。肯定でなければ、ブロック
56において、頂点リストから開始点が選択される。何
れの頂点をも開始点として選択することができるが、し
かし簡単のため、与えられた軸に沿って最も遠い頂点
(右端、左端、上端、下端の頂点)、或いはオペレーテ
ィング環境から受け取った順番の一番目の頂点の何れか
を一般的には開始点として選択する。ブロック58にお
いて、多角形の頂点間のトレースにより、選択された軸
に関する方向変化の回数が調べられる。ステップ58は
図5a−b、図6a−b、図7a−bに関連して更に詳
細に説明される。
はブロック54で終了する。肯定でなければ、ブロック
56において、頂点リストから開始点が選択される。何
れの頂点をも開始点として選択することができるが、し
かし簡単のため、与えられた軸に沿って最も遠い頂点
(右端、左端、上端、下端の頂点)、或いはオペレーテ
ィング環境から受け取った順番の一番目の頂点の何れか
を一般的には開始点として選択する。ブロック58にお
いて、多角形の頂点間のトレースにより、選択された軸
に関する方向変化の回数が調べられる。ステップ58は
図5a−b、図6a−b、図7a−bに関連して更に詳
細に説明される。
【0017】決定ブロック60は、開始点が他の頂点に
対し選択軸の最端に位置するかどうか、即ち、x軸(水
平軸)が選択された場合には右端または左端の頂点であ
るか、或いはy軸(垂直軸)が選択された場合には上端
または下端の頂点であるか、を決定する。開始点が最端
の開始点でなく、ブロック62において方向変化が2回
以上である場合には、多角形は複雑凸である。開始点が
最端の開始点でなく、ブロック62において方向変化が
2回以上でない場合には、多角形は単純凸である。開始
点が最端の開始点であり、ブロック64において方向変
化が1回以上である場合には、多角形は複雑凸である。
開始点が最端の開始点であり、ブロック64において方
向変化が1回以上でない場合には、多角形は単純凸であ
る。
対し選択軸の最端に位置するかどうか、即ち、x軸(水
平軸)が選択された場合には右端または左端の頂点であ
るか、或いはy軸(垂直軸)が選択された場合には上端
または下端の頂点であるか、を決定する。開始点が最端
の開始点でなく、ブロック62において方向変化が2回
以上である場合には、多角形は複雑凸である。開始点が
最端の開始点でなく、ブロック62において方向変化が
2回以上でない場合には、多角形は単純凸である。開始
点が最端の開始点であり、ブロック64において方向変
化が1回以上である場合には、多角形は複雑凸である。
開始点が最端の開始点であり、ブロック64において方
向変化が1回以上でない場合には、多角形は単純凸であ
る。
【0018】図5a−b、図6a−b、図7a−bは、
図4のステップ58において記されている方法を示す。
図5aは5頂点11と5辺13を有する単純凸多角形を
示す。図5bは7頂点11と7辺13を有する複雑凸多
角形を示す。上述の方法を使用して、両多角形が凸であ
ることを示すことが可能である。図6aは、x軸が選択
された場合に、図5aの多角形の方向変化の決定を図説
している。点P0は開始点として選択されている。説明
のため、右方向の変化が正(“+”)で左方向の変化が
負(“―”)であると仮定する。このためP0からP1
に向かってx方向の角度ずれ(offset)は正である。P
1からP2に向かってx方向の角度ずれは同じく正であ
るから、方向変化はない。P2からP3に向かってx方
向の角度ずれは負であり、従って方向の最初の変化が生
じる。P3からP4及びP4からP5に向かってx方向
の角度ずれは負のままであるから、これらの辺に関する
方向変化はない。P5からP0に向かってx方向の角度
ずれは正であり、2回目の方向変化が生じる。P0はx
軸に関し最端開始点ではないから(P2及びP5が最端
点)、この多角形は単純凸と決定される。
図4のステップ58において記されている方法を示す。
図5aは5頂点11と5辺13を有する単純凸多角形を
示す。図5bは7頂点11と7辺13を有する複雑凸多
角形を示す。上述の方法を使用して、両多角形が凸であ
ることを示すことが可能である。図6aは、x軸が選択
された場合に、図5aの多角形の方向変化の決定を図説
している。点P0は開始点として選択されている。説明
のため、右方向の変化が正(“+”)で左方向の変化が
負(“―”)であると仮定する。このためP0からP1
に向かってx方向の角度ずれ(offset)は正である。P
1からP2に向かってx方向の角度ずれは同じく正であ
るから、方向変化はない。P2からP3に向かってx方
向の角度ずれは負であり、従って方向の最初の変化が生
じる。P3からP4及びP4からP5に向かってx方向
の角度ずれは負のままであるから、これらの辺に関する
方向変化はない。P5からP0に向かってx方向の角度
ずれは正であり、2回目の方向変化が生じる。P0はx
軸に関し最端開始点ではないから(P2及びP5が最端
点)、この多角形は単純凸と決定される。
【0019】図6bは図5bの多角形に対し適用された
同様な解析を示す。P0からP1及びP1からP2に向
かってx方向の角度ずれは正である。P2からP3に向
かってx方向の角度ずれは負であり、最初の方向変化が
生じる。P3からP4に向かってx方向の角度ずれは正
であり、2番目の方向変化が生じる。P4からP5に向
かってx方向の角度ずれは正のままである。P5からP
6に向かってx方向の角度ずれは負であり、3回目の方
向変化が生じる。P6からP7に向かってx方向の角度
ずれは正であり、4回目の方向変化が生じる。P7から
P0に向かって方向変化は正である。このため図5bの
多角形は4回の方向変化を有していて、従って複雑凸で
ある。
同様な解析を示す。P0からP1及びP1からP2に向
かってx方向の角度ずれは正である。P2からP3に向
かってx方向の角度ずれは負であり、最初の方向変化が
生じる。P3からP4に向かってx方向の角度ずれは正
であり、2番目の方向変化が生じる。P4からP5に向
かってx方向の角度ずれは正のままである。P5からP
6に向かってx方向の角度ずれは負であり、3回目の方
向変化が生じる。P6からP7に向かってx方向の角度
ずれは正であり、4回目の方向変化が生じる。P7から
P0に向かって方向変化は正である。このため図5bの
多角形は4回の方向変化を有していて、従って複雑凸で
ある。
【0020】図7a−bは夫々、図6a−bに示したの
と同様な解析をy軸に関して示す。この場合には、P0
(両多角形に対し)は上端点であるから、最端点である
ことに注意すべきである。図7a−bに示す解析では、
下向きの角度ずれは負で、上向きの角度ずれは正と仮定
される。
と同様な解析をy軸に関して示す。この場合には、P0
(両多角形に対し)は上端点であるから、最端点である
ことに注意すべきである。図7a−bに示す解析では、
下向きの角度ずれは負で、上向きの角度ずれは正と仮定
される。
【0021】図7aを参照すると、P0からP1に向か
ってy方向の角度ずれは負である。P1からP2及びP
2からP3に向かってy方向の角度ずれは同じく負であ
るから、方向変化はない。P3からP4に向かってy方
向の角度ずれは正であり、従って最初の方向変化が生じ
る。P4からP5及びP5からP0に向かってy方向の
角度ずれは正のままであるから、これらの辺に関する方
向変化はない。P0がy軸に関し最端の開始点であるた
め、方向変化が1回であるので、この多角形は単純凸で
あると決定される。
ってy方向の角度ずれは負である。P1からP2及びP
2からP3に向かってy方向の角度ずれは同じく負であ
るから、方向変化はない。P3からP4に向かってy方
向の角度ずれは正であり、従って最初の方向変化が生じ
る。P4からP5及びP5からP0に向かってy方向の
角度ずれは正のままであるから、これらの辺に関する方
向変化はない。P0がy軸に関し最端の開始点であるた
め、方向変化が1回であるので、この多角形は単純凸で
あると決定される。
【0022】図7bを参照すると、P0からP1に向か
ってy方向の角度ずれは負である。P1からP2及びP
2からP3に向かってy方向の角度ずれは同じく負であ
るから、方向変化はない。P3からP4に向かってy方
向の角度ずれは正であり、従って最初の方向変化が生じ
る。P4からP5に向かってy方向の角度ずれは負であ
るから、2回目の方向変化が生じる。P5からP6に向
かってy方向の角度ずれはない。ゼロ角度ずれは“考慮
不要”の状況を生じる。P6からP7への辺はy方向に
正であり、このため3回目の方向変化が生じる(中間が
ゼロ角度ずれであるから、方向変化を決定するためにP
6からP7への辺はP4からP5への辺と比較され
る)。P7からP0に向かって角度ずれは正である。結
果として図7bで示されている全部で3回の方向変化が
存在する。y方向に関しP0が最端開始点であるため、
1回以上の方向変化があるのでこの多角形は複雑凸であ
ると決定される。
ってy方向の角度ずれは負である。P1からP2及びP
2からP3に向かってy方向の角度ずれは同じく負であ
るから、方向変化はない。P3からP4に向かってy方
向の角度ずれは正であり、従って最初の方向変化が生じ
る。P4からP5に向かってy方向の角度ずれは負であ
るから、2回目の方向変化が生じる。P5からP6に向
かってy方向の角度ずれはない。ゼロ角度ずれは“考慮
不要”の状況を生じる。P6からP7への辺はy方向に
正であり、このため3回目の方向変化が生じる(中間が
ゼロ角度ずれであるから、方向変化を決定するためにP
6からP7への辺はP4からP5への辺と比較され
る)。P7からP0に向かって角度ずれは正である。結
果として図7bで示されている全部で3回の方向変化が
存在する。y方向に関しP0が最端開始点であるため、
1回以上の方向変化があるのでこの多角形は複雑凸であ
ると決定される。
【0023】方向変化が許容回数(開始点が最端である
か否かに応じて1または2)を一旦越えると、残りの辺
のそれ以上の解析なしで多角形が複雑凸であると決定で
きることに注意すべきである。
か否かに応じて1または2)を一旦越えると、残りの辺
のそれ以上の解析なしで多角形が複雑凸であると決定で
きることに注意すべきである。
【0024】以下にリストする擬似コードは、凸多角形
が単純か複雑かを解析するためのコードを示す。この例
では、左端の頂点がP0として選択されている。
が単純か複雑かを解析するためのコードを示す。この例
では、左端の頂点がP0として選択されている。
【0025】
【0026】上記の擬似コードは、2回の方向変化が生
じたら戻るので、複雑凸多角形の検出に要する時間を最
小にするが、しかし、最端の頂点(この場合は左端の頂
点)を決定するための予備的な幾つかのステップを入れ
る必要がある。全ての複雑凸多角形は少なくとも3回の
方向変化を有しているであろうから、開始頂点に無関係
に、別の実施例は、何れの頂点からも開始することがで
き、少なくとも3回検出されるまで方向変化をカウント
する。もし肯定であれば、多角形は複雑であり、そうで
なく、3回以下の方向変化が検出された場合、その多角
形は単純である。この別方法は、頂点を選択する時間を
除去するが、方向変化をカウントするのにより多くの時
間を必要とする(2回よりも3回が検出されねばならな
いから)。
じたら戻るので、複雑凸多角形の検出に要する時間を最
小にするが、しかし、最端の頂点(この場合は左端の頂
点)を決定するための予備的な幾つかのステップを入れ
る必要がある。全ての複雑凸多角形は少なくとも3回の
方向変化を有しているであろうから、開始頂点に無関係
に、別の実施例は、何れの頂点からも開始することがで
き、少なくとも3回検出されるまで方向変化をカウント
する。もし肯定であれば、多角形は複雑であり、そうで
なく、3回以下の方向変化が検出された場合、その多角
形は単純である。この別方法は、頂点を選択する時間を
除去するが、方向変化をカウントするのにより多くの時
間を必要とする(2回よりも3回が検出されねばならな
いから)。
【0027】本発明のこの面は、従来技術を越えた多大
な利点を与える。第1に、単純凸多角形の検出速度が速
いので、一旦決定が行なわれれば持たれるかも知れない
速度増加を単純凸多角形の検出が大巾に減ずることがな
いのである。第2に簡単にコード化できることである。
な利点を与える。第1に、単純凸多角形の検出速度が速
いので、一旦決定が行なわれれば持たれるかも知れない
速度増加を単純凸多角形の検出が大巾に減ずることがな
いのである。第2に簡単にコード化できることである。
【0028】一旦多角形が単純凸であると決定される
と、ビデオコントローラ30のハードウエア増速機能が
幾つかの演算を実行する際の速度を増加させるのに利用
されるであろう。図8−10は、多角形塗り潰しに必要
な時間を減少させる方法を示す。多角形塗り潰しは、特
定の色を用いた特定のパターンで内部を色づけることに
より多角形(或いはウインドウでクリップされていない
部分)の輪郭内を塗り込んでしまうことを包含してい
る。従来技術では、多角形塗り潰しは、多角形の辺を定
義している辺のリストに基づいて一時に一本ずつ走査線
を塗り潰す走査変換を利用して行なわれている。
と、ビデオコントローラ30のハードウエア増速機能が
幾つかの演算を実行する際の速度を増加させるのに利用
されるであろう。図8−10は、多角形塗り潰しに必要
な時間を減少させる方法を示す。多角形塗り潰しは、特
定の色を用いた特定のパターンで内部を色づけることに
より多角形(或いはウインドウでクリップされていない
部分)の輪郭内を塗り込んでしまうことを包含してい
る。従来技術では、多角形塗り潰しは、多角形の辺を定
義している辺のリストに基づいて一時に一本ずつ走査線
を塗り潰す走査変換を利用して行なわれている。
【0029】多角形が単純凸であると決定されれば、多
角形塗り潰しの時間は、ロジック46の一部である“b
ltエンジン”(図3参照)として一般に知られている
ビットブロック転送エンジンの使用により減少され得
る。bltエンジンは大部分の増速ビデオカードの共通
機能である。図8は好ましい実施例のこの面の基本動作
のフロー図を示している。
角形塗り潰しの時間は、ロジック46の一部である“b
ltエンジン”(図3参照)として一般に知られている
ビットブロック転送エンジンの使用により減少され得
る。bltエンジンは大部分の増速ビデオカードの共通
機能である。図8は好ましい実施例のこの面の基本動作
のフロー図を示している。
【0030】ブロック70で、上述の多角形情報(頂
点、境界、塗り潰し情報など)が、多角形塗り潰し機能
の増強のためにオペレーティング環境からビデオドライ
バに渡される。決定ブロック72において、ドライバ
(或いはハードウエア)は、多角形が単純凸かどうかを
決定する。否であれば、ブロック74において単純凸で
ある多角形のための通常手順に基づき多角形塗り潰しが
処理される。ブロック76において、多角形の頂点がビ
デオドライバにより検査され、多角形が矩形とより小さ
い多角形に分解可能かどうかを調べる。多角形が分解で
きなければ、ブロック80にて多角形が例えば走査変換
により通常に塗り潰される。多角形が分解できれば、ビ
デオドライバはビデオコントローラ30にブロック82
内のbltエンジン(或いは他のハードウエア増速矩形
塗り潰し)を使用して矩形を塗り潰すよう命令する。ブ
ロック84において、小多角形が通常法を用いて塗り潰
される。なお小多角形を上述の技術を用いて更に別の矩
形及び多角形に分解してもよい。
点、境界、塗り潰し情報など)が、多角形塗り潰し機能
の増強のためにオペレーティング環境からビデオドライ
バに渡される。決定ブロック72において、ドライバ
(或いはハードウエア)は、多角形が単純凸かどうかを
決定する。否であれば、ブロック74において単純凸で
ある多角形のための通常手順に基づき多角形塗り潰しが
処理される。ブロック76において、多角形の頂点がビ
デオドライバにより検査され、多角形が矩形とより小さ
い多角形に分解可能かどうかを調べる。多角形が分解で
きなければ、ブロック80にて多角形が例えば走査変換
により通常に塗り潰される。多角形が分解できれば、ビ
デオドライバはビデオコントローラ30にブロック82
内のbltエンジン(或いは他のハードウエア増速矩形
塗り潰し)を使用して矩形を塗り潰すよう命令する。ブ
ロック84において、小多角形が通常法を用いて塗り潰
される。なお小多角形を上述の技術を用いて更に別の矩
形及び多角形に分解してもよい。
【0031】矩形及び小多角形に分解可能な多角形の種
類が、図9に図示されている。単純凸多角形86は、矩
形部分88と小多角形部分90とを有している。矩形部
分88はbltエンジンを用いて高速に塗り潰すことが
できる。残りの小多角形部分は走査変換処理または他の
適当な技術を用いて塗り潰すことができる。
類が、図9に図示されている。単純凸多角形86は、矩
形部分88と小多角形部分90とを有している。矩形部
分88はbltエンジンを用いて高速に塗り潰すことが
できる。残りの小多角形部分は走査変換処理または他の
適当な技術を用いて塗り潰すことができる。
【0032】図10は図8のブロック76に示されるス
テップ、即ち、多角形が矩形と小多角形に分解可能かど
うかを決定する方法、を詳細に説明するフローチャート
を示している。概ね図10に述べられている方法は、3
つの連続した辺が2つの連続した90度のかどを生じる
かどうかを調べるものである。ブロック92において、
変数I、N及びフラグが初期化される。多角形の2辺が
直角をなしていれば、フラグは“1”にセットされる。
Nは多角形の辺の数を表わしている。Iは現在の辺を示
すインデックスであり、最初は“1”にセットされる。
テップ、即ち、多角形が矩形と小多角形に分解可能かど
うかを決定する方法、を詳細に説明するフローチャート
を示している。概ね図10に述べられている方法は、3
つの連続した辺が2つの連続した90度のかどを生じる
かどうかを調べるものである。ブロック92において、
変数I、N及びフラグが初期化される。多角形の2辺が
直角をなしていれば、フラグは“1”にセットされる。
Nは多角形の辺の数を表わしている。Iは現在の辺を示
すインデックスであり、最初は“1”にセットされる。
【0033】ブロック94において、辺(I)が隣接辺
と比較され、2辺が直角をなすかどうかが調べられる。
多角形の何れの辺をも最初の辺とすることができる。な
お受け取った頂点の順に辺に番号が付けられているとす
る。更に、隣接部分を定義するのに何れの方向をも使用
することができる。また、簡単のため、ブロック94で
比較される隣接辺は頂点のリストで定義されているとお
りの次の辺であるとする。
と比較され、2辺が直角をなすかどうかが調べられる。
多角形の何れの辺をも最初の辺とすることができる。な
お受け取った頂点の順に辺に番号が付けられているとす
る。更に、隣接部分を定義するのに何れの方向をも使用
することができる。また、簡単のため、ブロック94で
比較される隣接辺は頂点のリストで定義されているとお
りの次の辺であるとする。
【0034】bltエンジンの能力に依存して、ブロッ
ク94の直角をなす辺の検出を、一方が水平で他方が垂
直であるような直角をなす辺に限定する必要があるかも
知れない。これはまた、一方の辺の頂点のx座標が同じ
であり、他方の辺の頂点のy座標が同じであるから、各
辺が90度のかどをなすかどうかを決定することの複雑
さを軽減することにもなる。
ク94の直角をなす辺の検出を、一方が水平で他方が垂
直であるような直角をなす辺に限定する必要があるかも
知れない。これはまた、一方の辺の頂点のx座標が同じ
であり、他方の辺の頂点のy座標が同じであるから、各
辺が90度のかどをなすかどうかを決定することの複雑
さを軽減することにもなる。
【0035】ブロック94の決定において各辺が直角を
なさない場合には、ブロック96でフラグが“0”にセ
ットされる。ブロック98でI=N(即ち、全辺がチェ
ックされた)でない限り、ブロック100でIは次の辺
の組をチェックするために増加される。ブロック98で
I=Nとなると、全辺がチェック済であり、多角形は分
解できないことになる。
なさない場合には、ブロック96でフラグが“0”にセ
ットされる。ブロック98でI=N(即ち、全辺がチェ
ックされた)でない限り、ブロック100でIは次の辺
の組をチェックするために増加される。ブロック98で
I=Nとなると、全辺がチェック済であり、多角形は分
解できないことになる。
【0036】ブロック94で各辺が直角をなす場合、判
断ブロック102でフラグがチェックされる。フラグが
“1”であれば、直前の辺の組が直角をなしているの
で、多角形は分解できることになる。フラグが“1”で
ない場合(直前の辺の組が直角をなさないことを示す)
には、ブロック104でフラグが“1”にセットされ
る。判断ブロック106でI=Nでない限り、次の辺の
組をチェックするためにIはブロック107で増加され
る。判断ブロック106でI=Nであれば、最初の辺の
組で形成されたかどが最後の辺と最初の辺で形成された
かどに隣接していて、従って、連続した90度のかどが
これらの3つの辺により形成されていることがあるか
ら、ブロック108で最初の辺の組がチェックされる。
断ブロック102でフラグがチェックされる。フラグが
“1”であれば、直前の辺の組が直角をなしているの
で、多角形は分解できることになる。フラグが“1”で
ない場合(直前の辺の組が直角をなさないことを示す)
には、ブロック104でフラグが“1”にセットされ
る。判断ブロック106でI=Nでない限り、次の辺の
組をチェックするためにIはブロック107で増加され
る。判断ブロック106でI=Nであれば、最初の辺の
組で形成されたかどが最後の辺と最初の辺で形成された
かどに隣接していて、従って、連続した90度のかどが
これらの3つの辺により形成されていることがあるか
ら、ブロック108で最初の辺の組がチェックされる。
【0037】前に述べたように、多角形は多数の矩形部
分を含んでもよい。図10に示す方法は、最初の矩形領
域を見つけるのに利用することができるが、全矩形領域
を見つけて次に最大の矩形を選択するように修正するこ
ともできる。
分を含んでもよい。図10に示す方法は、最初の矩形領
域を見つけるのに利用することができるが、全矩形領域
を見つけて次に最大の矩形を選択するように修正するこ
ともできる。
【0038】図11a−b及び図12に示す代りの実施
例においては、単一の直角を持つ多角形を一つの矩形1
10及び2つの凸多角形112(図11a)または一つ
の矩形110と一つの凹多角形114(図11b)に分
解することができる。何れの場合でも、上述のように、
矩形110はbltエンジンを用いて塗り潰すことがで
き、多角形112または114は走査変換で塗り潰すこ
とができる。
例においては、単一の直角を持つ多角形を一つの矩形1
10及び2つの凸多角形112(図11a)または一つ
の矩形110と一つの凹多角形114(図11b)に分
解することができる。何れの場合でも、上述のように、
矩形110はbltエンジンを用いて塗り潰すことがで
き、多角形112または114は走査変換で塗り潰すこ
とができる。
【0039】この方法を説明するフローチャートが図1
2に示されている。ブロック116で、直角をなす辺を
持つ多角形が検出される。この多角形から一つの矩形を
定義することができる。最大の面積を持つ矩形は、
(1)直角をなす辺の長さに等しい側辺(図11a)
か、(2)多角形の他の辺上にある、直角をなす辺を持
つ頂点とは反対側の頂点(図11b)かの何れかを有し
ている。双方のケースは標準的な幾何学法を使用して決
定することができる。ブロック120で、多角形の一辺
上に向い合う頂点があれば、二つの凸多角形がブロック
124で塗り潰される。そうでなければ、凹多角形がブ
ロック126で塗り潰される。
2に示されている。ブロック116で、直角をなす辺を
持つ多角形が検出される。この多角形から一つの矩形を
定義することができる。最大の面積を持つ矩形は、
(1)直角をなす辺の長さに等しい側辺(図11a)
か、(2)多角形の他の辺上にある、直角をなす辺を持
つ頂点とは反対側の頂点(図11b)かの何れかを有し
ている。双方のケースは標準的な幾何学法を使用して決
定することができる。ブロック120で、多角形の一辺
上に向い合う頂点があれば、二つの凸多角形がブロック
124で塗り潰される。そうでなければ、凹多角形がブ
ロック126で塗り潰される。
【0040】本発明の詳細な説明をある例示的実施例に
向けたが、これらの実施例の種々の変更並びに変形実施
例が技術知識を有するものに示唆されるであろう。例え
ば、多角形が単純凸であるか複雑凸であるかの決定が、
コンピュータのマイクロプロセッサに関連して実行され
るように説明したが、この演算をビデオコントローラに
おいて実行することも可能であろう。同様に、単純凸多
角形の矩形と小多角形への分解は、ビデオコントローラ
で実行することができる。
向けたが、これらの実施例の種々の変更並びに変形実施
例が技術知識を有するものに示唆されるであろう。例え
ば、多角形が単純凸であるか複雑凸であるかの決定が、
コンピュータのマイクロプロセッサに関連して実行され
るように説明したが、この演算をビデオコントローラに
おいて実行することも可能であろう。同様に、単純凸多
角形の矩形と小多角形への分解は、ビデオコントローラ
で実行することができる。
【0041】本発明は請求範囲内となる何等かの変更ま
たは代替実施例を包含している。
たは代替実施例を包含している。
本発明及びその利点の完全な理解のために、今や添付図
面に関連してなされた記述に関する参照が以下なされ
る。
面に関連してなされた記述に関する参照が以下なされ
る。
【図1】図1a及び図1bは単純な凸状及び複雑な凸状
の多角形を夫々示す。
の多角形を夫々示す。
【図2】図2はコンピュータシステムのブロック図を示
す。
す。
【図3】図3はビデオコントローラのブロック図を示
す。
す。
【図4】図4は多角形が単純凸か複雑凸かを決定する方
法を説明するフローチャートを示す。
法を説明するフローチャートを示す。
【図5】図5a及び図5bは図4の方法を説明するため
の単純凸及び複雑凸の多角形を夫々示す。
の単純凸及び複雑凸の多角形を夫々示す。
【図6】図6a及び図6bは夫々図5a及び図5bに示
す多角形に対し図4の方法に従ってx軸に関する方向の
変化を示す図である。
す多角形に対し図4の方法に従ってx軸に関する方向の
変化を示す図である。
【図7】図7a及び図7bは夫々図5a及び図5bに示
す多角形に対し図4の方法に従ってy軸に関する方向の
変化を示す図である。
す多角形に対し図4の方法に従ってy軸に関する方向の
変化を示す図である。
【図8】図8は多角形の塗りつぶしを増速する方法を説
明するフローチャートである。
明するフローチャートである。
【図9】図9は図8の方法に従って分解することができ
る多角形の図を示す。
る多角形の図を示す。
【図10】図10は多角形が矩形と小多角形に分解でき
るかどうかを決定する方法を説明するフローチャートで
ある。
るかどうかを決定する方法を説明するフローチャートで
ある。
【図11】図11a及び図11bは多角形を分解する別
の方法を示す。
の方法を示す。
【図12】図12は多角形塗りつぶしを増速するために
多角形を分解する別の方法を説明するフローチャートを
示す。
多角形を分解する別の方法を説明するフローチャートを
示す。
Claims (14)
- 【請求項1】多角形の頂点を定義する情報を受け、 上記多角形が凸であるか否かを決定し、 第1の組の頂点間の方向を所定の座標軸に関し決定し、
連続した組の頂点に対し、 上記所定の座標軸に関し方向を決定し、 方向の変化回数を所定の閾値と比較する、各ステップか
らなる、コンピュータに表示される多角形が単純凸であ
るか否かを決定する方法。 - 【請求項2】開始頂点を選択するステップを更に備える
請求項1の方法。 - 【請求項3】上記比較するステップが、上記開始頂点が
上記所定の座標軸に関し他の2つの頂点の間に位置して
いる場合に、上記方向の変化回数が2以上であるか否か
を決定し、上記開始頂点が上記所定の座標軸に関し他の
2つの頂点の間に位置していない場合に、上記方向の変
化回数が1以上であるか否かを決定するステップを備え
る請求項2の方法。 - 【請求項4】上記開始頂点を選択するステップが、上記
所定の座標軸に関し、残りの頂点の一方側に位置してい
る頂点を選択するステップを備える請求項2の方法。 - 【請求項5】上記比較するステップが、方向変化の回数
が1以上であるか否かを決定するステップを備える請求
項4の方法。 - 【請求項6】上記所定の座標軸が垂直軸である請求項1
の方法。 - 【請求項7】上記所定の座標軸が水平軸である請求項1
の方法。 - 【請求項8】多角形の頂点を定義する情報を受け、 上記多角形が凸であるか否かを決定し、 第1の組の頂点間の方向を所定の座標軸に関し決定し、 連続した組の頂点に対し、 上記所定の座標軸に関し方向を決定し、 方向の変化が生じたか否かを決定し、そして方向の変化
回数を所定の閾値と比較する、 処理装置を備えた、コンピュータに表示される多角形が
単純凸であるか否かを決定する回路。 - 【請求項9】開始頂点を選択する処理装置を更に備える
請求項8の回路。 - 【請求項10】上記開始頂点が上記所定の座標軸に関し
他の2つの頂点の間に位置している場合に、上記方向の
変化回数が2以上であるか否かを決定し、上記開始頂点
が上記所定の座標軸に関し他の2つの頂点の間に位置し
ていない場合に、上記方向の変化回数が1以上であるか
否かを決定することにより、上記処理装置が上記方向変
化回数と上記所定閾値と比較する請求項9の回路。 - 【請求項11】上記所定の座標軸に関し、残りの頂点の
一方側に位置している頂点を選択することにより上記処
理装置が開始インデックスを選択する請求項9の回路。 - 【請求項12】方向変化の回数が1である請求項11の
回路。 - 【請求項13】上記所定の座標軸が垂直軸である請求項
8の回路。 - 【請求項14】上記所定の座標軸が水平軸である請求項
8の回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32324494A | 1994-10-14 | 1994-10-14 | |
US08/323,244 | 1994-10-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08235362A true JPH08235362A (ja) | 1996-09-13 |
Family
ID=23258325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7293750A Pending JPH08235362A (ja) | 1994-10-14 | 1995-10-16 | 単純な凸状の多角形を決定するための方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6304270B1 (ja) |
EP (1) | EP0707285A3 (ja) |
JP (1) | JPH08235362A (ja) |
AU (1) | AU3313895A (ja) |
CA (1) | CA2160432A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030132932A1 (en) * | 2001-09-17 | 2003-07-17 | Xiangheng Yang | Method for constructing polygons used to represent geographic features |
US8976188B1 (en) | 2012-04-20 | 2015-03-10 | Google Inc. | Optimized data communication system and method for an image rendering system |
US9721363B2 (en) | 2014-05-19 | 2017-08-01 | Google Inc. | Encoding polygon data for fast retrieval and rendering |
CN113627456B (zh) * | 2020-05-09 | 2024-03-19 | 杭州海康威视数字技术股份有限公司 | 生成基准数据的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901251A (en) * | 1986-04-03 | 1990-02-13 | Advanced Micro Devices, Inc. | Apparatus and methodology for automated filling of complex polygons |
GB2198019B (en) * | 1986-11-18 | 1990-09-26 | Ibm | Graphics processing system |
US4951230A (en) * | 1987-10-26 | 1990-08-21 | Tektronix, Inc. | Method and apparatus for tiling an image |
US4962468A (en) * | 1987-12-09 | 1990-10-09 | International Business Machines Corporation | System and method for utilizing fast polygon fill routines in a graphics display system |
JP2800404B2 (ja) * | 1990-11-20 | 1998-09-21 | ダイキン工業株式会社 | 多角形分割方法およびその装置 |
US5347619A (en) * | 1991-04-30 | 1994-09-13 | International Business Machines Corporation | Nonconvex polygon identifier |
-
1995
- 1995-10-09 AU AU33138/95A patent/AU3313895A/en not_active Abandoned
- 1995-10-12 CA CA002160432A patent/CA2160432A1/en not_active Abandoned
- 1995-10-13 EP EP95307346A patent/EP0707285A3/en not_active Withdrawn
- 1995-10-16 JP JP7293750A patent/JPH08235362A/ja active Pending
-
1996
- 1996-07-17 US US08/682,419 patent/US6304270B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0707285A2 (en) | 1996-04-17 |
AU3313895A (en) | 1996-04-26 |
CA2160432A1 (en) | 1996-04-15 |
EP0707285A3 (en) | 1996-11-13 |
US6304270B1 (en) | 2001-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2920387B2 (ja) | デジタル書体の視覚的劣化を最少にする方法および装置 | |
JPH10105361A (ja) | オブジェクト指定方法及びシステム | |
US9710869B2 (en) | Method, system and apparatus for rendering a graphical object | |
US5522020A (en) | System and method for rapidly determining relative rectangle position | |
US5079719A (en) | Method and apparatus for clipping polygons | |
US5524198A (en) | Character or graphic processing method and apparatus | |
US5489920A (en) | Method for determining the optimum angle for displaying a line on raster output devices | |
JPH07109629B2 (ja) | 多角形の識別方法、多角形を識別するシステム | |
KR940001880B1 (ko) | 묘화처리(描畵處理)의 방법 및 장치 | |
US5898422A (en) | Method and system for recognition of pointers | |
US5068803A (en) | Method and apparatus for filling contours in digital typefaces | |
JPH08235362A (ja) | 単純な凸状の多角形を決定するための方法および装置 | |
JP3037854B2 (ja) | 文字生成方法及びその装置 | |
KR910001525B1 (ko) | 곡선 근사방법 | |
EP0356262B1 (en) | Image processing apparatus | |
JP2000113202A (ja) | クリッピング制御装置及びクリッピング制御方法 | |
US5644691A (en) | Method and apparatus for accelerated filling of polygons on a computer display by rectangular decomposition | |
US12026809B2 (en) | Systems for generating anti-aliased vector objects | |
JPH06290270A (ja) | 閉じた輪郭イメージを凸多角形で境界づける方法及びデータ処理装置 | |
US6614940B2 (en) | System, method and computer program product for generic outline font compression | |
JPH06274303A (ja) | マルチウィンドウ表示方法 | |
JP4098870B2 (ja) | 文字拡大方法 | |
JP2780496B2 (ja) | 描画装置のクリッピング処理方式 | |
CA2069116A1 (en) | Graphics clipping | |
JPH0830725A (ja) | 画像処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040928 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20041227 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050107 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050801 |