JPH0827846B2 - オブジエクトの選択を検出する方法及び装置 - Google Patents

オブジエクトの選択を検出する方法及び装置

Info

Publication number
JPH0827846B2
JPH0827846B2 JP2269680A JP26968090A JPH0827846B2 JP H0827846 B2 JPH0827846 B2 JP H0827846B2 JP 2269680 A JP2269680 A JP 2269680A JP 26968090 A JP26968090 A JP 26968090A JP H0827846 B2 JPH0827846 B2 JP H0827846B2
Authority
JP
Japan
Prior art keywords
pick
straight line
operator
coded
end point
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.)
Expired - Lifetime
Application number
JP2269680A
Other languages
English (en)
Other versions
JPH03242768A (ja
Inventor
ジエームズ・コロナ
ダニエル・ジラード・ギボンズ
テレンス・ウエルレース・リンドグレン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03242768A publication Critical patent/JPH03242768A/ja
Publication of JPH0827846B2 publication Critical patent/JPH0827846B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】 A.産業上の利用野 本発明は、広義にはコンピュータ・グラフィックス・
ディスプレイ・システムに関し、より詳しくはオペレー
タが選択したディスプレイ・スクリーンのエリアと交差
する表示オブジェクトを識別するための処理方法及び装
置に関する。さらに詳しくは、本発明は表示図形の詳細
描出前におけるオペレータのオブジェクト選択の検出に
関する。
B.従来の技術及びその課題 CAD/CAMワークステーションのような対話型ラスタ・
グラフィックス・システムは、機械、電気機器、電気機
械、及びエレクトロニクス装置のコンポーネントやシス
テムの設計に広範に利用されている。このようなグラフ
ィックス・システムにおいては、設計中のコンポーネン
トやシステムを変更しまたは試験するために、オペレー
タによるそれらのコンポーネント、またはシステムのコ
ンピュータ・ベース・モデルとの対話に重点が置かれる
ことが度々ある。コンピュータ・ベース・モデルは、オ
ペレータが処置を加えることが出来るよう個々に処理さ
れ、表示される多数のオブジェクトよりなる。表示オブ
ジェクトの選択は、ライトペン、ロケータ(位置入力装
置)(例えば、スタイラスを有するデータ・タブレッ
ト)、及びアルファニューメリック・機能キーボードの
ような多種多様なオペレータ操作型対話装置のうち、適
宜の装置を用いて行われる。多くの対話シーケンスのう
ち重要な役割を有する部分の一つは、オペレータにより
処置されるべく選択される表示オブジェクトのコンピュ
ータによる識別であり、このプロセスはピッキング(pi
cking)として知られている。
一般に、グラフィックス・システムの処理技術にあっ
ては、さらに処理を加えるために選択あるいはピックさ
れる特定オブジェクトを識別するのに、ディスプレイ・
スクリーン全体の再処理が必要である。より詳しく言う
と、現行の処理方法は、ワールド座標空間における表示
オブジェクトを定義する各幾何学的基本表示要素(prim
itive)の変換、変換された各基本表示要素のワールド
座標空間における定義済みクリッピング境界に対するク
リッピング、クリッピングされた各基本表示要素のオペ
レータ定義ビューポート及びスクリーン座標空間へのマ
ッピング、マッピングされた全データのラスタ化、さら
には生成されたピクセル(画素)がスクリーン座標空間
内のウィンドウ中のオペレータ定義の選択エリアと交差
するか否かの判断を含めて、ディスプレイ・プログラム
の再実行を必要とする。上記の交差に関する判断の結果
がイエスであれば、ピッキングが行われる。
上記の方法は効果的ではあるが、選択されない幾何学
的オブジェクトをもマッピングし、ラスタ化する結果、
不必要な処理が行われると言う明らかな欠点を有する。
例えば、オペレータが選択したスクリーン・エリア外に
おけるべた塗り(filled)ポリゴン(多角形)の描画や
ラスタ化は不要でありまた時間の無駄でもある。
この問題を扱った一つの解決案が、1989年1月23日付
けの「オペレータが選択した表示オブジェクトを識別す
るための対話型コンピュータ・グラフィックス・ディス
プレイ・システムによる処理方法(Interactive Comput
er Graphics System Processing Method for Identifyi
ng an Operator Selected Displayed Object)」と言う
名称の米国特許出願第4,982,345号において論じられて
いる。この特許では、ピック・ウィンドウのワールド座
標空間への逆マッピングを形成する装置及び方法につい
て考察がなされている。これに開示された技術によれ
ば、三次元ワールド座標空間から二次元スクリーンへの
ウィンドウ−ビューポート・マッピングの前にワールド
座標空間内でピッキングを実行させることが可能であ
る。この技術は、パイプライン・サイクル内で早期にピ
ッキングする方法、従ってオブジェクトの無用なラスタ
化を回避する方法を提供してくれるものの、他方ではい
くつかの欠点を伴う。最も大きな欠点は二次元のピック
・ウィンドウを三次元ワールド座標空間へ逆マッピング
しようとする際にいくつか不都合が生じると言うことで
ある。透視画やその他の選択可能な特徴的機能、機構の
使用など、三次元から二次元へのマッピングには高度化
した技術が用いられることにより、ピック・ウィンドウ
の正確な逆マッピングは困難になっている。
そのため、ピック・ウィンドウの逆マッピングの諸制
約をなくしたラスタ化前にピック検出を行うための改良
された装置及び方法が求められている。
C.課題を解決するための手段 本発明はパイプライン式グラフィックス・ディスプレ
イ・システムにおいて効率的に動作するピック検出シス
テムを提供するものである。本発明のピック検出システ
ムによれば、グラフィックス・プロセッサにおいてラス
タ化ステップ前にオペレータによるグラフィックス・オ
ブジェクト(適宜単に「オブジェクト」とする)の選択
を効率的に検出するための手段及び方法が得られる。
従って、本発明の目的は、各基本表示要素の全ラスタ
化または全描画を必要としないピック検出ロジックを提
供することにある。
本発明のもう一つの目的は、スクリーン空間よりオブ
ジェクトを正確にピックすることのできる簡単なピック
検出装置及び方法を提供することにある。
上記及びそれ以外の本発明の目的については、以下の
実施例の説明の中においてさらに詳細に述べられてい
る。
D.実施例 本発明は、グラフィックス・オブジェクトのオペレー
タによる選択をそのオブジェクトのラスタ化及びピクセ
ル生成の前に検出する方法及び装置を提供するものであ
る。本発明の方法においては、スクリーンを幾つかの領
域に分割し、相続くエンドポイント(端点)及びベクト
ルをそれらの領域に基づき分析してトリビアル・ピック
(ピック自明)(trivial pick)かトリビアル・ノー・
ピック(ノー・ピック自明)(trivial no pick)かを
判断する。ノントリビアル(非自明)(non−trivial)
条件については、ピック・ウィンドウの頂点を通って引
いたサンプル線の吟味を通じて直線の傾きを求めること
により分析が行われる。本発明のピック検出を行うため
の装置は、ピック検出をグラフィックス・パイプライン
処理の一部として実行する。本発明の装置においてはト
リビアル・ピックまたはトリビアル・ノー・ピックの場
合、パイプライン動作は遅くならないが、ノントリビア
ルの場合は、余分の処理サイクルが必要である。
本発明は、グラフィックス処理システム用のピック検
出機構を提供するものである。このピック検出機構はパ
イプライン式プロセッサを用いたグラフィックス・ディ
スプレイ・システム用として特に好適であり、本願にお
いてはパイプライン式グラフィックス・システムと共に
使用する場合を実施例として説明する。しかしながら、
本発明のピック検出機構ないしは検出方法は、そのよう
なパイプライン処理システムにおける利用にのみ限定さ
れるものではない。
本発明のもう一つの特徴はピック相関として知られて
いる機能にある。グラフィックス・パイプラインにおい
ては、描画プロセッサによる実際の描画が障害となるこ
とがよくある。ディスプレイ・プログラムは、描画をし
ようとしている場合でなければ、より迅速にトラバース
(traverse)できることがしばしばある。本発明による
ピック検出ハードウェアはパイプライン式要素であるか
ら、データを全く次のパイプライン式要素へ通過させな
いモードに設定することができる。ピック相関モードと
して知られているこのモードにおいては、グラフィック
ス・プロセッサは、オブジェクトを描画する必要なく、
ピック検出のためのディスプレイ・プログラム・チェッ
クを実行することができる。
本発明の一実施例のグラフィックス・ディスプレイ・
システムの全体的構成を第1図に示す。システム制御プ
ロセッサ100は通信回線102を介して行われるこのグラフ
ィックス・ディスプレイ・システムとホスト・プロセッ
サとの対話を制御する。内部I/Oプロセッサ104は、キー
ボード、タブレットとスタイラス、プログラム機能キ
ー、及びその他所要のオペレータ操作機器等のオペレー
タ制御装置に接続されている。システム制御プロセッサ
100はグラフィックス制御プロセッサ106によるグラフィ
ックス命令の実行を管理する。システム制御プロセッサ
100とグラフィックス制プロセッサ106は共用システム・
メモリ108を介してデータ交換し、システム制御プロセ
ッサ100はホスト・システムより表示命令を受け取り、
グラフィックス制御プロセッサ106に実行させるべく記
憶する。グラフィックス制御プロセッサ106はグラフィ
ックス描画命令を解読し、変換、クリッピング、マッピ
ング、及びピッキングのためにパイプライン・プロセッ
サ110に供給する。ピック検出ロジック112はグラフィッ
ク処理パイプラインの一部をなしている。さらに、ピク
セル描画プロセッサ114もこのパイプラインの一部をな
しており、このプロセッサ114は関連ピクセルをビデオ
・ピクセル・メモリ116に書き込むことにより最終画像
を描出する役割を有する。ビデオ・ピクセル・メモリ11
6は、ビデオ・ディスプレイ・モニタ、ハードコピー・
プリンタ、あるいはこれらと類似の装置であるディスプ
レイ・デバイス(表示装置)118上に画像を生成するの
に必要な回路群によってアクセスされる。
本発明によれば、ピッキング・プロセスはピック検出
ロジック112により行われる。I/Oプロセッサ104はスタ
イラスとタブレットのようなオペレータが選択動作を行
うオペレータ選択装置の位置を監視する。この実施例に
おいては、システム制御プロセッサ100は周期的にI/Oプ
ロセッサ104をサンプリングして、オペレータ選択装置
の位置が変化したかどうかを判断する。位置が変化して
いれば、システム制御プロセッサ100はグラフィックス
制御プロセッサ106に割込みをかけ、そのオペレータ選
択装置の新しいX及びY座標(スクリーン座標空間の)
を転送する。グラフィックス制御プロセッサ106はピッ
ク・ウィンドウ境界を座標値Xmin,Xmax,Ymin,Ymax
として決定し、これらの値を制御ライン107を通じてピ
ック検出ロジック112中のレジスタにロードする。ピッ
ク・ウィンドウは、通常、オペレータ選択装置のX,Y座
標位置を取り囲む例えば24×24のピクセルの正方形より
なる。ピック・ウィンドウの範囲はX,Y座標から計算さ
れる。
グラフィックス制御プロセッサ106はグラフィックス
命令を解読し、変換、ピック検出及びピクセル描画のた
めにパイプライン・プロセッサ110、112および114へ転
送する役割を有する。パイプライン・プロセッサは多辺
形(polylines)、ポリゴン、及びその他の幾何学形状
のような基本表示要素の指定された頂点に対して処理を
行う。直線の両端点を定める2つの頂点座標を、ビデオ
・ピクセル・メモリ116への記憶及びディスプレイ・デ
バイス118での表示のためにピクセルに変換するのは、
ピクセル描画プロセッサ114におけるピクセル描画ステ
ップのみである。パイプラインはこれらの頂点を変換
し、マッピングするよう動作する。例えば、ポリライン
・コマンドは沢山の指定点の間に線分を引くことを要求
することがある。このような場合、パイプライン・プロ
セッサは先ずワールド座標空間(三次元空間)において
平行移動(translation)、スケーリング(拡大縮小)
あるいは回転コマンドを適用することにより指定された
各頂点を変換する。続いて、パイプライン・プロセッサ
は生成された像を定義済みウィンドウに従い三次元空間
においてクリッピングする。その後、パイプラインはウ
ィンドウ内の三次元データを二次元のビューポートにマ
ッピングする。この時点で、各頂点は二次元スクリーン
座標において指定された状態となる。
本発明におけるピック検出ロジック112は二次元スク
リーン座標内で指定された頂点情報に対して処理を行
う。ピック検出ロジック112は合致が起こった時、即ち
2つの頂点を結ぶ直線が定義済みピック・ウィンドウを
通る時、確実にこれを検出するよう動作する。グラフィ
ックス制御プロセッサ106は、アプリケーション・パラ
メータに基づいてその合致が実際に起こったかどうかを
判断する役割を有する。例えば、この実施例のシステム
においては、グラフィックス制御プロセッサは、ピック
・ウィンドウを介して描かれる最初のオブジェクト、ピ
ック・ウィンドウを介して描かれる最後のオブジェク
ト、あるいはピック・ウィンドウを介して描かれる全て
のオブジェクトのピックを信号で知らせるよう設定する
ことができる。ピック検出ロジック112は、合致を検出
すると必ず、ピック割込み処理のためにグラフィックス
制御プロセッサ106に割込みをかける。グラフィックス
制御プロセッサ106はアプリケーション指定動作を実行
し、次いでピック検出ロジック112の割込みをリセット
し、これによってパイプライン・プロセッサを再始動さ
せ、処理を再開する。
本発明のこの実施例のピック検出ロジックはコーエン
・サザーランド(Cohen−Sutherland)のクリッピング
・アルゴリズムに基づく形態のピック検出を行うもので
ある。コーエン・サザーランドのクリッピング・アルゴ
リズムについては、フォリー(Foley)及びファン・ダ
ム(Van Dam)著の「対話型コンピュータ・グラフィッ
クスの基礎(Fundamentals of Interactive Computer G
raphics)」、146乃至149頁により詳細に記載されてい
る。コーエン・サザーランドのアルゴリズムにおいて
は、スクリーン空間を9つの領域に分割することにより
クリッピングを実行する。これと同じように、本発明の
ピック検出ロジックはスクリーンを9つの領域に分割し
てピック検出を行う。オペレータが指定するピック・ウ
ィンドウは、4つの点、即ちXmin,Xmax,Ymin及びYmax
によって指定することができる。第2図はスクリーン座
標空間におけるピック・ウィンドウ120の位置を示す。
ピック・ウィンドウ120は通常は正方形のスクリーン・
エリアの形で実施される。9つの各領域はアウトコード
(outcode)で識別される。アウトコードは4ビットか
らなり、それらの各ビットは各領域とウィンドウ120を
定義する4つの点の中の1点との関係を示す。即ち、本
発明のこの実施例で用いられているアウトコードは、そ
の領域がXminの左側かどうかを示す1ビット、Xmaxの右
側かどうかを示す1ビット、Ymaxの上側かどうかを示す
1ビット、及びYminの下側かどうかを示す1ビットの合
計4ビットで構成されている。従って122とラベルされ
た領域は1010と言うアウトコードを有し、この領域がX
minの左側でYmaxの上側にあり、Xmaxの右側あるいはY
minの下側にはないということを示している。ピック・
ウィンドウ120を定義する領域のアウトコードは0000で
ある。
コーエン−サザーランドのアルゴリズムは、2つの頂
点により定まる線分について、その全体がピック・ウィ
ンドウの外部にあるか否か、限定的にピック・ウィンド
ウ内にあるか否か、あるいは更に分析が必要か否か、を
迅速に判断する手段を与えるものである。最初の2つの
条件はそれぞれ「自明に内側(trivially in)」及び
「自明に外側(trivially out)」と呼ばれる。本発明
によれば、コーエン・サザーランドのアルゴリズムでは
扱うことのできない非自明(non−trivial)ピック条件
を処理するための新規な手段を実施することが可能であ
る。
以下、本発明によるピッキング・プロセスを第3図を
参照しつつ説明する。図中、線分(直線)130は領域
の点P1と領域の点P2を結んでいる。領域内の一点と
領域内の一点を結ぶ直線は決してピック・ウィンドウ
と交わらないと言うことを証明することができる。従っ
て、直線130は自明にピック・ウィンドウの外側である
と断定することができる。同様にして、領域の点P3と
領域の点P4とを結ぶ直線132は常にピック・ウィンド
ウと交わるので、自明にピック・ウィンドウの内側であ
ると認定される。点P5とP6、P7及びP8をそれぞれ結ぶ直
線134、136及び138は、単にこれらの直線の始点の領域
と終点の領域のみに基づいて各直線が自明に内側ではな
いとか、自明に外側ではないとかを判定することはでき
ないと言う情況を示している。点P5とP6を結ぶ直線134
は明らかにピック・ウィンドウを通らないが、点P5とP7
を結ぶ直線136はピック・ウィンドウを通る。従って、
領域ととの間を結ぶ全ての線について概括すること
は不可能である。これらの領域を結ぶ直線については更
に詳細に分析しなければならない。
直線がピック・ウィンドウを通るか否かを判断するた
めには、組合せ論理を用いて直線の端点のアウトコード
が結合され、これに基づいて判断がなされる。ベクトル
は、下記の条件(判断基準)が満たされる場合、自明に
内側である。
a.第1の点PIまたは第2の点PIIのアウトコードが‘000
0'であるか、または b.PI及びPIIのアウトコードが、Xを任意の値として、
共に‘00XX'であるか、または c.PI及びPIIのアウトコードが、Xを任意の値として、
共に‘XX00'である。
第1の点PIと第2の点PIIのアウトコードの論理積AND
が‘0000'でなければ、ベクトルは自明に外側である。
ベクトルがこれらの何れの基準をも満たさない場合に
は、自明に内側であると認定するか、自明に外側である
として拒絶するかを判断するため更に分析を行う必要が
ある。このようにして、直線130は、アウトコードの論
理積ANDが‘0000'に等しくないから、自明に外側と判断
される。直線132は、点PIとPIIのアウトコードが共に
‘XX00'であるから、自明に内側である。直線134、136
及び138は上記のどの基準をも満たしていない。
上記のような非自明の場合は、端点によって定まる直
線の実際の経路について検討しなければならない。第1
の点PIを(X1,Y1)とし、第2の点PIIを(X2,Y2)とす
るならば、ピック検出ロジック112は下記の直線の方程
式を評価しなければならない。
(y−Y1)−M(x−X1)=0 Mは2つの点PI,PIIを結ぶベクトルの傾きであり、x,
yは直線上の点を表す変数である。上式において、傾き
Mに直線の両端点の座標値を代入すると下記の方程式を
得ることができる。
(y−Y1)(X2−X1)−(Y2−Y1)(x−X1)=0 この直線と、ピック・ウィンドウの2つの頂点との相
対的関係を調べることにより、この直線がピック・ウィ
ンドウの内側にあるか否かを判断することができる。こ
の判断方法には様々なやり方が考えられる。例えば次の
ようなやり方がある。
上記の通り、上式のx,yは直線上の任意の点を表す変
数である。もちろん、x及びyに任意の値を入れても、
点(x,y)が必ずこの直線上に乗る訳ではなく、直線上
に乗らない場合は方程式の値は0とはならずに、点(x,
y)が上記両端点を結ぶベクトルのどちら側にあるかに
よってある正の値または負の値となる。従って、(X1,Y
1)と(X2,Y2)を結ぶ直線がピック・ウィンドウと交わ
るか否かの判断に関しては、ピック・ウィンドウの2つ
の頂点の座標値を指定された方程式に代入し、その結果
を分析することにより吟味することができる。例えば、
第4図において、点140と点142の値、即ち(Xmin
Ymax)と(Xmax,Ymin)を代入することにより、この直
線がピック・ウィンドウの内側にあるか否かを判断する
ことができる。一例として第4図の点P1とP2″を結ぶ直
線144について上記直線の方程式の吟味を行うと、ピッ
ク・ウィンドウの2つの頂点のうち一方は符号が正とな
り、他方は負となる。2つの頂点の座標値を代入した結
果の符号が互いに逆になると言うことはその直線がピッ
ク・ウィンドウを通っていると言うことを示す。直線14
6または148について上記の評価を行うと、2つの符号が
共に正かまたは共に負となり、これによってそれらの直
線はピック・ウィンドウを通らないから拒絶すべきであ
るという指示が得られる。
この他にも、次のような調べ方がある。すなわち、直
線PIPIIの一方の端点、例えばPIからピック・ウィンド
ウの2つの頂点のそれぞれに向かう2つの直線を考え
て、これらの直線の傾きM1及びM2と、直線PIPIIの傾き
Mとを比較することである。M1<M<M2(叉はM2<M<
M1)であれば、直線PIPIIはピック・ウィンドウの内側
にあり、そうでなければ(例えば、M<M1<M2)直線PI
PIIはピック・ウィンドウの内側にはないと判断する。
また次のような調べ方もある。直線PIPIIと、ピック
・ウィンドウの2つの頂点を結ぶ直線とが交わるかどう
かを調べることにより、これらの直線が交わっていれ
ば、直線PIPIIがピック・ウィンドウの内側にあるもの
と判断する方法である。
いずれの調べ方にせよ、これらの方法の本質は吟味す
べき直線と、ピック・ウィンドウの2つの頂点との相対
的関係を調べることにより、この直線がピック・ウィン
ドウの内側にあるか否かを判断することである。
従って、第4図において直線146叉は直線148のよう
に、ピック・ウィンドウの2つの頂点140及び142がいず
れもこれらの直線の下側叉は上側にあれば、ピックなし
と判断され、直線144のように、ピック・ウィンドウの
2つの頂点がちょうどその直線に対して上側と下側にそ
れぞれ存在する場合には、ピックありと判断される。
直線の方程式の吟味に用いる2つの点(ピック・ウィ
ンドウの頂点)は各直線の始点たる第1の点が存在する
領域によって決まる。即ち、頂点の選択は下表に従って
行われる。領域 非自明方程式の吟味用に選択される頂点 (Xmax,Ymax)と(Xmin,Ymin) (Xmax、Ymax)と(Xmin,Ymax) (Xmin,Ymax)と(Xmax,Ymin) (Xmin,Ymax)と(Xmin,Ymin) (Xmax,Ymax)と(Xmax,Ymin) (Xmin,Ymax)と(Xmax,Ymin) (Xmax,Ymin)と(Xmin,Ymin) (Xmax,Ymax)と(Xmin,Ymin) 非自明ピック処理において解決しなければならない最
後の問題として、ピック・ウィンドウが例えばポリゴン
によって完全に取り囲まれている場合にそのことをどの
ようにして識別するかと言う問題がある。即ち、第5図
に示すように、ピック・ウィンドウ150の周囲がポリゴ
ン152によって完全に取り囲まれているような場合であ
る。上に述べたような直線方程式の吟味では、ポリゴン
152のどの辺もピック・ウィンドウ150を通らないので、
ポリゴン152の合致あるいはピックは検出されない。こ
の場合、合致あるいはピックの有無は、ピック・ウィン
ドウの1つの頂点から任意の方向に向けて無限に延びる
直線を吟味することによって判断される。第5図におい
ては、ピック・ウィンドウ150の頂点(Xmax,Ymax)か
ら右方へ直線154が引かれている。そして、この直線154
がリゴン152と交わる回数(交差回数)を計数すること
により、合致が起こっているか否かの判断がなされる。
この実施例においては、ピック検出ロジック112により
処理された各ポリゴン・ベクトル毎に、上記の直線の交
差(ピック・ウィンドウとの交わり)が吟味される。ポ
リゴン開始(begin polygon)命令が出されると、まず
この吟味モードがセットされる。アウトコードが吟味さ
れ、ポリゴン交差ビットが合致の有無によって‘0'また
は‘1'にトグルされる(toggled)。ポリゴン終了(end
polygon)命令が入力された時、合致が起こっていなけ
れば、上記の最後に述べた直線のポリゴン交差が吟味さ
れる。この例の場合(第5図)、直線154はポリゴン152
の辺と1回だけ交わり、ピック・ウィンドウ150が完全
にポリゴン152の内側にあると言うことを示している。
一般に、交差回数が奇数の場合、合致またはピックが起
こっていると言うことを示し、偶数は合致またはピック
が起こっていないと言うことを示す。
第6図は、本発明によるシステムの全体的論理処理の
流れを示すフローチャートである。図示のシステムは、
先ず次回のアウトコードを演算する(ステップ160)。
(この論理システムは一回(1サイクル)に1つの頂点
の処理を行い、最初のアウトコードについては吟味を実
行することができない。吟味処理は全て今回と前回の頂
点を対象に行われる。)今回と前回のアウトコードが吟
味され、自明に内側(ピック自明)または自明に外側
(ノー・ピック自明)の条件の有無が判断される(ステ
ップ162)。これらの自明か否かの吟味の結果が何れも
真でない場合、制御はステップ164へ移り、非自明な直
線方程式の吟味が実行される。ステップ162で自明条件
が存在すれば、制御はステップ166へ移り、自明に内側
と自明に外側のどちらの条件が生じているのかの判断が
行われる。自明に外側であれば、制御はアウトコードの
演算(ステップ160)へ戻る。自明に内側であれば、制
御はステップ168へ進み、パイプラインを停止させると
共に、グラフィックス制御プロセッサに割込みをかけて
ピックを処理させる。同様にして、非自明な直線方程式
の吟味(ステップ164)の結果はステップ170へ送られ、
非自明ピックが起こっているか否かが判断される。非自
明ピックが起こっていなければ、制御はステップ160へ
戻り、非自明ピックが検出された場合、制御はやはりス
テップ168へ進む。グラフィックス制御プロセッサが割
込みを処理し終えると、ピック検出ロジックにおける割
込みをクリアさせ、パイプラインを再スタートさせるコ
マンドが送出される(ステップ172)。
本発明による上記のピック検出ロジックを実行させる
ためのハードウェア・システムの一実施例の構成を第7
図に詳細に示す。ピック検出ロジックの入力はピック・
ウィンドウ境界値Xmin、Xmax、Ymin、Ymax、ベクトルの
第1の点の前回のx及び前回のyの値、及びベクトルの
第2の点を表す今回のxの値及びyの値である。ピック
・ウィンドウ境界値はピック検出レジスタに記憶され、
前回のx及びyの値はパイプライン・レジスタに記憶さ
れる。
アウトコードは、図の左側に示す回路群により演算さ
れる。減算装置180は(x−Xmin)または(y−Ymin
を計算し、その結果の符号を次段へ送る。同様に、減算
装置184は(Xmax−X)または(Ymax−y)を計算す
る。マルチプレクサ182及び186は上記の減算プロセスの
ための適切なウィンドウ座標を選択する。x及びyの値
はパイプライン・レジスタによって交互にピック検出ロ
ジック112へ送られるので、1つの点(x,y)を演算する
ためには2処理サイクルが必要である。減算装置180に
より実行される減算の結果は、今回のxの場合は「左」
レジスタ188に入れられ、今回のyについては「下」レ
ジスタ190に入れられる。同様に、減算装置184による演
算結果は「右」レジスタ192及び「上」レジスタ194に入
れられる。これら4つのレジスタの内容がアウトコード
を表す。アウトコード分析ロジック196は上記の論理規
則を適用して自明に内側または自明に外側の条件の有無
を判断する。アウトコード分析ロジック196は、ピック
・ウィンドウがポリゴンによって取り囲まれているかど
うかを判断するためのポリゴン分析をも実行する。アウ
トコード分析ロジック196は、トグル式のポリゴン参照
ビット198、自明/非自明信号200及び自明ピック/拒絶
信号202を出力する。
非自明条件が存在する場合は、非自明ピックを検出す
るために図示の論理システムの右側の部分を用いて直線
の傾きが演算される。減算装置204はマルチプレクサ206
及び208の選択するところにより(今回のx−前回の
x)、または(今回のy−前回のy)の減算を行う。減
算装置210はマルチプレクサ212及び214によって選択さ
れる適切なピック・ウィンドウ座標値から適切な前回の
x値または前回のy値を減算する。これらの減算結果は
乗算器216によって乗算され、その結果はレジスタ218、
220、222、または224の中の適切なレジスタに記憶され
る。この処理ロジックは、非自明ピックが起こっている
か否かを判断するのに必要な4つのレジスタにデータを
入れるのに4サイクルが必要とする。最初の2つの処理
サイクルはアウトコード分析ロジック196によるx及び
y値の処理と同時に行われる。アウトコード処理ロジッ
ク196によって非自明条件の存在が知らされると、パイ
プラインは停止され、ピック検出ロジックはさらに2サ
イクル動作して、他の2つの演算を完結する。4つのレ
ジスタ218乃至224に全てデータが入れられると、減算装
置226及び228がこれらのレジスタの内容をそれぞれ減算
し、それらの減算結果がXOR回路230により排他的論理和
処理されて、非自明ピックまたは拒絶信号が導出され
る。マルチプレクサ232は適切な値の信号を選択して、
割込み発生ロジック及びパイプライン制御ロジックへ供
給する。
本発明において上記と異なる回路を用いた実施例が可
能なことは明らかであろう。例えば、乗算器を減算回路
と共に別途に付加して、非自明条件に関する演算を2サ
イクルで行うようにすることも可能である。同様に、こ
の演算を1サイクルで実行するような論理システムを用
いることも可能である。
上記実施例においては、ピック自明の認定または拒絶
の演算は通常2サイクルで行われ、パイプラインの流れ
に割り込みをしない。処理の大半は、ピック条件なしで
行われるため、乗算器を付加した場合の演算のためにパ
イプラインが停止される頻度は極めて低い。
E.発明の効果 以上説明したように本発明によれば、各基本表示要素
の全ラスタ化または全描画を必要とせずにピック検出を
行うことができる。
【図面の簡単な説明】
第1図は本発明の一実施例のグラフィックス・ディスプ
レイ・システムのブロック図、 第2図は本発明で使用するピック・ウィンドウの説明
図、 第3図は本発明を説明するためのグラフィックス・ディ
スプレイ・スクリーンの説明図、 第4図は、本発明の一つの特徴を説明するためのピック
・ウィンドウの説明図、 第5図は本発明を説明するためのピック・ウィンドウが
ポリゴンにより囲まれた状態を例示する説明図、 第6図は本発明の一実施例のシステムにおける論理処理
の流れを示すフローチャート、 第7図は本発明の一実施例の装置のブロック図である。 100……システム制御プロセッサ、106……システム制御
プロセッサ、110……パイプライン・プロセッサ、112…
…ピック検出ロジック、114……ピクセル描画プロセッ
サ、116……ビデオ・ピクセル・メモリ、118……表示装
置(ディスプレイ・デバイス)、120,150……ピック・
ウィンドウ、152……ポリゴ、180,184……減算装置、18
2,186……マルチプレクサ、188,190,192,194……レジス
タ、196……アウトコード分析ロジック、204,210……減
算装置、206,208,212,214……マルチプレクサ、216……
乗算器、218,220,222,224……レジスタ、226,228……減
算装置、230……XOR回路、232……マルチプレクサ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】グラフィックス・ディスプレイ・システム
    によって表示装置上の画像中に表示される直線オブジェ
    クトのオペレータによる選択を検出する検出方法であっ
    て、 上記オペレータによる選択のための4つの頂点で定義さ
    れるオペレータ選択エリアを画定するピック境界を記憶
    するステップと、 上記ピック境界に対する直線オブジェクトの第1端点の
    関係を表す第1のコード化表示を得るステツプと、 上記ピック境界に対する上記直線オブジェクトの第2端
    点の関係を表す第2のコード化表示を得るステップと、 上記の第1のコード化表示と第2のコード化表示を論理
    結合するステップと、 上記の論理結合されたコード化表示を吟味して上記第1
    及び第2の端点を結ぶ直線が上記オペレータ選択エリア
    に対し自明に内側であるかまたは自明に外側であるかを
    判断するステツプと、 上記直線が上記オペレータ選択エリアの自明に内側の場
    合に合致事象の発生を知らせる信号を出すステップと、 上記の自明に内側か外側かの判断が不可能な場合に、続
    いて上記第1端点から見た角度が最大であるような上記
    オペレータ選択エリアの2つの頂点を選択するステップ
    と、 上記第1端点と上記第2端点とを結ぶ直線と、上記オペ
    レータ選択エリアの上記選択された2つの頂点とが所定
    の関係にある場合に、これを知らせる信号を出し、そう
    でない場合は処理を継続するステップと、 を有し、上記名ステップを上記画像中の全ての直線オブ
    ジェクトの各端点について繰り返すことを特徴とする検
    出方法。
  2. 【請求項2】上記第1及び第2のコード化表示が、各ビ
    ツトが上記ピック境界との関係を表す4ビットの2進コ
    ードよりなることを特徴とする請求項(1)記載の検出
    方法。
  3. 【請求項3】上記の論理結合されたコード化表示を吟味
    するステツプが、 その論理結合されたコード化表示を吟味し、上記の論理
    結合されたコード化表示の全てのビツトが0である以外
    の場合に、自明に外側の条件の存在を知らせる信号を出
    すステップと、 全てのビットが0である場合に、上記第1及び第2のコ
    ード化表示を吟味するステップと、 そのどちらかのコード化表示の全てのビツトが0である
    場合に、自明に内側の条件の存在を知らせる信号を出
    し、上記の両方のコード化表示の前の方の2ビツトが共
    に0であるか、または後の方の2ビットか共に0である
    場合に、自明に内側の条件の存在を知らせる信号を出
    し、そうでない場合に非自明条件の存在を知らせる信号
    を出すステツプと、 よりなることを特徴とする請求項(2)記載の検出方
    法。
  4. 【請求項4】複数のグラフィックス命令により表示装置
    上に生成される画像中に表示される直線オブジェクトの
    オペレータによる選択を検出するための検出装置であっ
    て、 オペレータが上記画像内に4つの頂点で定義されるオペ
    レータ選択エリアを画定するピック境界を指定するため
    の第1オペレータ位置指示手段と、 第1次元及び第2次元における上記4つの頂点の座標を
    記憶するための第1メモリ手段と、 上記グラフィック命令を記憶するための第2メモリ手段
    と、 上記グラフィックス命令をデコードして直線オブジェク
    トの第1及び第2の端点座標情報を転送する第1処理手
    段と、 上記第1処理により転送された端点座標情報に対して図
    形変換を実行する第2処理手段と、 上記の図形変換された上記第1及び第2の端点の上記オ
    ペレータ選択エリアに対する関係を示すコード化表示を
    生成する第1論理手段と、 上記第1の端点より得られる第1コード化表示と上記第
    2の端点より得られる第2コード化表示とを論理結合す
    る第2論理手段と、 上記第2論理手段により論理結合されたコード化表示が
    自明ピックを示している場合は合致信号を発生し、上記
    論理結合されたコード化表示を自明に評価することがで
    きない場合は非自明信号を発生する第3論理手段と、 上記第3論理手段により上記非自明信号が発生されたこ
    とに応答して、上記第1の端点と上記第2の端点とを結
    ぶ直線を、上記第1の端点から見た角度が最大であるよ
    うな上記オペレータ選択エリアの2つの頂点を通る直線
    に関して評価する第4論理手段と、 上記第4論理手段による評価を吟味して、上記第1の端
    点と第2の端点とを結ぶ直線が上記オペレータ選択エリ
    アと交わる場合ピック信号を発生する第5論理手段と、 を具備したことを特徴とする検出装置。
JP2269680A 1989-10-23 1990-10-09 オブジエクトの選択を検出する方法及び装置 Expired - Lifetime JPH0827846B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/425,777 US5208909A (en) 1989-10-23 1989-10-23 Pre-drawing pick detection in a graphics display system
US425777 1989-10-23

Publications (2)

Publication Number Publication Date
JPH03242768A JPH03242768A (ja) 1991-10-29
JPH0827846B2 true JPH0827846B2 (ja) 1996-03-21

Family

ID=23687990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2269680A Expired - Lifetime JPH0827846B2 (ja) 1989-10-23 1990-10-09 オブジエクトの選択を検出する方法及び装置

Country Status (3)

Country Link
US (1) US5208909A (ja)
EP (1) EP0425179A3 (ja)
JP (1) JPH0827846B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282676A (ja) * 1990-03-30 1991-12-12 Hitachi Ltd 情報検索方法
US5475810A (en) * 1991-02-20 1995-12-12 Oki Electric Industry Co., Ltd. Pie chart processing method and processor
JP3170279B2 (ja) * 1991-10-10 2001-05-28 ヒューレット・パッカード・カンパニー グラフィックスシステムにおけるイメージ位置の解釈
FR2683648B1 (fr) * 1991-11-12 1996-12-13 Apple Computer Procede de choix d'objets dans une sequence d'images mobiles et piste d'essai de reussite correspondante.
DE69333096T2 (de) * 1992-04-15 2004-02-12 Xerox Corp. Vorrichtungen und Verfahren zum graphischen Zeichnen und Ausgabe
US5357603A (en) * 1992-06-15 1994-10-18 Microsoft Corporation Method and system for changing a shape type while maintaining existing graphic characteristics
US5305431A (en) * 1992-08-18 1994-04-19 International Business Machines Corporation Method and system for rendering polygons on a raster display
US5455897A (en) * 1993-03-08 1995-10-03 The University Of Western Ontario Polygon and polyline clipping for computer graphic displays
JP3594309B2 (ja) * 1993-09-28 2004-11-24 株式会社ナムコ パイプライン処理装置,クリッピング処理装置,3次元シミュレータ装置及びパイプライン処理方法
US5491494A (en) * 1993-11-19 1996-02-13 International Business Machines Corporation Pick correlation
US5748946A (en) * 1995-02-17 1998-05-05 International Business Machines Corporation Method and apparatus for improved graphics picking using auxiliary buffer information
US5727141A (en) * 1995-05-05 1998-03-10 Apple Computer, Inc. Method and apparatus for identifying user-selectable regions within multiple display frames
US5720019A (en) * 1995-06-08 1998-02-17 Hewlett-Packard Company Computer graphics system having high performance primitive clipping preprocessing
US5949440A (en) * 1996-04-30 1999-09-07 Hewlett Packard Compnay Method and apparatus for processing graphics primitives in multiple modes using reconfigurable hardware
US6003098A (en) * 1996-04-30 1999-12-14 Hewlett-Packard Company Graphic accelerator architecture using two graphics processing units for processing aspects of pre-rasterized graphics primitives and a control circuitry for relaying pass-through information
US6052129A (en) * 1997-10-01 2000-04-18 International Business Machines Corporation Method and apparatus for deferred clipping of polygons
US6642940B1 (en) * 2000-03-03 2003-11-04 Massachusetts Institute Of Technology Management of properties for hyperlinked video
US6906823B1 (en) 2000-05-15 2005-06-14 International Business Machines Corporation Input interface for a raster object memory in a method, system and program
WO2003036512A1 (en) * 2001-10-25 2003-05-01 Xinics, Inc. An apparatus and method for displaying visual information on a moving picture
US8438199B1 (en) 2009-09-10 2013-05-07 Bentley Systems, Incorporated System and method for identifying and highlighting a graphic element
US8681182B2 (en) 2011-04-19 2014-03-25 Deluxe 3D Llc Alternate viewpoint rendering
US20150084952A1 (en) * 2013-09-23 2015-03-26 Nvidia Corporation System, method, and computer program product for rendering a screen-aligned rectangle primitive

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63143675A (ja) * 1986-12-05 1988-06-15 Mitsubishi Electric Corp 直線のピツク方式
JPS63163584A (ja) * 1986-12-25 1988-07-07 Agency Of Ind Science & Technol クリツピング処理方式
JPH01213762A (ja) * 1988-02-20 1989-08-28 Matsushita Electric Ind Co Ltd 線分描画のクリッピング装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3889107A (en) * 1972-10-16 1975-06-10 Evans & Sutherland Computer Co System of polygon sorting by dissection
DE3480811D1 (de) * 1984-03-23 1990-01-25 Ibm Interaktives anzeigesystem.
CA1264878C (en) * 1986-01-21 1990-01-23 GENERATION OF CIRCLES AND ELLIPSES IN A GRAPHIC SYSTEM
US4941111A (en) * 1986-04-18 1990-07-10 Advanced Micro Devices, Inc. Video picking and clipping method and apparatus
JPS63245576A (ja) * 1987-03-31 1988-10-12 Toshiba Corp 面図形クリツプ回路
US5012433A (en) * 1987-04-27 1991-04-30 International Business Machines Corporation Multistage clipping method
JP2726994B2 (ja) * 1987-06-04 1998-03-11 富士通株式会社 多角形領域選択方法
US4958305A (en) * 1987-11-04 1990-09-18 General Electric Company Polygon edge clipping
US4939672A (en) * 1987-11-09 1990-07-03 Tektronix, Inc. Method and apparatus for classifying graphics segments to facilitate pick and display operation
US4982345A (en) * 1989-01-23 1991-01-01 International Business Machines Corporation Interactive computer graphics display system processing method for identifying an operator selected displayed object

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63143675A (ja) * 1986-12-05 1988-06-15 Mitsubishi Electric Corp 直線のピツク方式
JPS63163584A (ja) * 1986-12-25 1988-07-07 Agency Of Ind Science & Technol クリツピング処理方式
JPH01213762A (ja) * 1988-02-20 1989-08-28 Matsushita Electric Ind Co Ltd 線分描画のクリッピング装置

Also Published As

Publication number Publication date
EP0425179A3 (en) 1992-04-01
US5208909A (en) 1993-05-04
EP0425179A2 (en) 1991-05-02
JPH03242768A (ja) 1991-10-29

Similar Documents

Publication Publication Date Title
JPH0827846B2 (ja) オブジエクトの選択を検出する方法及び装置
US5528737A (en) Processor-based method for rasterizing polygons at an arbitrary precision
US6049756A (en) System and method for avoiding collision between vector and solid objects
US5613052A (en) Method and apparatus for clipping and determining color factors for polygons
EP0279297B1 (en) Pattern contours in image processing
JP3066599B2 (ja) コンピュータ出力表示装置で表示するための多角形をクリップする方法
JP2007528529A (ja) 3dデータ集合のサーフェスを識別するための方法及びシステム(「ボクセル分割」)
KR20110093404A (ko) 3차원 그래픽스 랜더링 장치 및 그 방법
JP2020106966A (ja) 物体認識装置および物体認識方法
EP3916355A1 (en) Method and apparatus for indoor localization, electronic device, storage medium and computer program
US20030085879A1 (en) Method and apparatus for determining relative movement in an optical mouse using feature extraction
JPS63123165A (ja) カーソルと表示エンテイの相関方法
JPS60202482A (ja) 境界づけされた領域を識別する方法
US5268997A (en) Computer graphic system for detecting interference between adjacent graphic elements
US5202671A (en) Pick function implementation in a parallel processing system
US5353394A (en) Edge list constructor for digital image processor
JPS63123166A (ja) カーソルとエンテイテイの相関方法
US6683607B1 (en) Method for displaying three-dimensional objects and a computer-readable storage medium storing a program for achieving the same
JPH04291685A (ja) クリップ・テスタ回路及びクリップ・テスト方法
US5491494A (en) Pick correlation
US5563990A (en) Method and apparatus for processing a pick event
CN111932689A (zh) 一种采用id像素图的三维对象快速选取方法
US20050007363A1 (en) Z-buffer based interpenetrating object detection for antialiasing
JP2517531B2 (ja) ステレオ画像を用いた姿勢検出装置
CN114546555B (zh) 一种基于空间几何的图形拾取方法、装置及介质