JP2726994B2 - 多角形領域選択方法 - Google Patents

多角形領域選択方法

Info

Publication number
JP2726994B2
JP2726994B2 JP62140374A JP14037487A JP2726994B2 JP 2726994 B2 JP2726994 B2 JP 2726994B2 JP 62140374 A JP62140374 A JP 62140374A JP 14037487 A JP14037487 A JP 14037487A JP 2726994 B2 JP2726994 B2 JP 2726994B2
Authority
JP
Japan
Prior art keywords
area
polygon
region
point
polygonal
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 - Fee Related
Application number
JP62140374A
Other languages
English (en)
Other versions
JPS6486278A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP62140374A priority Critical patent/JP2726994B2/ja
Publication of JPS6486278A publication Critical patent/JPS6486278A/ja
Application granted granted Critical
Publication of JP2726994B2 publication Critical patent/JP2726994B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Description

【発明の詳細な説明】 〔概要〕 本発明は多角形領域と矩形領域とが交わるか否かを判
断する場合に、一旦当該多角形領域に当該矩形領域が包
含される可能性があるか否かを判断した後に、矩形領域
と多角形領域との包含関係を判断するようにしているた
め、包含の可能性がない場合には矩形領域と多角形領域
との包含関係を判断する必要がなく、また包含の可能性
がある場合には、包含関係の判断が容易となり処理手順
が簡略化されることになる。 〔産業上の利用分野〕 本発明は図形処理システムの多角形領域選択方法に係
り、特に複数の頂点(xi,yi)(ただし0≦i<n、n
は正の整数)によって定義される多角形領域が矩形領域
と交わるか否かを判断し、交わる場合には当該多角形領
域を複数の多角形領域の中から選択する多角形領域選択
方法に関する。 〔技術の背景〕 本発明は、例えばCAD等の図形処理システムで図形を
作成する操作過程において、対話的に画面上の図形を選
択して、移動・拡大・縮小等の図形編集をする際に図形
選択(ピック)を行う場合に使用するもので、第5図に
示すように複数の多角形領域の図形の中の多角形領域51
を矩形領域であるピック領域2と交差させることにより
選択する方法である。 図形処理を高速に行う場合にはピック領域2と画面上
の図形が交わるか否かを高速に判断する方法が必要とさ
れる。図形選択の速度は特にオペレータの生産性に関係
があり、より高速化することが要求されている。 〔従来の技術〕 従来、多角形領域1の選択方法は、第18図に示すよ
うに多角形領域1を定義している座標系の1単位ごとに
水平線分に分解し、多角形領域で区切られた水平線分毎
に、矩形をした領域としてのピック領域2と交わるか否
かを判断して、一本でもピック領域2と交わる水平線分
がある場合には、多角形領域1はピックされ、一本も交
わらない場合はピックされないという方法によって多角
形領域1のピック判断を行っていた。 以下に、簡単に多角形領域1の水平線分への分解方法
を示す。 多角形領域1を第18図のように水平線分に分解する
には、第18図に示すように多角形のY座標の最大
値、最小値の範囲でYの最大値から開始してYの値が減
少する方向へ、かつ左から右へスキャンするスキャン・
ラインを考える。 スキャン・ラインと多角形との交点を求めることによ
り、多角形領域1を1スキャン・ライン毎に水平線に分
解する。交点を求めるには予め多角形の辺をYの最大値
の順に分類しておくことによって多角形のすべての辺と
の交点を比べる必要はなく、同図に示すように辺の両
端点がスキャン・ラインをまたいでいる辺についてだけ
調べれば良い。次に、求めた交点をXの最小値の順に分
類し、小さい順に2点ずつ組にしたものが水平線分の両
端点となる。また同図に示す場合には水平線分は二
つに分割されることになる。 〔発明が解決しようとする問題点〕 ところで、従来では多角形領域1を選択(ピック)す
る場合、定義されているすべての多角形領域1を各々水
平線分に分解し、次にその分解した線分についてピック
領域と交わるか否かの判断を行うことにより選択を行っ
ていた。しかし、図形処理システムでは、通常ピック領
域の大きさは図形が定義されている座標系の大きさに比
べて、非常に小さく(面積比率で1/10000以下が普
通)、定義されている図形の数は二万個を越えるのが普
通である。これは同時に重複して選択しないためであ
る。したがって、オペレータはこれらの図形のうち1つ
を編集するために選択するのであるから、ほとんど図形
は選択されない。そのため、ほとんどの多角形領域1の
水平線分への分解は無駄である。そして、従来の方法で
多角形領域1がピックされないと判断するには、分解し
たすべての水平線分がピック領域2と交わらないことを
判断しなければならず多大な処理時間を要するという問
題点を有していた。 また、多角形領域1の水平線分への分解処理も多角形
の辺のソーティング、辺とスキャン・ラインとの交点計
算、交点のソーティングのためのテーブルが必要なため
処理可能な多角形領域1の頂点数に制限ができてしまう
という問題点をも有していた。 そこで、本発明は以上の問題点を解決するためになさ
れたものであり、処理時間の短い図形処理上の多角形領
域選択方法を提供することを目的としてなされたもので
ある。 〔問題点を解決するための手段〕 本発明は以上の問題点を解決するためになされたもの
であり、本発明は、画面上に表示された多角形領域を選
択手段により選択する際に、メモリに格納された多角形
領域の辺、又は辺の中点を新たな始点若しくは終点とす
る交差の可能性がある辺列、の始点及び終点が、選択手
段が指定する矩形領域の境界若しくはその延長線によっ
て区分される9つの領域のいずれかに属するかを判断
し、その属する領域に設定された領域符号に基づいて、
前記多角形領域の少なくとも1つの辺と選択手段が指定
する領域とが交わるか否かを判断し、交わると判断され
ると当該多角形領域を選択し、交わらないと判断される
と、メモリに格納された多角形領域又は多角形領域を包
含する最小矩形領域を構成する全辺の前記領域符号に基
づいて、前記選択手段が指定する矩形領域が前記多角形
領域に包含される可能性があるか否かを判断し、包含さ
れる可能性がある場合には、前記多角形領域の少なくと
も1つの辺、又は辺の中点を新たな始点若しくは終点と
する包含の可能性がある辺列、の始点及び終点が、選択
手段が指定する矩形領域の頂点から該頂点を通る境界線
の一方の延長線上に沿った半直線領域及び前記頂点を通
る該選択手段の矩形領域の境界の延長線によって区分さ
れる4つの領域のいずれかに属するかを判断し、その属
する領域に対して設定された内外符号に基づいて、前記
矩形領域が前記多角形領域に包含されるか否かを判断
し、包含されていると判断された場合には当該多角形領
域を選択するものである。 ここで、前記選択手段とは、ポインティング・デバイ
スであって、例えば、スタイラスペン及びタブレットで
ある。 〔作用〕 本発明では、ステップS1で選択手段が指定する領域が
多角形領域を形成する少なくとも1つの辺と交わるか否
かを判断する。 ここで、選択手段が指定する領域とは複数の多角形領
域の中から多角形領域を重複して選択しないように多角
形領域よりも十分小さい領域であって形状及び大きさの
定められているものであり、例えば、矩形領域等があ
る。選択手段が指定する領域と多角形領域との主要な位
置関係は第2図に示すように4通りある。(選択手段が
指定する領域が逆に多角形を包含する位置関係は、選択
手段が指定する領域が多角形領域より十分小さいと仮定
する場合には除外される)。第2図の場合は多角形の
辺が選択手段が指定する領域と交わる場合を示す。同図
の場合には多角形の辺が選択手段が指定する領域と交
わらず頂点の位置が矩形領域を包含できる位置にない場
合を示す。同図の場合には多角形領域が選択手段が指
定する領域を包含する場合を示している。 同図の場合には多角形領域の頂点は選択手段が指定
する領域を包含する位置にあるが包含していない場合を
示す。 ステップS1で選択手段が指定する領域が多角形領域を
形成する少なくとも1つの辺と交わると判断された場合
()にはステップS2で当該多角形領域を選択する。 交わらない場合には,,の3通りが考えられ
る。そこで、ステップS3において選択手段が指定する領
域が前記多角形領域に包含される可能性があるか否かを
判断する。そのためには例えば第2図の点線で示すよう
に当該多角形領域を包含する最小矩形領域内等の所定の
領域内に前記選択手段が指定する領域が包含されるか否
かを判断する。ここで、「所定の」とは、当該領域内に
選択手段が指定する領域が包含される場合には多角形領
域内に選択手段が指定する領域が包含される可能性があ
るが、当該領域内に選択手段が指定する領域が包含され
ない場合には多角形領域内に選択手段が指定する領域が
包含される可能性がないようなものであって、選択手段
が指定する領域の包含の可能性を容易に判断することが
できるという意味である。 の場合にはステップS4で当該多角形を選択しない。 一方、選択手段が指定する領域が多角形領域内に存在
する可能性がある場合、例えばに相当する場合であ
り、この2つの場合については、さらに区別する必要が
ある。 そこで、ステップS5において少なくとも選択手段が指
定する領域の1つの点が当該多角形領域内に存在するか
否かを判断する。 すなわち、選択手段が指定する領域と多角形領域とが
交わるか否かの判断は既になされており、現段階では選
択手段が指定する領域と多角形領域の辺とは交わること
はないので、ととを区別するには、選択手段が指定
する領域に属するすべての点が多角形領域内にあること
を判断する必要はなく、少なくとも1つの点が前記多角
形領域の域内に存在することを判断すれば十分である。 もし、当該多角形領域内に選択手段が指定する領域が
存在すると判断された場合にはの場合に相当するので
あるからステップS6で当該多角形領域を選択する。 また、当該多角形領域内に選択手段が指定する領域が
存在しないと判断された場合にはに相当する場合であ
るからステップS7で当該多角形領域を選択しない。 〔実施例〕 次に、本発明の実施例について説明する。 <実施例に係る機器構成> 本実施例に係る機器構成例として第3図に示すものが
ある。 本例では、例えばビットマップメモリ等の、図形処理
用の図形データを格納したメモリ30と、図形の表示を行
うCRT画面31と、オペレータがデータの入力を行うため
のキーボード32と、オペレータが当該画面31上の座標を
指定するためのポインティング・デバイス、例えばスタ
イラスペン33及びタブレット34と、CRT画面31上の表示
の制御を行うためのディスプレイ・プロセッサ装置35と
から構成されている。当該画面30上の座標、例えば、前
記ビットマップメモリ上のアドレスを指定することによ
って、第4図に示すようにその座標を中心とする矩形領
域としてのピック領域(本実施例では、中心から矩形領
域を定義するための矩形領域のX軸、Y軸方向の大きさ
は、予め設定されている)2と交わる多角形領域11(第
4図に示すように複数の頂点P1,P2,P3,P4,P5をこの順に
辺で結んだものである)が選択される。 <実施例に係る処理手順> 本実施例は大きく分けると、ステップS1に相当するピ
ック領域12が多角形(複数の頂点を有するとともに各頂
点からは2本ずつの辺が出ているものとする)領域11の
少なくとも1つの辺と交わるか否かを判断する処理a
と,ステップS3に相当する多角形領域11が矩形領域を包
含する可能性があるか否かを判断する処理bと、ステッ
プS5に相当する包含する可能性がある場合に前記矩形領
域またはその境界上の少なくとも1つの点が前記多角形
領域内に存在するか否かを判断する処理cとから構成さ
れている。 本実施例は第4図に示すような矩形領域を使用し、多
角形領域11として同図に示すようなものを考えることに
する。 <処理a> まず、前記ディスプレイ・プロセッサ装置35によるス
テップS1としての処理aについて述べる。処理aは第6
図乃至第8図に示すようにステップSJ1からステップSJ2
5までの手順で主として構成されている。 ステップSJ1において前記ディスプレイ・プロセッサ
装置35に与えられた機能によって当該多角形領域11の頂
点の数Nを判断し、c=0とおいて初期化する。ステッ
プSJ2において頂点の数Nが3以下であるか否かが判断
される。 頂点の数が3以上の場合には多角形を形成することに
なるのでステップSJ3へ進み、3以下の場合には多角形
を形成しないので選択は行われないことになり、そこで
処理は終了する。 ステップSJ3においては多角形領域11の第1頂点を始
点とする。 ステップSJ4において多角形領域の始点の領域符号、
即ち多角形領域の境界を示す辺の位置情報を求めてメモ
リのc1に代入する。 ここで、領域符号とは選択手段が指定する領域の位置
情報に相当するものであって、第12図に示すようにピッ
ク領域12の矩形の各辺を延長し、当該矩形及び多角形領
域11の存在する平面を9個の領域に分割し、各領域に対
応させた4ビットの符号を言う。その際、多角形領域11
の各辺の両端点にはそれが属する領域の領域符号即ち、
多角形領域の境界を示す辺の位置情報が与えられる。当
該符号の各ビットは、当該ビットが1の場合は次のよう
な意味をもつ。尚、ピック領域12内については0000を対
応させる。 第1ビット:点はピック領域12の左端の縁より左方に
ある。 第2ビット:点はピック領域12の右端の縁より右方に
ある。 第3ビット:点はピック領域12の下端の縁より下方に
ある。 第4ビット:点はピック領域12の上端より上方にあ
る。 この領域符号を用いて、多角形の各辺の両端に符号を
対応させると、前記ディスプレイ・プロセッサ装置35は
第12図から明らかなように以下の条件によりピック領域
12と交わるか否かが決定される。 すなわち、 両端点の領域符号の論理積が0でない場合には交わ
らない。 どちらか一点の領域符号が0ならば交わる。 両端点の領域符号の論理和の第1ビットと第2ビッ
ト(左から数える;以下同じ)だけが1の場合は交わ
る。 両端点の領域符号の論理和の第3ビットと第4ビッ
トだけが1の場合は交わる。 もし、辺が上述のケース以外の場合は辺を中点で、
分割する方法によって判断する。 尚、前記ディスプレイ・プロセッサ装置35が多角形の
各辺の両端に領域符号を対応させる手順は第13図に示
す。 ステップSJ60において前記ディスプレイ・プロセッサ
装置35は領域符号を0として初期化する。ステップSJ61
において対象とする辺の端がピック領域12の左端の縁よ
り左方にあるか否かが判断される。左方にある場合には
ステップSJ62で領域符号を0001と置く。 ステップSJ63では対象とする多角形領域11の辺の端が
ピック領域12の右端の縁より右端にあるか否かが判断さ
れる。右端にある場合にはステップSJ64で領域符号に00
10が対応付けられる。 ステップSJ65で対象とする辺の端がピック領域12の下
端より下方にあるか否かが判断される。そうである場合
にはステップSJ66で領域符号と0100との論理和が取られ
る。 ステップSJ67で対象とする辺の端がピック領域12の上
端の縁より上方にあるか否かが判断される。そうである
場合にはステップSJ68に進み領域符号と1000との論理和
がとられる。 こうして、領域符号と各多角形の各辺との対応が取ら
れることになる。 さて、ステップSJ5において前記ディスプレイ・プロ
セッサ装置35はCに書き込まれた数値(現在は0)とc1
(現在は例えば始点が第12図の1010であるとする)との
論理和を取り(この場合には1010)改めてcに書き込
む。 ステップSJ7において頂点の数Nが0以上であるか否
かが判断される。0よりも小さい場合にはすべての頂点
について終了したのであるから処理bのステップSJ26に
進む。 ステップSJ7で前記ディスプレイ・プロセッサ装置35
はNが0以上の場合にはステップSJ8に進み、次の頂点
を終点とする。 ステップSJ9において前記ディスプレイ・プロセッサ
装置35は前述したような領域符号の規則に従って同様に
終点の領域符号(例えば0101とする)を求めc2に書き込
む。 ステップSJ10においては前記デイスプレイ・プロセッ
サ装置35はc1(現在は1010)の内容とc2(現在は0101)
の内容との論理和を取り(結果は1111)改めてcに書き
込む。これは後述する処理bで必要だからである。 ステップSJ11では前記ディスプレイ・プロセッサ装置
35c1(現在では1010)とc2(現在では0101)との論理積
を取り当該値が0であるか否かが判断される。 当該論理積が0でない場合には前記ディスプレイ・プ
ロセッサ装置35はより交わる可能性はないのでステッ
プSJ24に進み、現在対象としている辺の終点を新たな始
点として再び第6図のステップSJ6に戻る。 一方、ステップSJ11で前記ディスプレイ・プロセッサ
装置35は論理積が0の場合にはにより交わる可能性が
あるのでステップSJ12に進み、c1=0かまたはc2=0か
が判断される。c1=0またはc2=0の場合にはより多
角形領域11の当該辺の始点または終点の一方がピック領
域12内に存在することになり、当該多角形領域11は選択
されることになる。 また、ステップSJ12でc1=0またはc2=0でない場合
(現在の場合c1=1010,c2=0101)にはステップSI13に
進みc1とc2との論理和(現在の場合1111)が0011または
1100であるか否かが判断される。該当する場合には
より明らかなように交わるので当該多角形領域11を選択
する。前記ディスプレイ・プロセッサ装置35は該当しな
い場合にはステップSJ14に進む。これは、論理和が1111
の場合には第12図から明らかなように、必ずしも、多角
形の辺がピック領域12を横切るとは限らないからであ
り、により詳しい解析を必要とするからである。 そこで、この解析を行うために第7図に示すようにス
テップSI14では改めて始点を始点2と名付け、終点を終
点2と名付ける。 ステップSJ15において前記ディスプレイ・プロセッサ
装置35は当該始点2と終点2との中点を求める。 ステップSJ16においては中点の領域符号を第12図に示
す領域のどの領域に存在するかを求め存在する領域の領
域符号をc3に書き込む。 ステップSJ17でc1に書き込まれた始点2の領域符号と
c3に書き込まれた中点c3との論理積を取る。 もし、当該論理積の値が0の場合にはより始点2と
中点との間でピック領域12と交わる可能性があることに
なりステップSJ21に進み、0でない場合にはより始点
2と中点との間で交わらないので中点と終点との間でピ
ック領域12との交差を調べるためステップSJ18に進む。 前記ディスプレイ・プロセッサ装置35はステップSJ18
においてはc2(現在では0101)とc3との論理積が取られ
0か否かが判断される。0でない場合にはより中点と
始点だけでなく中点と終点との間においてもピック領域
12と交わる可能性はないので、当該辺に関する処理を終
了し、ステップSJ24に進んで当該辺の終点を始点とする
新たな辺についての処理に進む。 次に、ステップSJ18で終点2と中点との論理積が0の
場合には終点と中点との間でによりピック領域12との
交差の可能性が残っていることになりステップSJ19にお
いて終点2と中点とが同一の領域にあるか否かが判断さ
れる。同一の領域に存在する場合にはピック領域12と交
差の可能性はないのでステップSJ24に進む。もし、同一
の領域内に存在しない場合には終点2と中点との交差の
可能性があるのでステップSJ20に進み中点を新しい始点
2としてc3の値をc1へ書き込み再びステップSJ15に進み
同一の手順を繰り返して当該多角形の辺とピック領域12
との交差の可能性を追求する。 一方、ステップSJ17で始点2と中点との論理積が0の
場合にはより始点2と中点との間でピック領域12との
交差の可能性があるので前記ディスプレイ・プロセッサ
装置35はステップSJ21に進む。 ステップSJ21において前記ディスプレイ・プロセッサ
装置35によっては終点2と中点との間での論理積が取ら
れ論理積が0の場合にはピック領域12と交差するので当
該多角形領域11を選択して処理が終了する。 一方、ステップSJ21で論理積が0でない場合にはよ
り終点2と中点との間でピック領域12との交差の可能性
はないので、前記ディスプレイ・プロセッサ装置35によ
ってステップSJ22で始点2と中点とが同一の領域内に存
在するか否かが判断され、始点2と中点とが同一の領域
にある場合には当該辺については交差の可能性はないの
でステップSJ24に進む。もし、ステップSJ22で始点2と
中点とが同一の領域内に存在しないと判断された場合に
はまだピック領域12との交差の可能性があるので前記デ
ィスプレイ・プロセッサ装置35によってステップSJ23に
進み、中点を新しい終点2として中点の値であるc3の内
容をc2へ書き込んで再びステップSJ15に進み、交差の可
能性がなくなるまで以上の処理を繰り返す。 さて、ステップSJ24に進む場合は、始点と終点とは同
一の領域内に存在することになり、ピック領域12との交
差はあり得ないことになる。ステップSJ25において終点
の領域符号を書き込んだc2の内容をc1に書き込み、再び
ステップSJ6に進み次の第2頂点についての同様な処理
を行うことになる。 <処理b> 次に処理bについて説明する。 処理bは前記ディスプレイ・プロセッサ装置35によっ
て行われ、前述のステップS3に相当するものであって、
処理aによりピック領域12の矩形が多角形領域11と交わ
らないと前記ディスプレイ・プロセッサ装置35によって
判断された場合に前記多角形領域11がピック領域12を包
含する可能性があるか否かを判断する。 この処理のほとんどの部分は実際には処理aの中で行
われる。すなわち、処理aのステップSJ5及びステップS
J10に述べたように多角形領域11の各辺の始点と終点の
各領域符号を求めた順に順次論理和を取る。すると、ピ
ック領域12を囲むように選んだ頂点が存在する場合には
第12図の9つの各領域に対応付けた領域符号の論理和は
容易に1111であることが確められる。 したがって、第8図のステップSJ26において領域符号
の論理和が1111であるか否かを判断することにより、論
理和の4つのビットが全て1の場合には、多角形領域11
はピック領域12を包含する可能性があるので次の処理c
に進み、それ以外の場合にはピック領域12を包含する可
能性はないので処理を終了する。 <処理c> 次に本実施例に係る処理cについて説明する。 処理cとは前記ディスプレイ・プロセッサ装置35によ
って行われ、前述したようにステップS5に相当する手順
を意味するものであり、処理bで多角形領域11がピック
領域12を包含する可能性があることが確認された場合
に、実際に多角形領域11がピック領域12を包含するか否
かを判断するものである。 処理cは第14図に示すようにピック領域12内(境界も
含む)の一点である始点5から無限にのばした半直線13
(本実施例ではX軸に平行に負方向に延びている)が多
角形領域11の辺と何回交わるかを教えることにより行
う。すなわち、交わる回数が奇数回ならば第14図に示す
ように始点5は多角形領域11内に存在し、交わる回数が
偶数回の場合には始点5は多角形領域11の外に存在する
ことになる。以下処理cの処理手順を説明する。 処理cは第9図から第11図に示すようにステップSJ27
からステップSJ51に相当するものである。 ステップSJ27において、前記ディスプレイ・プロセッ
サ装置35は、処理bのステップSJ26で多角形領域11がピ
ック領域12を包含する可能性がある場合に当該対象とす
る多角形領域11の頂点数を数え、Nに書きこむととも
に、X=0と置く。 ステップSJ28において前記ディスプレイ・プロセッサ
装置35は当該多角形領域11の任意の頂点を第1頂点とし
て選択し始点とする。 ステップSJ29において前記ディスプレイ・プロセッサ
装置35は始点の内外符号を求めc1に書き込む。 ここで、内外符号とは第15図に示すようにピック領域
12上の例えば右下の頂点を始点としてX方向の半直線13
を設定し、当該始点を通るピック領域の辺を延長して平
面を5つの領域(半直線上も1つの領域とみなす)に分
割した場合に各領域に対応させた符号をいい、選択手段
が指定する領域の位置情報に相当する。内外符号は多角
形領域11がピック領域12を包含するか否かを判断する場
合に使用するものであり、ピック領域12内の一点から無
限にのばした半直線と多角形領域11の辺が何回交わるか
を教える際に使用する。 各領域に対応させた内外符号は3ビットの大きさをも
ち、多角形の辺の両端点にはそれが属する領域の内外符
号が与えられる。ただし、半直線13には内外符号として
000を対応させ、内外符号の各3ビットは各ビットが1
の場合、次のような意味を有する。 第1ビット;点が始点のX座標値より右方にある場合、
または始点を通る垂直方向の辺を延長して得られる直線
により2分された平面のうちピック領域12側にある平面
といっても良い 第2ビット:点が始点のX座標値より下方にある場
合、または始点を通る水平方向の辺を延長して得られる
直線により2分された平面のうちピック領域12側にない
平面といっても良い 第3ビット:点が始点のY座標値より上方にある場
合、または始点を通る水平方向の辺を延長してえられる
直線により2分された平面のうちピック領域12のある方
の平面といっても良い。 両端点の内外符号を求めた後、第15図から得られるよ
うに以下の条件により半直線13と、交わるか否かを決定
する。 すなわち、 両端点の内外符号の論理積が0でない場合は半直線
13と交わらない。 両端点の内外符号の論理和の第2ビットと第3ビッ
トだけが1の場合は半直線13と交わる。 少なくともどちらか一点の内外符号が0で両端点の
内外符号の論理和の第3ビットが1ならば半直線13と交
わり、そうでない場合は交わらない。 したがって、第17図に示す場合には交差の数は2回
であり、同図の場合には1回になり、同図のように
半直線13上に辺が存在する場合には両端点とも内外符号
が0であるので論理和は0であり半直線13上の辺は交差
の数にいれないものとみなす。 もし、辺が上述のケース以外の場合には線分を中点
で分割する方法により判断する、 この内外符号を5つの領域に対応させる手順は第16図
に示されている。 前記ディスプレイ・プロセッサ装置35はステップSJ70
で内外符号を初期化する。 前記ディスプレイ・プロセッサ装置35はステップSJ71
で領域が始点5より右にある場合には内外符号を001と
おき、始点5より左にある場合はステップSJ73に進む。
ステップSJ73で領域が始点5より下方にあるか否かが前
記ディスプレイ・プロセッサ装置35によって判断され下
方にある場合にはステップSJ74に進み、当該領域に前記
内外符号001と010との論理和をとる。 一方、ステップSJ73で始点が下方にない場合にはステ
ップSJ75に進み、前記ディスプレイ・プロセッサ装置35
によって始点5より上方にあるか否かが判断される。対
象とする領域が上方にある場合にはステップSJ76に進み
当該領域に前記内外符号001と100との論理和をとった内
外符号が対応付けられる。 さて、ステップSJ29において求められた始点の内外符
号はc1に書き込まれる。 ステップSJ30において頂点の数Nから1を引いた数N
−1がNに書き込まれる。 ステップSJ31で前記ディスプレイ・プロセッサ装置35
によってNが0以上であるか否かが判断される。Nが0
よりも小さい場合には多角形領域11の各辺についてのす
べての処理cが終了したので前記ディスプレイ・プロセ
ッサ装置35はステップSJ51に進みXの数が偶数か奇数か
が判断され処理を終了する。 Nが0以上の場合にはステップSJ32に進み当該多角形
の次の頂点を終点とする。 ステップSJ33において当該終点の内外符号をc2へ書き
込む。 ステップSJ34においてc1とc2との論理積が取られ0で
あるか否かが前記ディスプレイ・プロセッサ装置35によ
って判断される。前述したように0でない場合にはに
より当該辺は半直線と交わる可能性が全くないのでステ
ップSJ49に進み、終点を始点とし次の新たな辺について
の処理にとりかかる。ステップSJ50で前記ディスプレイ
・プロセッサ装置35によって終点の内外符号が格納され
ているc2の内容がc1に書き込まれ、再びステップSJ28に
戻り、前回よりも1だけ減少した頂点数N−1がNに書
き込まれて、当該始点に対して同様の処理がなされるこ
とになる。 一方、ステップSJ34でc1とc2の論理積が0の場合には
により当該辺と半直線とが交差する可能性があるので
ステップSJ35に進み、c1とc2との論理和が取られ、110
になるか否かが判断される。110になる場合は第15図ま
たはから明らかなように当該辺は必ず半直線と交わる
のでステップSJ48に進み半直線との交差回数Xが1増え
てX+1となり、ステップSJ49で当該辺の終点を始点と
した新たな辺の処理に取かかり、ステップSJ50で終点の
内容c2を始点の内容が格納されているc1に格納する。 また、ステップSJ35においてc1とc2との論理和が110
でない場合にはステップSJ36に進みc1=0であるかまた
はc2=0であるかが判断される。 c1=0またはc2=0である場合にはステップSJ37に進
み前記ディスプレイ・プロセッサ装置35によってc1とc2
との論理和が100であるか否かが判断される。 当該論理和が100の場合には及び第17図から明ら
かなように当該辺は半直線と交わるとみなしているので
ステップSJ48に進み交点の数Xが1増加し、それをXに
書き込み当該辺についての処理が終了する。 続いて、手順を次の辺についての処理に移行し、ステ
ップSJ49で終点を始点として、ステップSJ50において終
点の内外符号が格納されているc2の内容をc1に格納し再
びステップSJ39に進む。 また、前記ディスプレイ・プロセッサ装置35はステッ
プSJ37でc1とc2との論理和が100でない場合にはから
当該辺と半直線との交差は得ないので直ちに当該辺につ
いての処理を終了し、やはりステップSJ49に進む。 一方、ステップSJ34でc1とc2の論理積が0である場合
には、ステップSJ36でc1=0またはc2=0でない場合で
あっても、からまだ半直線と交わる可能性があり、
によりさらに詳しく調べるため前記ディスプレイ・プロ
セッサ装置35はステップSJ38に進み、始点を始点2とお
き終点を終点2とおく。 ステップSJ39において、前記ディスプレイ・プロセッ
サ装置35は辺(始点2〜終点2)の中点を求める。これ
は、辺を分割して前述した規則に帰着させるためであ
る。 前記ディスプレイ・プロセッサ装置35はSJ40において
中点の内外符号を求めc3に書き込む。 ステップSJ41においてc1とc3との論理積が取られ、0
の場合にはより始点と中点との間で半直線と交わる可
能性があるのでステップSJ45に進み、c2とc3との論理積
が取られる。c2とc3の論理積も0の場合にはステップSJ
36からc1とc2とが0ではないと判断されているのでc3が
0であり、対象とする辺は半直線と交わることになり前
記ディスプレイ・プロセッサ装置35はステップSJ48に進
み交差の数Xを1増加させてX+1としてXへ書き込
む。 一方、ステップSJ45でc2とc3の論理積が0でない場合
にはステップSJ46に進み、c2とc3とが同一の領域に存在
するか否かが判断される。 同一の領域にない場合というのは、例えば第15図ら明
らかなようにc1=010、c2=101、c3=100の場合であっ
てc1とc2の論理積は0であり、c1とc3との論理積は0で
あるが、c2とc3との論理積は0ではないので半直線と当
該辺は交わることになり前記ディスプレイ・プロセッサ
装置35はステップSJ48に進む。 しかし、ステップSJ46でc2とc3とが同一の領域内に存
在する場合には、第15図から明らかなように、例えばc1
が100でc2及びc3が011である場合には、当該辺は半直線
と交わる場合もあるが交わらない場合もあり詳しい解析
を行うため第11図のステップSJ47に進み当該中点c3を終
点に2としてc2に書き込んで再びステップSJ39に進み、
以上の手順を繰り返すことになる。 さて、第10図のステップSJ41でc1とc3との論理積が0
でない場合にはステップSJ42に進み、c2とc3との論理積
が0であるか否かが判断される。 当該積も0でない場合には、より現在対象としてい
る辺が半直線と交わる可能性が全くないので第11図のス
テップSJ49に進み、当該辺についての処理を終了し当該
辺の終点を新たに始点とする次の辺についての処理を開
始するため、ステップSJ50で前記ディスプレイ・プロセ
ッサ装置35は終点の内外符号を書き込んでいるc2の内容
をc1に格納して、再び第9図のステップSJ30に戻り以上
の手順を繰り返す。 もし、ステップSJ42でc2とc3の論理積が0であると判
断された場合にはステップSJ43に進みc1とc3(ステップ
SJ41で論理積は0でない)とが第15図に示した同一の領
域内に存在するか否かが判断される。同一の領域内にな
いと判断された場合には第15図から明らかなように、c1
が011でc2が100で、c3が010の場合または順序を換えた
ものに相当し、当該辺は半直線と交わるので前記ディス
プレイ・プロセッサ装置35はステップSJ48に進み、交差
の数Xが1増えることになり、第11図のステップSJ49に
進む。 一方、ステップSJ43で始点の領域と中点との領域とが
同一の場合にはステップSJ44に進み、中点を始点2とし
て、中点の内外符号を書き込んでいるc3の内容をc1に格
納してステップSJ39に進み再び同様な手順を繰り返す。
このようにして、以上の手順を繰り返すことにより、ス
テップSJ31において頂点の数Nが0以上でないと判断さ
れた場合には、ステップSJ51に進み、交差の数Xが奇数
か否かが判断され奇数の場合にはピック領域は対象とす
る多角形領域11内に包含されると判断され、当該多角形
領域11を選択(ピック)し、交差の数Xが偶数の場合に
は、ピック領域は対象とする多角形領域11内に包含され
ないと判断され当該多角形領域11は選択されないことに
なる。尚、第14図に交差の数と多角形領域との包含関係
の一例を示している。 本実施例では、矩形領域としてのピック領域が複数の
頂点を有する多角形領域と交わるか否かを判断する際
に、一旦多角形領域内に当該ピック領域12が包含される
可能性かあるか否かを判断し、包含される場合にのみピ
ック領域12が多角形領域11の内外にあることを判断す
る。その際、本実施例では対象とする辺と半直線13との
交差の数を数えることにより判断するようにしているた
め、少ない手順で確実にかつ高速にピック領域12と多角
形領域11との交差を判断することができる。 半直線の方向は必ずしもX軸に平行に負方向に限られ
ず、正方向または他の方向であっても良い。 尚、本実施例では矩形領域が多角形領域と交わるか否
かを判断したが、必ずしも矩形に限られることなく、例
えば三角形や六角形通であっても良い。三角形の場合に
は前記領域符号は3ビットですむことになり、六角形の
場合には6ビットが必要となる。 <他の実施例> また、以上示した実施例と異なり、多角形領域にピッ
ク領域が包含される可能性があるか否かを判断する前記
ディスプレイ・プロセッサ装置35は、直接多角形領域の
頂点の少なくとも一つのX座標値がピック領域(矩形)
の左端のX座標値(left)よりも小さく、かつまた少な
くとも一つの頂点のX座標値はピック領域の右端のX座
標値(right)よりも大きく、かつ少なくとも一つの頂
点のY座標値はピック領域の下端のY座標値(bottom)
より小さく、かつ少なくとも一つの頂点のY座標値はピ
ック領域の上端のY座標値(top)より大きいかどうか
判定することにより前記多角形領域がピック領域を包含
する可能性があるか否かを判断しても良い。例えば第4
図の座標を使用して表現すると、左端のX座標とはx2
であり、右端のX座標とはx5であり、下端のY座標とは
y3であり、上端のY座標とはy4である。 〔発明の効果〕 本発明は前記選択手段が指定した領域が多角形領域と
交わるか否かを判断する際に、まず前記選択手段が指定
した領域が多角形領域を形成する1つの辺と交わるか否
かを判断する。また一旦前記選択手段が指定した領域が
多角形領域内に包含される可能性があるか否かを判断し
た後に当該前記選択手段が指定した領域と多角形領域と
の包含関係を判断するようにしている。したがって、多
角形領域との交わりの判断は、多角形領域の1辺と選択
手段によって指定した領域との交わりを判断すれば良
く、また多角形領域との包含関係の判断は包含の可能性
のある多角形領域について判断すれば良いので少ない手
順で容易にかつ確実にしかも高速に特定領域と多角形領
域との交差を判断することができる。
【図面の簡単な説明】 第1図は本発明の原理流れ図、第2図は本発明に係る矩
形領域と多角形領域との位置関係を示す図、第3図は実
施例及び従来例に係る機器構成図、第4図は実施例に係
る多角形領域とピック領域との一例を示す図、第5図は
本実施例に係るディスプレイ装置への表示例図、第6乃
至7図は実施例に係る処理a(一部処理b)を示す流れ
図、第8図は実施例に係る処理aと処理bとを示す流れ
図、第9乃至11図は実施例に係る処理cを示す流れ図、
第12図は実施例に係る領域符号と領域との対応を示す
図、第13図は実施例に係る領域符号の対応を行うための
流れ図、第14図は実施例に係る半直線と多角形領域との
交差を示す図、第15図は実施例に係る内外符号と内外領
域との対応を示す図、第16図は実施例に係る内外符号と
の対応を行うための流れ図、第17図は実施例に係る半直
線と多角形領域との特殊な交差を示す図、第18図は従来
の多角形領域の選択方法を示す図である。 1,11,51……多角形領域 2,12……ピック領域(矩形領域) 13……半直線

Claims (1)

  1. (57)【特許請求の範囲】 1.画面上に表示された多角形領域を選択手段により選
    択する際に、メモリに格納された多角形領域の辺、又は
    辺の中点を新たな始点若しくは終点とする交差の可能性
    がある辺列、の始点及び終点が、選択手段が指定する矩
    形領域の境界若しくはその延長線によって区分される9
    つの領域のいずれかに属するかを判断し、その属する領
    域に設定された領域符号に基づいて、前記多角形領域の
    少なくとも1つの辺と選択手段が指定する領域とが交わ
    るか否かを判断し、交わると判断されると当該多角形領
    域を選択し、 交わらないと判断されると、メモリに格納された多角形
    領域又は多角形領域を包含する最小矩形領域を構成する
    全辺の前記領域符号に基づいて、前記選択手段が指定す
    る矩形領域が前記多角形領域に包含される可能性がある
    か否かを判断し、 包含される可能性がある場合には、前記多角形領域の少
    なくとも1つの辺、又は辺の中点を新たな始点若しくは
    終点とする包含の可能性がある辺列、の始点及び終点
    が、選択手段が指定する矩形領域の頂点から該頂点を通
    る境界線の一方の延長線上に沿った半直線領域及び前記
    頂点を通る該選択手段の矩形領域の境界の延長線によっ
    て区分される4つの領域のいずれかに属するかを判断
    し、その属する領域に対して設定された内外符号に基づ
    いて、前記矩形領域が前記多角形領域に包含されるか否
    かを判断し、包含されていると判断された場合には当該
    多角形領域を選択することを特徴とする多角形領域選択
    方法。
JP62140374A 1987-06-04 1987-06-04 多角形領域選択方法 Expired - Fee Related JP2726994B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62140374A JP2726994B2 (ja) 1987-06-04 1987-06-04 多角形領域選択方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62140374A JP2726994B2 (ja) 1987-06-04 1987-06-04 多角形領域選択方法

Publications (2)

Publication Number Publication Date
JPS6486278A JPS6486278A (en) 1989-03-30
JP2726994B2 true JP2726994B2 (ja) 1998-03-11

Family

ID=15267338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62140374A Expired - Fee Related JP2726994B2 (ja) 1987-06-04 1987-06-04 多角形領域選択方法

Country Status (1)

Country Link
JP (1) JP2726994B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5208909A (en) * 1989-10-23 1993-05-04 International Business Machines Corporation Pre-drawing pick detection in a graphics display system
JPH08153212A (ja) * 1994-11-29 1996-06-11 Nec Corp 図形表示装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57203127A (en) * 1981-06-09 1982-12-13 Nec Corp Selecting device of graphic data
JPS58189764A (ja) * 1982-04-28 1983-11-05 Fujitsu Ltd 包含多角形検出方式

Also Published As

Publication number Publication date
JPS6486278A (en) 1989-03-30

Similar Documents

Publication Publication Date Title
JP2804224B2 (ja) ネットワーク図描画方法およびシステム
EP0210554B1 (en) A method of windowing image data in a computer system
JP3329855B2 (ja) 階層化ディスプレイでノードをセンタリングするための方法
KR100243174B1 (ko) 서브픽셀 마스크 발생방법 및 장치
US5056045A (en) Geometric processing system
JPH0445874B2 (ja)
KR20010012815A (ko) 레퍼런스에 기초한 파라미터 조정 방법 및 시스템
JP2726994B2 (ja) 多角形領域選択方法
US6144765A (en) Figure processing method
US5671346A (en) Figure processing method
EP0469914B1 (en) Figure processing method
JPS61131171A (ja) 図形エレメント選択装置
JP2530373B2 (ja) 八角形表現を利用した配線方法およびその装置
JPH09259299A (ja) ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム
JP2614111B2 (ja) 直線表示要素と矩形ウインドウの相互関係の検出方法
JP2616442B2 (ja) 画像処理装置
JP2868675B2 (ja) 文字列のサイズを1文字ごとに任意に変える電子組版装置
JPS63155260A (ja) コンピユ−タによる表の編集方法
JP3275277B2 (ja) 図形描画作成装置及び方法
JPH04364579A (ja) 図面管理方法および装置
JP3047851B2 (ja) 図形の寸法値表示装置及び方法
JPH04289977A (ja) 図形データ変換装置
EP0163872A2 (en) Method of correlating on straight lines in an interactive display system
JPS63249269A (ja) 図形処理に於ける多角形領域のピツク方法
JPH0350686A (ja) 図形処理方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees