JPH0756655B2 - 図形処理システム - Google Patents

図形処理システム

Info

Publication number
JPH0756655B2
JPH0756655B2 JP60140301A JP14030185A JPH0756655B2 JP H0756655 B2 JPH0756655 B2 JP H0756655B2 JP 60140301 A JP60140301 A JP 60140301A JP 14030185 A JP14030185 A JP 14030185A JP H0756655 B2 JPH0756655 B2 JP H0756655B2
Authority
JP
Japan
Prior art keywords
space
pointer
graphic
feature point
data
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
JP60140301A
Other languages
English (en)
Other versions
JPS6224371A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP60140301A priority Critical patent/JPH0756655B2/ja
Priority to EP86107047A priority patent/EP0202686B1/en
Priority to DE86107047T priority patent/DE3688918T2/de
Priority to US06/867,154 priority patent/US4944034A/en
Publication of JPS6224371A publication Critical patent/JPS6224371A/ja
Priority to US07/518,570 priority patent/US5056045A/en
Publication of JPH0756655B2 publication Critical patent/JPH0756655B2/ja
Priority to HK176395A priority patent/HK176395A/xx
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、図形処理システムに関し、特に、計算機に
おいて図形/画像処理をするときに図形/画像データを
部分処理によって効率的でかつ高速に処理できるような
図形/画像処理のデータベースシステムに関するもので
ある。
〔従来の技術〕
図形/画像処理の例としては、LSI,VLSIの設計,論理回
路,車体,建築物,機械,プラントの設計など、コンピ
ュータグラフィックス技術を利用したCADシステム,衛
星からのデータに対する対象解析、そして医療関係にお
ける画像解析等、各種の分野で図形/画像処理が行われ
ている。
ここで、LSI,機械,建築,プラント等のための図形処理
のCADシステムを例に採れば、その全図形要素数Nは、
最近では104〜107に達する大規模図形の処理が必要にな
ることが多く、特に、図形データ相互に関係する処理に
あってはそのデータ処理量が非常に膨大なものとなって
いる。しかもこのような場合に計算機の処理時間は、こ
の数値Nとともに急増するため原理的には処理が可能で
あっても、実用上処理に相当の時間がかかりその処理が
不可能な状態となることも少なくない。
〔解決しようとする問題点〕
このように処理ができない一因としては、この種の図形
処理が本来隣接図形間の関係や図形相互の重なりを処理
する場合であっても図形データ全体の処理を行うことに
よる。その理由は、図形データベースにこれら隣接図形
に関するような特別の情報が記述されていないためであ
る。すなわち、一部分の図形処理が必要な場合において
も、図形全体に対してのデータ処理が必要となり、その
結果として、必要な部分だけの部分的な処理で済まなく
なっている。
このようなことを回避するために隣接に関係する情報を
特別に設定した上で図形処理をすることも考えられてい
るが、図形形状に制限があったり、さらにデータ量を増
加させて、処理時間を大きくし、充分な問題点を解決に
はなっていない。
しかも、このようなことは、データ量が膨大となる立体
的な図形処理の場合にさらに大きな問題となる。
〔発明の目的〕
この発明は、このような従来技術の問題点等にかがみて
なされたものであって、このような問題点等を解決する
とともに、立体的な図形又は画像データを部分的に処理
することができ、効率的でかつ高速に処理できるような
図形処理システムを提供することを目的とする。
〔問題点を解決するための手段〕
この発明に従うと、図形及び図形の置かれた空間を部分
立体空間に分割して、各部分立体空間をポインタの組で
表現する。隣接図形,重なり立体図形等は、このポイン
タ検索によって検索されそして処理される。これにより
高速で効率的な処理が三次元の立体図形又はそれ以上の
次元の図形において実現される。
より具体的には、少なくとも第1,第2,第3の変数により
表現される立体空間座標系に配置された図形についての
データ処理は、計算機を使用して、三次元座標系の立体
空間に配置された複数の図形に関する図形データが記憶
されている記憶手段をアクセスして行い、このために図
形データの生成手段、図形データの記憶手段、図形処理
の実行手段を有して次のようにされる。すなわち、第1
の変数に対応する軸に関し図形の特徴点を通り、第2,第
3の変数に対応する座標面に平行な面と、第2の変数に
対応する図形の特徴線を含む第3の変数に対応する軸に
平行な面と、図形面自体とにより立体空間を分割し、各
面により挟まれた空間の両側の特徴点に対応してそれぞ
れ特徴点情報が生成される。各特徴点情報と、隣接する
他の1つ又は複数の特徴点情報とは、相互に連結関係を
持って生成され、この連結関係により平行な面により挟
持される空間が定義される。
〔作用〕
上記特徴点のペアにより部分立体空間又はn次元の空間
の検索が可能となり、部分に注目した立体図形の処理が
でき、隣接図形の処理を部分的に取り出した形で処理が
できる。
その結果、隣接図形の関係処理とか重なり立体図形の検
索,立体図形同士のAND,OR等の論理的な処理,隠れ面の
処理等が効率的に実行でき、高速な処理が実現できる。
〔実施例〕
以下、図面を用いてこの発明の一実施例について詳細に
説明する。
第1図は、この発明の図形処理システムを適用した計算
機システムのブロック図である。
第1図中、1は、演算処理装置(CPU)であって、2
は、そのメモリである。3は、スペースデータ処理部、
4は、I/O制御部、5は、インタフェース部、6は、シ
ステムバス、7は、ディスプレイ装置、8は、キーボー
ド、そして9は、外部記憶装置としての磁気ディスク記
憶装置(以下単にディスクと称する)である。演算処理
装置1とメモリ2、スペースデータ処理部3、そしてI/
O制御部4とは、それぞれシステムバス6にて相互に接
続されていて、これらの間でデータ転送が行われる。そ
してI/O制御部4は、インタフェース部5を介してディ
スプレイ装置7、キーボード8、ディスク9等との間で
データ交換を行う。
メモリ2は、演算処理装置1とI/O制御部4、スペース
データ処理部3とから共通にアクセスされる。メモリ2
には、スペースデータインタプリタプログラム記憶部2
a,スペースデータ発生プログラム記憶部2b,I/O制御プロ
グラム記憶部2c,スペースデータ記憶部2d,図形処理プロ
グラム記憶部2e,そしてその他データ記憶部2f等の領域
が設けられている。スペースデータ記憶部2dには、第4
図(a),(b)に見るような二次元の特徴点テーブル
20,21等及び第9図(b)に見る三次元の特徴点テーブ
ル22等が各図形の特徴点(頂点以外の点も含む)に対応
して設けられている。各テーブル内には、スペースポイ
ンタペア(SPP)等の情報が所定の順序で記憶される。
その情報は、検索内容に応じて参照される。
第1図のスペースデータインタプリタプログラム記憶部
2aには、スペースデータ処理部3のためのインタプリタ
プログラム、すなわち、スペースデータ記憶部2dに記憶
されたスペースデータに基づき、演算処理装置1により
処理されるべき図形情報を発生する処理プログラムが記
憶されている。
スペースデータ発生プログラム記憶部2bには、この計算
機システムで処理される図形処理プログラム、又は図形
データから第4図(a),(b)に示したような二次元
の特徴点テーブル20,21等及び第9図(b)に示したよ
うな特徴点テーブル22等の形で所定のスペースデータ
(又はスペースポインタファイル,SPF)を形成する処理
プログラムが記憶されている。
図形のモデリングの考えは、この発明に従って、次のよ
うにされる。なお、理解を容易にするために、先ず二次
元図形のモデリングについて説明する。三次元図形もし
くはn次元図形のモデリングは、後の説明から明らかと
なるように、二次元図形のモデリングの延長線上にあ
る。
二次元図形の場合、先ず第3図(a)に示したように、
図形の辺の適当な位置に設定されるような特徴点Pi,Pi
+1が設定される。図形が配置される図形空間は、それ
ら特徴点Pi,Pi+1を通る仮想空間分割線Di,Di+1と図
形の辺とによって複数の部分空間に分割されているとみ
なされる。それぞれの特徴点には、スペースポインタSP
i,SPi+1が設けられ、1つの部分空間に対応するスペ
ースポインタSPi,SPi+1は、相互に他方のアドレスを
指すペアとして形成される。この組は1つのスペースポ
インタペアSPPiで定義付けされる。これによって特徴点
Pi,Pi+1に挟まれる空間ωiがこのスペースポインタ
ペアにて代表(または表現)される。
このように部分空間ωiが、スペースポインタペアSPPi
で表現されたものとして取り扱われる結果として、その
空間に関係する図形処理をこのスペースポインタペアの
利用によって部分的に行うことが可能となり、データの
処理量が減少するのみならず記憶すべきメモリ容量の節
約に貢献する。三次元図形の場合、後の説明から明らか
となるように、この線分割が面による分割となるだけ
で、その基本的な考え方は前記と同じである。
各特徴点Piは、図形の辺の適当な位置に設定することが
できる。特徴点Piの数は、多くても少なくても良い。し
かしながら、特徴点の数が多くされる場合、それに伴っ
て、図形データファイルの規模を大きくせざるを得なく
なっている。
図形データファイルもしくはスペースポインタファイル
のサイズの増大を防ぐための望ましい方法は、図形のX
方向正または負に尖った点もしくは頂点を特徴点にする
ことにある。
第3図(b)は、このような図形データ処理が行われる
具体例を示している。図示の二次元の図形空間は、図形
DRWの各辺と分割線(一点鎖線)とによって複数の部分
空間に分割されている。第3図(b)の上側の図は、特
徴点が図形の左右両側の頂点に設定された場合を示し、
下側の図は、図形の各頂点が特徴点とされた場合を示し
ている。なお、例えば上の図において図形DRWの左側及
び右側に他の図形が存在しない場合、その図形DRWの左
側の部分空間ω及び右側の部分空間ωは、有界でな
い部分空間とみなされる。このような有界でない部分空
間に対してのポインタペアの設定を可能とするために、
それぞれのX方向外形線もしくは空間分割線がそれぞれ
概念上、マイナス無限大及びプラス無限大にあるとみな
される。同様に、Y方向外形線も、概念上、マイナス無
限大及びプラス無限大にあるとみなされる。すなわち、
有界でない部分空間ω0のためのスペースポインタ
ペアSPP0,SPP4において、相手方のスペースポインタ
は、それぞれ図形空間のX値の負の最大値、Y値の負の
最大値を示すポインタ、及びX値の正の最大値及びY値
の正の最大値を示すポインタとされる。同様に第3図
(b)の下側の図面において有界でない部分空間ω0
10のためのスペースポインタペアSPP0,SPP10において、
相手方のスペースポインタは、実質的に±∞のX,Y値を
示すポインタとされる。言うまでもなく、1つの図形空
間の全体が、適当なサイズのX,Y外形線によって区画さ
れる場合、実質的に有界でないとみなされる部分空間の
ためのスペースポインタは、そのX,Y外形線によって示
されるX,Y値を示すようにされて良い。
スペースデータ記憶部2dには、このような条件のもとで
生成された二次元及び三次元の各種のスペースデータ
が、テーブルとして記憶されることになる。このテーブ
ルは、どのような形態を採ってもよい。テーブルは、例
えば二次元では第4図(a),(b)に見る特徴点テー
ブル20で代表されるようなフォームにされ、三次元では
第9図(b)に見るような特徴点テーブルで代表される
ような形式にされる。このようなテーブルが、スペース
データ記憶部2dに数多く記憶される。なお、このスペー
スデータは、このようなテーブルとして記憶するものに
限定されるものではない。
スペースデータ処理部3は、演算処理装置1からアクセ
スされ、スペースデータインタプリタプログラムの実行
によってこの特徴点テーブル20,21,22等を参照する。特
に制限されないが、スペースデータ処理部3は、演算処
理装置1からアクセスされるアドレスにより、実現すべ
き図形処理の種別を選択し、スペースデータインタプリ
タプログラムによってスペースデータを検索し、解釈
し、対応する図形データを発生する。そしてその図形デ
ータを演算処理装置1側に転送する。
演算処理装置1は、これを受けて、所定の図形処理を
し、第1図に示されたI/O制御部4を起動させる。これ
によって例えばディスプレイ装置7に所定のデータが転
送され、求められるデータが表示される。
ここで、I/O制御部4は、スペースデータ処理部3によ
ってスペースデータインタプリタプログラムが起動さ
れ、また演算処理装置1からアクセスがあった場合に、
所定のI/O処理を実行する。すなわち、I/O制御部4は、
図形データを、例えばディスプレイ7に転送してそれを
表示させたり、ディスク9に転送してそれを記憶させる
等の処理をする。I/O制御部4は、また演算処理装置1
側への割り込み処理、演算処理装置1からの割り込み信
号の受け付け処理等を行う。
なお、この場合のI/O制御部4のためのI/O制御プログラ
ム記憶部2cには、いわゆるディスプレイ7,デイスク9,キ
ーボード8等とI/O制御部4との間でのデータ転送を行
わせる各種の処理プログラムが記憶されている。
以上の処理及び次の動作については、二次元のスペース
データでも、三次元のスペースデータの処理であって
も、また、n次元のスペースデータ処理であっても、基
本的には同様なものである。そして次元の相違は、対象
とするスペースデータの内容の相違として現れるに過ぎ
ない。
次に、第2図(a)に従って、スペースデータの全体的
な動作について説明する。
ディスク9に記憶されているある図形処理プログラム又
は図形データは、キーボード7からの所定の機能キーの
入力により、メモリ2の特定の記憶部、例えば図形処理
プログラム記憶部2eに読込まれる。次に、キーボード8
からスペースデータ発生処理のキーが入力されると、演
算処理装置1からスペースデータ処理部3に制御が渡さ
れ、スペースデータ処理部3によってスペースデータ発
生プログラム記憶部2bが参照される。これによってスペ
ースデータ発生プログラムが起動され、かかるプログラ
ムにおける図形処理プログラムが実行されることによっ
て、図形スペースデータが生成される。
スペースデータが生成され、それがメモリ2に記憶され
た後の計算機システムの動作は次のようにされる。すな
わち、演算処理装置1が動作して図形処理の制御プログ
ラムが起動される。これに応じて、演算処理装置1は、
第2図(a)に示されたプログラム制御部10として機能
する。そして、図形処理プログラム記憶部2eに記憶され
たところの対象となる図形処理プログラム及び図形デー
タが第2図(a)における図形プログラムメモリ部11と
して機能する。図形プログラムメモリ部11における各種
命令は、プログラム制御部10により解釈され、実行され
て行く。第1図のスペースデータ処理部3は、それに対
応する図形処理プログラムが起動されたときには、演算
処理装置1からの所定の指令に応じて図形データ変換処
理部12として機能する。
このようにプログラム制御部10は、図形処理プログラム
をプログラムメモリ部11から読出し、この読出された内
容を解釈しその内容に対応する処理を実行する。ここで
の実行処理において、プログラム制御部10は、例えば隣
接図形のサーチとか、図形の重なり制御とか、範囲指定
の図形の切りだし、図形同士の論理処理等の部分的な図
形処理が発生したときに図形データ変換処理部12にその
制御を渡す。
図形データ変換処理部12は、プログラム制御部10からの
指令がスペースデータ生成処理であるか、スペースデー
タによる参照変換処理であるかを変換し、この判定に応
じてインタプリタプログラムか、スペースデータ生成プ
ログラムのいずれかを起動することによってそれぞれの
制御を開始する。
ここで、スペースデータ生成処理と判定され、その処理
のためのプログラムが選択され実行されたときには、制
御プログラム10側から引き渡される図形データに基づい
て、第4図(a),(b)又は第9図(b)に見るよう
な特徴点テーブル20,21,22等が図形の各頂点対応(又は
選択された特徴点対応)に生成される。
一方、インタプリタプログラムは、生成されたスペース
データの指令に対応された処理の実行、及び制御プログ
ラム10側との間でのデータ転送を行う。第2図(a)で
は、インタプリタプログラムは、変換制御プログラム部
14と図形プログラムメモリ部15とに記憶される。図形プ
ログラムメモリ部15は、スペースデータに対する各種の
検索処理、図形の論理処理等の部分的な処理のデータ生
成のためのスペースデータ変換処理プログラム群がそれ
に記憶される。そして例えば変換制御プログラム部14
は、そのアクセスアドレスによって、その処理を規定す
るスペースデータ変換処理プログラム群を図形プログラ
ムメモリ部15の中から選択する。
インタプリタプログラムは、第2図(b)のように構成
される。すなわち、第2図(b)のステップにおいて
データA(又は指令、以下同じ)がプログラム制御部10
から引き渡されたかどうかが判定される。データAの引
き渡しが行われたなら、ステップで例えば対応するス
ペースデータ処理が実行され、ステップにて第2図
(c)のI/O制御部のためのプログラムのための割り込
みが発生される。
ステップにおける判定の結果、データAの引き渡しが
無いと判定されたなら、ステップの処理が実行され
る。ステップにて割り込み発生後かどうかが判定さ
れ、ステップにて、スペースデータ処理の結果発生し
た図形処理データBを出力してプログラム制御部10又は
図形プログラムメモリ部11の図形処理プログラムに渡す
処理が行われる。
ステップのスペースデータ処理は、二次元図形処理の
場合、第4図(a),(b)に示された特徴点テーブル
20,21等を参照し、また三次元の場合、第9図(b)に
見る特徴点テーブル22等を参照して、そのスペースポイ
ンタペア等を検索することにより行われる。
一方、プログラム制御部10の動作は次のようにされる。
すなわち、プログラム制御部10が変換制御プログラム部
14を対象として図形データ変換処理部12をアクセスした
場合には、第2図(c)のステップaにおいて、メモ
リの特定アドレスをアクセスしてデータAを得て、ステ
ップaで図形データ変換処理部12に対してデータAを
出力する。
次に、ステップaにて図形データ変換処理部12からの
割り込み信号待ちの、待ちループに入る。ここで図形デ
ータ変換処理部12から割り込み信号を受け付けると、ス
テップaにおいてデータ入力として図形データ変換処
理部12から図形処理データBを受け付け、それを、プロ
グラム制御部10を介して図形プログラムメモリ部11の図
形処理プログラム側へと渡す。なお、この場合図形デー
タ変換処理部12から直接図形処理データBを図形処理プ
ログラムに渡すようにしてもよい。
次に、第4図(a)の二次元図形のための特徴点テーブ
ルのデータを構成するスペースデータについて、第5図
(a),(b)を参照して具体的に説明する。
第5図(a)に示された二次元図形A,B,C,Dは、特に制
限されないが、例えば第1図のディスプレイ装置7上に
表示されるべき図形とされる。図示の図形に応じて、次
に説明する方法によって図形データが形成され、形成さ
れた図形データにもとづいて適当な処理が行われる。
先ず、第5図(a)の図形AないしDが配置される図形
空間は、それらの図形AないしDに応じて、第5図
(b)に示されるような複数の部分空間に分割されるも
のとみなされる。
すなわち、第5図(b)にあっては、X−Y座標系が図
形空間に適用され、かかる図形空間が、各図形の頂点を
通りかつX軸に垂直な分割線Bxによって分割されている
ものとみなされる。ただし、この場合、特に制限されな
いが、ここでは分割空間の数を抑えるために、各頂点の
周りの凹な空間(各図形の辺により挟まれる角が180゜
より大となる側に対応する空間)が、空間分割の対象と
される。凸な空間(各図形の辺により挟まれることによ
ってその角度が180゜より小となる側に対応する空間)
については空間分割を行わないものとする。
ところで、第5図(b)のようにX−Y座標系が適用さ
れる場合にあっては、スペースポインタペアSPPiで表現
される部分空間の形状は、次の2つの条件を満たせばよ
い。
(1) 部分空間のωiのX側境界Bx-,Bx+上にはSPPi
を接続すべき頂点が必ず1個ずつ存在する。ここでBx-,
Bx+のようなBxはSPPiで指された頂点からY座標に沿っ
て引いた線である。
(2) ωiのY方向の外形線By+,By-は図形辺よりな
り、かつωiの内部には図形辺(又は点)が存在しない
こと。
第5図(b)には、このような条件のもとに、図形の各
辺と分割線(一点鎖線)とによって分割された各部分空
間がωi(i=1〜n)として表わされている。なお、
分割線は、前述のように仮想線であり、データとしては
取り扱われない。すなわち、各分割空間の分割線は、空
間分割の考えの理解の都合上挿入されている。
さて、図中、各部分空間には、そのX軸方向に対応する
両側に必ず特徴点が存在する。これら両側の2つの特徴
点は、それぞれ分割された部分空間に1対1に対応する
ことになる。そこでこの特徴点ペアを示すポインタペア
を、部分空間を表現するデータとして処理することが可
能となる。なお、図中、「・」が特徴点としての頂点で
あり、実線で示す部分が各図形の辺である。
このように図形の内外に、空間分割によって設定される
各部分空間ωi(i=1〜n)を表すところのポインタ
ペアをここではスペースポインタペア(SPP)と呼ぶ。
これらスペースポインタペアは、各部分空間ωi(i=
1〜n)に対応してSPPi(i=1〜n)のように番号付
けられて表示される。
第5図(b)において、相互に矢線で結合したものがこ
のスペースポインタペアSPPiである。同図において、各
部分空間ωiとこのスペースポインタペアSPPiとが対応
していることが理解できよう。
ここで、例えば部分空間ωiは、その外形がX分割線Bx
-,Bx+及び図形辺By-及びBy+によって決まる。この場
合、スペースポインタペアSPP1は、図面より明らかなよ
うに、図形CとDの頂点a1及びa0に対応される。しかし
ながら、スペースポインタペアSPP1と1対1対応される
図形辺は、存在しない。また、図形辺By-には、それと
1対1対応されるスペースポインタペアは存在しない。
そこで、図形辺の表示のために、エッジポインタが設定
される。1つの辺は、その2つの端点に置かれる2つの
エッジポインタによって表現される。1つの辺に対応さ
れる2つのエッジポインタは、スペースポインタペアと
同様に、互いに相手を指示合うところのペアとされる。
第5図(b)において、例えば辺By-は、エッジポイン
タペアEPP1によって表現される。
部分空間の外形のサーチは、後で説明するような図形追
加のときや図形干渉チェックのときなどにおいて必要と
なる。
ここで、部分空間ωiの外形線は少なくとも一部は、図
形の辺の一部又は全部に対応している。この外形は、次
のような処理を行うプログラムにて検索される。例えば
ωを例に採って説明する。
図形辺のサーチは、図形の頂点間を連結するスペースポ
インタペア及びエッジポインタペアの順次のサーチと、
エッジポインタペアがサーチされたときのX方向範囲の
チェックとによって実行される。特に制限されないが、
ポインタペアのサーチのために、第5図(b)に白ぬき
矢線によって示されたように、出発となるポインタペア
に対して反時計回転方向に位置されるポインタペアがサ
ーチされる。以下、このようなサーチ方法をロータリー
サーチと称する。
第5図(b)の場合、スペースポインタペアSPP1を出発
ポインタペアとするロータリーサーチによって、SPP2
求められ、SPP2を出発ポインタペアとするロータリーサ
ーチによってSPP4が求められる。SPP4の反時計回転方向
にはエッジポインタペアEPP2が位置される。それ故に、
SPP4を出発ポインタペアとするロータリーサーチによっ
て、EPP2が求められる。エッジポインタペアがサーチさ
れた場合、そのエッジポインタペアによって示されるX
範囲と最初のSPP1によって示されるX範囲との関係がチ
ェックされる。第5図(b)の場合、EPP2に対応される
X範囲は、明らかにSPP1に対応されたX範囲と異なる。
それ故に、再びEPP2を出発ポインタペアとするロータリ
ーサーチが行われる。ロータリーサーチの結果として新
しいエッジポインタEPP3が求められる。再びEPP3とSPP1
のX範囲がチェックされる。その結果としてEPP3によっ
て示される辺By+が部分空間ωの上側の辺を構成して
いる、ということが明らかとなる。
このように、スペースポインタペアSPP1から白抜き矢線
のように反時計方向への回転サーチによってポインタペ
アを順次サーチして行き、サーチしたポインタペアがそ
の部分空間のX方向の範囲に入るか(又は含むか)否か
を判定することにより上側の外形を求めることができ
る。すなわち上側の外形を探し出すことができる。
また、時計方向への回転サーチによって、下側の外形を
決定できる。以上の検索手法を連続して適用することに
より、与えられた辺または空間から出発して、上下左右
任意の方向へ順次辺または空間を辿ることができる。任
意の方向へ辿ることができるから、例えば、ある点が座
標値(x,y)のみで与えられたとき、任意の空間または
辺を出発点として、座標値(x,y)の方向へ辿り、最終
的に与えられた点を含む空間に到達することができる。
この手法により、与えられた点を含む空間を探索するこ
とができる。さらに外形の長さを知りたいときには、今
求めた外形となる辺の各頂点の座標値を参照して算出す
ることにより簡単に求めることができる。
このような部分空間の集合として各図形及びその図形と
隣接する図形との関係を表現できることにより、図形同
士の関係、特にその図形論理処理,図形の全体/部分の
削除,その移動,変更,追加,更新処理等が簡単に可能
となる。なお、これらの図形処理としては後述する属性
情報を利用して処理することにより効率的に処理するこ
とが可能である。
以上のようにスペースポインタペアSPPiにより部分空間
を表すことにより、図形をスペースポインタペアSPPiで
検索して処理することが可能であり、多くの図形データ
を特別に全体的な演算処理で求めなくても部分空間単位
でのデータ処理として種々の図形データを得ることがで
きる。
図形の各頂点もしくは特徴点に対応して、頂点テーブル
が設定される。頂点テーブルには、スペースポインタ,
エッジポインタ、及び後述するようなデータが保持され
る。
前述のようなサーチを可能とするために、各頂点に対応
される各ポインタは、次に第4図(a),(b)によっ
て更に良く理解されるように、予め定められた順序をも
って頂点テーブル内にセットされる。特に制限されない
が、1つの頂点を発するスペースポインタ及びエッジポ
インタは、その頂点を左廻りもしくは反時計廻りにまわ
る方向で順序付けられる。例えば、第5図(b)におけ
る頂点a1に対する頂点テーブルは、次のようにされる。
すなわち、例えば、頂点テーブルに、先ず頂点a8のエッ
ジポインタを指示するエッジポインタがセットされ、そ
の次に、反時計廻り方向に位置する次のポインタペアの
一方のポインタすなわち頂点a7のスペースポインタを指
示するスペースポインタがセットされる。同様な反時計
廻り方向に順序に位置するポインタが順序に頂点テーブ
ルにセットされる。すなわち、頂点a1に対応される頂点
テーブルには、更に、頂点a0のスペースポインタを指示
するスペースポインタ、頂点a2のスペースポインタを指
示するスペースポインタ、及び頂点a8のスペースポイン
タを指示するスペースポインタが順序に格納される。
頂点テーブルは、二次元図形の場合では、第4図
(a),(b)に見るようなフォムにされることが好ま
しい。
次に、第4図(a)に見る二次元の特徴点テーブル20の
内容について説明する。
この特徴点テーブル20は、各頂点を識別する符号又は番
号で管理されていて、メモリ2上の所定の対応するアド
レス位置に記憶される。ここの例では、頂点テーブル
は、原則として8行の記憶領域を持つテーブルとして構
成されている。
第4図(a),(b)の各記号は、第4図(e),
(f)に示した意味を持つ。
第4図(a)の頂点テーブルは、第4図(c)又は
(d)のような頂点aに対応される。各データは、前述
のような順序をもってテーブル内に格納される。すなわ
ち、第4図(a)のテーブル内には、第4図(c),
(d)に見る図形に対応され、かつ、その下側の辺を基
準として反時計回りに順次データが記憶されている。テ
ーブルの第1行目は、図形の基準辺EP0のデータ記憶位
置、第2行目は、スペースポインタSP01のデータ記憶位
置、第3行目は、反時計回りに回転した場合の次の辺EP
1のデータ記憶位置、第4行目は、スペースポインタ▲S
Pr 10▼のデータ記憶位置、第5行目は、スペースポイン
タ▲SPc 10▼のデータ記憶位置、第6行目は、スペース
ポインタ▲SPL 10▼のデータ記憶位置である。そして第
7行目、第8行目は、それぞれこの頂点aのX,Yの座標
情報の記憶位置である。
ここでは、スペースポインタSP,SPr,SPc,SPLは、それぞ
れこれらと組になる隣接するスペースポインタのアドレ
スを指してペアを組みそれぞれスペースポインタペアが
SPPiとして形成されることになる。
テーブル内には、スペースポインタSPiのほかに、前述
のように各辺についてその両側の頂点に対するペアを採
るための辺ポインタEPi(i=1〜n)が記憶される。
その辺ポインタペアをEPPi(i=1〜n)で表すことに
する。このようにスペースポインタペアSPPiと辺のポイ
ンタペアEPPiとを採ると、第4図(c)の頂点aの場
合、6本のポインタが必要となり、それだけ存在してい
る。
ここで、この特徴点テーブル20の最初の欄V/Cは、図形
における頂点か交叉点かを判定するフラグであって、第
4図(e)に見るようにこれが“1"のときには頂点を、
そしてこれが“0"のとき交叉点を意味する。第2欄のKI
NDは、辺ポインタペアかスペースポインタペアかの種別
を表す符号を意味し、第3欄のATTR.は、その属性を意
味し、第4欄のPOINTERは、ペア相手の存在するアドレ
ス位置を示している。なお、第4図(b)の特徴点テー
ブル21に見るように、空間属性、例えば色とか、その空
間の中に入るべきデータの情報を示すデータアドレスと
か、その空間が持っている定義情報等は、X方向でない
頂点の特徴点テーブル21のSAとして記述することもでき
る。このようにSAを設ければ、ある図形の属性を検索す
る場合には、SAは、スペースポインタペアの属性欄であ
るATTR.を参照することで簡単に探し出すことができ
る。この方式は、もしX方向でない頂点の特徴点テーブ
ル21のサイズをX方向の頂点テーブル20に等しくしよう
とすると、本来なら接続先がなくて空欄になるはずのX
方向でない頂点のポインタ(POINTER)欄を空間属性SA
の表現用に有効活用するのでメモリ使用効率がよいが、
第4図(e)に示すようなX方向でない頂点を持たぬ図
形では、SAを付加する場所がなくなるので、例えば同図
に示すように、図形の特徴点テーブルの外部にSAを増設
したり、図形辺上に図形形状に影響を与えない(辺のな
す角度が180゜の)頂点を追加してそこにSAを配置する
等の対策を要する。
なお、これら特徴点テーブル20,21のデータ構成の具体
的な一例を挙げれば、次の表2に見るようなものとな
る。
以上が二次元のスペースデータの内容である。
次に、三次元のスペースデータについて説明する。
三次元のスペースデータは、二次元スペースデータの拡
張である。ここでは、三次元空間を部分立体空間に分割
して部分立体空間をスペースポインタペアSPPiで表現す
る。
三次元スペースデータ(又はスペースポインタファイ
ル、SPF)の基本的性質は、二次元の場合と同じく隣接
/重なり空間の直接的な検索が部分処理で高速にできる
ことである。
すなわち、 (1) 部分処理による干渉チェック他、三次元高速論
理操作。
(2) 高速隠れ面消去表示とその部分修正(部分隠れ
面消去)。
(3) 三次元空間における図形の運動と衝突の検出。
等が効率的に実行できる。
以上の処理は、二次元と同様に本質的に部分処理である
ため、図形全体の規模の増加によらず、高速処理が可能
で、オンライン対話処理ができる。
二次元の場合の例として挙げた第3図(b)の例に対比
させて、三次元空間をX−Y−Zの座標空間として捉え
た場合の図面が第6図(a)である。
三次元の空間分割とそのスペースポインタペアSPPiの表
現は、次のようなルールに従って行われる。
(1) X境界面Bx 図形をZ方向正負に投影してできる角柱状の空間(第6
図(a)参照)において、二次元の場合と同様に頂点を
中心としてZ軸の回りに凹角空間(Z軸に垂直な面で切
った角度が180゜より大きい空間)が存在するとき、そ
の頂点を通りX軸に垂直でY−Z面に平行な面(第6図
(a)の例では、平面)で凹角空間を区分し、この面を
X境界面Bxとする。但し、BxのY,Z方向への拡がりは、
下記By,Bzに交わる線までとする。
(2) Y境界面By 図形を構成する各面の辺(Edge)をZ方向正負に投影す
るときのZ軸に平行な面(第6図(a)の例では、平
面)を部分空間のY方向境界面Byとする。ここで面Byの
Z方向への広がりは、Z方向(上下)にある隣接面Bzま
で伸びて、そこで終わることになる。
(3) Z境界面Bz 部分空間の上底面又は下底面としての境界面Bzは、当該
空間にZ方向に隣接する図形そのものである。
以上のことから、これら3つのルールに従って分割され
た部分立体空間は、一般に、上底面Bzと下底面Bzが三次
元図形の上下面で、X−Y面に対して垂直となる角柱の
形状を採ることになる。
さて、三次元スペースデータにあっても、二次元スペー
スデータと類似の上記ルールによって分割された部分立
体空間を、スペースポインタペアSPPiによって表現す
る。このスペースポインタペアSPPiは、第3図(b)及
び第5図(b)に見てきた二次元の場合と同様に部分立
体空間のX+端とX−端の頂点間に張られることにな
る。なお、第6図(a)の(i)中、Ωは、二次元のω
に対応する三次元における部分立体空間を表している。
第6図(a)(ii)は、第6図(a)(i)をZ+方向
から眺めたものである。第6図(b)は、第5図(b)
に対応させた場合の三次元の立体図形を簡略化して表現
している。
ここで、重要なことは、三次元にあっては、ある図形の
辺が、他の図形の辺に直接には交叉していなくても、そ
の図形の辺が他の図形の辺の蔭になることによって蔭の
交叉が生じることである。
第6図(c)及び(d)は、この蔭の交叉を説明するた
めの図面である。
第6図(c)は、比較的簡単な例として、平面図形Aと
Bとが立体配置されている場合を示している。すなわ
ち、図形Bは図形Aの上方(Z方向正の側)に位置さ
れ、かつその一部が図形Aの一部とZ方向に離れた立体
的に交叉している。この構成の場合、前述の3つのルー
ルに従って空間分割が行われることになるので、図形B
とAとの立体交叉した部分の部分空間ΩABL、すなわち
図形Bの下側に位置されかつ図形Aの上側に位置される
部分空間は、その一部の面が図形Bにおける点C2′−
C1′間のエッジによって決まることになる。部分空間Ω
ABLに対してスペースポインタペアを設定することがで
きるようにするために、図形A及びBのそれぞれには存
在しない交点を考慮する必要が生ずる。第6図(c)に
おいて、線c1−c1′,c2−c2′が蔭の交叉線である。そ
してこの交叉線の周りは、四方の部分空間がつき合わせ
の形になり、かつ、そのうち対角の2つはX軸方向に尖
る空間の頂点となり、これらに対応してそれぞれスペー
スポインタペアSPPiが設置されることになる。
第6図(d)は、第6図(c)の図形をZ軸方向に投影
した場合の図である。第6図(d)の参照によって、三
次元図形の空間分割とそれに対するポインタペアの設定
構成が、二次元のそれとよく似ている、ということが理
解されよう。
さて、三次元の場合には、スペースポインタSPとそのス
ペースポインタペアSPPi、辺ポインタEPとその辺ポイン
タペアEPPiとともに、立体図形の表面の属性を規定する
情報があったほうが望ましい。そこでこれらの面につい
てのポインタペアを面ポインタペアEPPiで表すことに
し、これを新たな情報として特徴点テーブルに加える。
ポインタペアEPPiは、第7図に見るように、物体の表面
に図柄が存在するような場合に有効である。
次に、このようなことを考慮して、第8図(a)に見る
ような、ある に対してスペースデータを形成すること、二次元に見る
第4図(c)又は(d)に対応させて行ってみる。
ここで、第8図(a)に種々のポインタを表示するとす
ると、図面が著しく複雑になってしまう。そこで理解の
容易のために、第8図(b)が用意されている。第8図
(b)は、第8図(a)の立体図形の頂点a0とそれに対
応して設定されるスペースポインタSP、エッジポインタ
EP及びサーフェイスポインタFPを示している。
頂点a0に対応して、次のようなポインタが設定される。
すなわち、第8図(a)の部分空間Ωに対応するスペ
ースポインタペアSPP5の一方のスペースポインタSP1
頂点a0−a1間のエッジに対応されるエッジポインタペア
EP1の一方のエッジポインタEP1、頂点a0、a1及びa2によ
って規定される面に対応される面ポインタFP1等が設定
される。
第9図(a)は、三次元図形の1つの頂点V、図形辺EG
iないしEGk、及び辺EGiに対応して設定される種々のポ
インタを示している。同図において、添記号付きのSP
は、スペースポインタペアを示し、FPは、面ポインタを
示す。添数字付きのLPは、エッジポインタを示し、RPは
面ポインタ又はスペースポインタを示す。ポインタLP及
びRPについての考え方は、後で説明する。
ところで、二次元図形の場合でも、三次元図形の場合で
あっても、部分的なデータ処理を実現する関係から、特
徴点テーブルは、いくつかの部分空間の中からその1つ
1の空間を検索できるようにするためのルールに従って
それぞれの情報が形成されていなければ、そのデータ処
理の意味がないものとなる。
二次元図形の場合、前述しかつ第4図(a),(b)で
示したごとく、反時計回りループ状に各種ポインタがセ
ットされる特徴点テーブルによって頂点の回りのEPとSP
を一義的に表現するとともに、頂点の周りの辺と空間の
隣接性を完全に表現できた。これによって回転サーチの
高速化も達成可能にされる。
これに対し、三次元図形の場合、第9図(a)に示され
たように、1つの辺EGiの左右だけでなくその上下にも
隣接空間が存在する。そのため、上記の二次元図形に対
して設定される一次元ループ状のテーブルのような方
法、すなわち複数のポインタを所定の順序をもってテー
ブルにセットする方法のみでは、三次元図形空間の隣接
性の表現はできない。
そこで三次元図形の場合には、この1つ1つの部分立体
空間を特定情報に対応させる関係を樹立するための一義
的な空間規定ルールが必要となる。
隣接性の問題を解決し、頂点を発するEGiの数によら
ず、かつ辺EGiに隣接する空間や面の数によらずに図形
空間の隣接性を表現できる汎用的な三次元図形のための
特徴点テーブルの方式を第9図(b)に示す。第9図
(b)の特徴点テーブルは、辺EGの数だけ並べられたデ
ータブロック、すなわち各辺に1対1対応された複数の
データブロックをもつ。各データブロックには、エッジ
ポインタとともに、次のようなルールに従ってスペース
ポインタSP及び面ポインタがセットされる。
すなわち、EGブロックの対象とされる辺(以下、基準辺
と称する)と、その基準辺に隣接する複数のスペースポ
インタ及び面ポインタが注目される。このような複数の
ポインタが、基準辺の左側に位置されるか右側に位置さ
れるかが判定される。この場合の左右判定のための基準
は、相対的であり、絶対的ではない。特に制限されない
が、頂点Vが基準辺の参照のための実質的な視点とみな
され、またZ軸のプラス側が上側とみなされる。このよ
うな左右判定方に従って基準辺の左側に隣接するとみな
されたスペースポインタSPzと面ポインタFPz(添付記号
zはこれらSPzとFPzをZ軸上側から数えた順序、Z=1,
2,……,)が順にEGブロック内に配置される。EGiブロ
ックに入れることによって辺EGiとその左側のSPz,FPz
しくは部分空間との隣接性が表現される。
例えば、第9図(a)のテーブルは、次のようにされ
る。以下の説明は、便宜上、第9図(a)の辺EGiに対
応されるEGiブロックについて行う。
第9図(b)のEGiブロックにおいて、そのブロックの
先頭アドレスi0が与えられた第1行には、特に制限され
ないが、第9図(a)の辺EGiのためのエッジポインタE
Piがセットされる。エッジポインタEPiは、言うまでも
なく、ポインタペアの考えに従って、頂点Vに対する相
手方の頂点もしくは特徴点に対するエッジポインタを示
すようにされる。
第9図(a)において、辺EGiの左側に位置されかつZ
軸方向の最も正側の部分空間は、辺EGiとEGjとによって
規定される面F2よりも上の部分空間Ωである。それ故
に、EGiブロックの第2行目(アドレスi1)には、部分
空間Ωのためのスペースポインタ▲SP1 ij▼がセット
される。
第9図(a)の場合、スペースポインタ▲SP1 ij▼の下
側に位置される次のポインタは、面F2のための面ポイン
タ▲FP2 ij▼である。それ故に、EGiテーブルの第3行目
(アドレスi2)には、面ポインタ▲FP2 ij▼がセットさ
れる。
部分空間Ωの次の下側の部分空間は、その上面が面F2
とされ、かつその底面がEGiとEGkとによって規定される
面F4とされた部分空間Ωである。それ故に、EGiテー
ブルの第4行目(アドレスi3)には、部分空間Ωのた
めのスペースポインタ▲SP3 ij▼がセットされる。
同様に、EGiテーブルの第5行目(アドレスi4)には、
面F4のための面ポインタ▲FP4 ik▼がセットされる。ま
た第6行目(アドレスi5)には、面F4の下側に位置され
る部分空間Ωのためのスペースポインタ▲SP5 ik▼が
セットされる。
なお、第9図(a)においては、図面が著しく複雑にな
ってしまうことを防ぐために、辺EGj,EGkの左側に位置
されるであろうポインタは表示されていない。第9図
(b)のEGjブロック及びEGkブロックには、実際上は、
辺EGj及びEGkに対応されるスペースポインタ、面ポイン
タがセットされる。しかしながら、第9図(b)のEGj
ブロック及びEGkブロックのスペースポインタ、面ポイ
ンタがセットされるべき部分には、第9図(a)と
(b)との対比を容易にするという単純な理由によっ
て、何の記号もつけられていない。
第9図(b)のEGブロックには、上記ポインタととも
に、ポインタLP,RPがセットされている。ポインタLP,RP
は、例えば、EGiブロックにおけるスペースポインタS
Pz、面ポインタFPzによって示されるような辺EGiの左側
に位置される部分空間及び面と、かかる辺EGiの左側の
辺EGj,EGkに対するスペースポインタ、面ポインタによ
って示されるような更に左側の部分空間及び面との隣接
関係を表わすために設定される。隣接関係は、簡単に言
うと、各SPz,FPzに付属してその左側のEPを指す同じく
テーブル内ポインタLP(Left Edge Pointer)と逆に各E
Pj,EPkに付属してその右側を指す同じくテーブル内ポイ
ンタBPz(Right SP or FP)の相互の指し合いで表現さ
れる。
ポインタLP,RPによる隣接性の表現の必要性は、次に説
明される。
前述のような方式、すなわち、EGブロックを設定し、各
EGブロックにエッジポインタとともにスペースポインタ
及び面ポインタを所定の順序で設定する方式によると、
三次元回転サーチがサポートできる。
すなわち、このように各辺に対応して頂点テーブルを分
割して管理すると、1つの辺に隣接する部分空間、面の
Z軸上下方向のつながりは、各ブロック内部の各ポイン
タの前述した並び方に応じて、直接的にサーチ可能とな
る。言い換えると、縦回転サーチが可能となる。これに
対してZ軸上方から下を見た場合の各部分空間の隣接関
係、言い換えると左右もしくは横方向の隣接関係のサー
チは、そのままではできない。例えば、第9図(a)の
辺EGjに対応されるEGjブロックに設定されるスペースポ
インタ及び面ポインタは、前述のようにその辺EGjの左
側に隣接する部分空間を表現するためのポインタであ
り、その辺EGjの右側部分空間Ω1等を表現するた
めのポインタではない。それ故に、EGjブロックにおけ
るポインタによって、辺EGjの右側に隣接する部分空間
のサーチは、実質的にできない。
そこで、三次元の場合の横方向の回転サーチにおいて、
部分空間の左右関係が直接的に明らかとなるようにLP,R
Pの情報が設けられている。
このLP,RPの情報は、各スペースデータであるスペース
ポインタペアSPPi、面ポインタペアFPPiについて左右の
関係付けをするものとされ、それぞれEGブロックのLP,R
P欄に記述されることになる。LP,RPはポイントペアとさ
れ相互に相手のアドレスを示すことで連結される。な
お、この情報LP,RPをここでは、連結情報と呼び、その
ポインタペアを連結ポインタペアと呼ぶことにする。連
結ポインタペアを構成するLP,RPは、同一頂点テーブル
内の相手方のポインタを示すポインタであるので、例え
ば1バイトのような小さいビット数のデータとされて良
い。
このようにして第9図(a)の頂点に対して構成した特
徴点テーブルが第9図(b)に示すものであって、結合
矢線は、それぞれ連結ポインタペアLP−RPによる左右方
向のつながり(X−Y面方向の面内でのつながり)を示
している。
第9図(b)のEGiブロックにおいて、その第2行目
(アドレスi1)のポインタ欄には、第1番目のスペース
ポインタ▲SP1 ij▼がセットされ、またそのLP欄には、
連結スペースポインタLP1がセットされる。連結スペー
スポインタLP1は、それに対してペアとされるべき連結
スペースポインタRPj1がセットされた頂点テーブル内の
アドレスを示す。
連結スペースポインタRPj1は、ポインタLP1がEGiブロッ
クにおける最初のスペースポインタ▲SP1 ij▼に関係付
けられるものであるので、EGjブロックの最初のスペー
スポインタがセットされるべき行すなわちEGjブロック
の第2行目(アドレスj1)にセットされる。ポインタRP
j1は、上述と同様に、ポインタLP1がセットされた頂点
テーブル内のアドレスを示す。
左連結面ポインタLP2、左連結スペースポインタLP3が、
第9図(a)の図形に応じて、第9図(b)のようにEG
iブロックにセットされる。これらポインタLP2,LP3とペ
アとされるべき右連結面ポインタRPj2,RPj3の右連結ス
ペースポインタが、EGjブロックにセットされる。
左連結面ポインタLP4とペアにされるべき右連結面ポイ
ンタRPk2は、特に制限されないが、EGkブロックにセッ
トされるべき最初の右連結面ポインタとされる。これに
応じて、ポインタRPk2は、EGkブロックの最初の面ポイ
ンタがセットされるべき行、すなわち第3行(アドレス
k2)にセットされる。
このように、左連結ポインタとペアにされるべき右連結
ポインタが各EGブロックに順次にセットされている。
ここで、一個の辺EGの右側にも一般にはSP,FPがZ方向
に複数重なって隣接される。このような右側のSP,RPに
対応してRPについてもEPブロックの中に図のようにZ軸
+側から並べれば完全な表現ができる。
第9図(a)において、辺EGiの右側に隣接する部分空
間に対する右連結ポインタRPi1ないしRPi3が示されてい
る。ここで、RPi1及びRPi3は、連結スペースポインタを
意味し、RPi2は、連結面ポインタを意味するものとされ
る。これに応じて、連結ポインタRPi1ないしRPi3は、第
9図(b)のようにEGiブロック内のRP欄に順次にセッ
トされる。
頂点テーブルがこのように構成されることによって、あ
るポインタペアの左側の連結情報LPは、あるポインタペ
アの右側の連結情報RPと連結(LP−RPのポインタペア)
されることになる。なお、第9図(b)において、矢線
による上下方向のつながり方、すなわちRPj1ないしRPj3
のようなポインタが、頂点テーブル内においてLP1ない
しLP3のようなポインタの前に置かれるべきか後に置か
れるべきか、本質的な問題ではない。第9図(b)にお
けるこのような連結ポインタの上下の位置関係は、単
に、辺EGiに対応されるY方向境界面の左に位置する部
分空間及び面のスペースデータをZ軸+側の上の方向か
ら順次表現したことの結果にすぎない。連結ポインタペ
アの設定によって各EGブロックの相対的位置が明確にな
るので、各EGブロックの頂点テーブル内における順序
は、本質的な問題とならない。それ故に、上述のような
上下関係は、各EGブロックが頂点テーブルのどのような
位置に置かれるかによって変ってくる。第9図(b)に
おいて、接続関係にあるスペースデータが何であって
も、そのスペースデータの内容もしくは種類は、そのブ
ロックのKINDの欄の情報を参照することで、特定され
る。すなわちスペースポインタペアSPPiか、辺ポインタ
ペアEPPiか、面ポインタペアFPPiかが認識される。
このような特徴点テーブル22を構成することで、三次元
特徴点テーブルは、二次元特徴点テーブルと同様に順次
隣接サーチをすることが可能となり、一義的な部分空間
や面の部分処理が可能となる。
なお、この場合のサーチの仕方としては、前述のように
2種類ある。すなわち、各辺ブロック内のポインタを上
下方向に辿るところの回転サーチ、言い換えるとZ軸の
上下方向での回転サーチと、スペースデータのポインタ
ペアから左右の連結情報ポインタペアLP−RPを辿って展
開する回転サーチ、言い換えるとZ軸に垂直な回りでの
回転サーチとの2種類である。実際の図形処理の場合、
これらのサーチが組み合わされて利用されることにな
る。
ところで、この第9図(b)の例の三次元図形のための
頂点テーブルもしくは特徴点テーブル22は、特に制限さ
れないが、前述のようにその頂点の座標値(x,y,z)が
先頭位置に配置され、その次に基準となる辺EP0のブロ
ックから順次特徴点テーブルのブロックが並ぶ構成を採
る。
第9図(c),(d)は、多面体の凸頂点Vに対するス
ペースデータを、前記第9図(a),(b)と同様に展
開した場合の例、すなわち凸頂点Vに対して設定される
べきスペースポインタペアSPPi、辺ポインタペアEPPi、
ポインタペアをFPPi等の関係(第9図(c))とこれに
対する特徴点テーブルの関係(第9図(d))を示す例
である。
第9図(c)の図形の場合、頂点VのX座標値は、辺EG
0を介して対向される図示しない相手方の頂点(以下、
頂点V0と称する)のそれよりも大きい(すなわち相対的
にプラス側)ものとされる。頂点VのX座標値は、また
辺EG1を介して対向される図示しない相手方の頂点(以
下、頂点V1と称する)のそれよりも小さいものとされ
る。それ故に、例えば辺EG0とEG1を持つ面の上に隣接さ
れる部分空間は、頂点V0とV1とに設定されるスペースポ
インタペアによって表現される。それ故にまた、頂点V
のための頂点テーブル内のEG0ブロックには、スペース
ポインタは設定されない。同様な理由によって、面ポイ
ンタは設定されない。
第9図(d)の頂点テーブルにおいては、このような空
欄にされるべきデータ欄が効果的に利用される。すなわ
ち、例えばEG0ブロックの第2行目のポインタ欄には、
空間属性を示すデータ▲SA 1 01▼がセットされ、第3行
目の同様な欄には、面属性を示すデータ▲FA2 01▼がセ
ットされる。各行のポインタ欄にセットされるデータが
どのようなデータであるかは、カインド欄にセットされ
る識別データによって指示される。EG0ブロックの第2
行目のLP欄にセットされる連結ポインタLP1によって、E
G1ブロックの第2行目の連結ポインタRP1 1が指示され
る。
部分空間のための属性データは、次のようにサーチされ
る。例えば、頂点Vの頂点テーブルにおいて、EG0ブロ
ックに設置されている▲SA1 01▼は、辺EG0とEG1を持つ
面の上に隣接する空間、すなわち頂点V0とV1とに設定さ
れている図示のスペースポインタペア▲SPP1 01▼によっ
て表現されている空間の空間属性を示すものである。▲
SPP1 01▼が与えられて、その空間属性を求めるには、先
ず▲SPP1 01▼から白矢線で示す回転サーチ(同図▲LP
V0▼RPz v0▼を求めるサーチ)により、V0の特徴点テ
ーブルの中から辺EG0に対応するポインタEP0 1および▲R
Pz v0▼のZ値(EP0 1を持つEGブロックの中の▲RPz v0
の項番、この場合はz=1)を求める。
次に、EP0 1からこれによって指示されるアドレスにある
頂点Vの特徴点テーブルの中のEP0を求め、EP0を含むEG
ブロックの中から先に求めたz=1と等しい項番の位置
を調べれば、▲SA1 01▼が求まる。このとき同じ行のカ
インド欄及びポインタ欄が参照される。その結果、属性
データ▲SA1 01▼が求められる。この場合、属性データ
▲SA1 01▼は、EG0ブロックの最初のスペースポインタ欄
にセットされていることに応じて、辺EG0の左側に隣接
するZ方向上側の部分空間、すなわち辺EG0とEG1を持つ
面上の部分空間、の属性を示すとみなされる。
面のための属性データも同様にサーチされる。
一方、第10図(b)は、第10図(a)に示す凹なる空間
および面(この場合には、EP0のV1から見て左側で且つE
P1の同じく右側に挟まれた空間及び面)を特徴点テーブ
ルの中で表現する場合の例であって、二次元の場合と同
様にスペースポインタSPや面ポインタFPに、r,c,Lの添
え字を設けて区別することになるが、特徴点テーブルの
中の凹なる空間および面を表現するポインタを設置する
EGブロックの情報量が多くなるため、これらを同一EGブ
ロックに設置しようとすると、凹なる部分立体空間を持
つEGブロック欄が大きくなる欠点がある。
そこで、凹でない他のブロックの空き欄に凹のブロック
の特定の情報を記憶して、これを参照できるようにした
ものである。
すなわち、第10図(b)の特徴点テーブル23において、
EG0ブロックの情報をEG1ブロックおよびEG2ブロックに
記憶するものであって、このような情報は、EG1ブロッ
クおよびEG2ブロックの当該欄に*マークを付けて表示
されている。この*マークの情報は、本来は、EP0ブロ
ックに記憶される情報であって、その記憶される位置
は、連結情報ポインタペアcp−rpで示される。
第11図(a)は、二次元図形において、図形EとFとが
重なった重なり図形を示す。このような重なり図形が有
る場合の図形の高速サーチのために、スペースポインタ
ペアを構成する特徴点テーブルに、第11図(b)に示さ
れた「e,f」のような色情報とか、図形コード等を意味
する空間属性データが付加される。このような空間属性
データは、例えば特徴点テーブルのATTR.の欄に設けら
れる。具体的には、重なり図形に対応する複数の空間属
性データのセットのために、特徴点テーブル20のATTR.
の欄の中が複数の空間属性欄にわけられ、それぞれの欄
に空間属性データS−ATRが表示される。空間属性デー
タのために、特別な欄がスペースポインタ対応に追加さ
れてよい。また、このような空間属性データのために、
ATTR.の欄のビットのうち数ビットが空間属性を示すも
のとして割り当てられてもよい。
ここで、X方向の端点でない図形頂点に対応されるよう
な特徴点テーブルもしくは頂点テーブルにおいて、ペア
とされるべきスペースポインタが設定されない場合が生
ずる。言い換えると、特徴点テーブル内に、空きエリア
が生ずる。そこで、空間属性データSAは、X方向の端点
でない頂点の特徴点テーブルの空きエリアに表示されて
もよい。ただし、例えば第4図(e)に示す図形の場合
のようにX方向でない頂点がない場合、空間属性SAが設
置できない。この場合は、同図に示すようにSAを外部に
増設するか、または図形辺上の1箇所に図形形状に直接
影響を与えない二辺のなす角度が180゜の頂点を増設し
てこれを表現する頂点テーブルの空きエリアにSAを設置
する必要がある。
第12図(a)は、第4図(d)と同様に、空きポインタ
が生ずる場合の図形例を示している。第12図(a)にお
いて、空きポインタ部分に、空間属性データSAがセット
されることを示している。第12図(a)の図形に対応さ
れる特徴点テーブルは、第12図(b)のごとくなる。な
お、各テーブルにセットされるべき頂点の座標データ等
は省略してある。
このようにすることにより、図形が重複しているかどう
かは、スペースポインタペアがセットされる特徴点テー
ブルの属性欄ATTR.をプログラム処理にて参照すること
により簡単に探し出すことができる。
この実施例のように、図形空間をX方向に垂直な線で分
割することによって部分空間を形成するとともに、スペ
ースポインタペアを構成するので頂点テーブルを発生さ
せると図形の高速検索が可能となる。図形の検索におい
ては、次のようにX方向の空間辿りとY方向の空間辿り
が組み合わされる。
すなわち、スペースデータとして最初の特徴点テーブル
を参照して、それにペアとなる特徴点テーブルを参照
し、そして次のスペースポインタペアの特徴点テーブル
を更に参照するような順次の検索によって、X方向での
空間辿りが行われる。また、スペースポインタペアから
辺ポインタペアを参照してそれにペアとなる特徴点テー
ブル、次のスペースポインタペアそしてその向こう側の
辺ポインタペアというような検索によって、Y方向での
空間辿りが行われる。これに応じて必要なデータの発生
まで短時間で処理ができる。しかも1つの特徴点テーブ
ルでスペースポインタペアを選択すれば、隣接図形の状
態を調査することが簡単にできる。また、特徴点テーブ
ルに種々の属性情報を付加すれば、図形のAND処理,OR処
理等論理動作をはじめとして多種多用の処理が可能であ
る。
第19図は、図形空間において、図形Tが移動される場合
を示している。このような図形の移動の場合、その図形
Tがどのような図形と衝突するかを検出することが、重
要な問題となる。この第19図に示す二次元図形の衝突の
予測のように1つの図形を移動させた状態で隣接図形と
の関係を見るような場合には、このようなスペースデー
タシステムが特に有効である。すなわち、移動図形の座
標値を時間の関数として時間とともに移動させる場合、
各部分空間の隣接状態をスペースポインタペアにより極
めて容易にサーチすることができる。図形の衝突が発生
したり、空間の分割の仕方が変化したときには、新しい
スペースデータを変化した空間部分において生成する。
このように順次そのスペースデータを検索及び生成する
ことにより簡単に実現できる。
以上のことは、三次元の第9図(b)に見る特徴点テー
ブル22等においても同様であることは容易に理解できよ
う。
ところで、重複図形について三次元で考えて見る。ま
ず、第11図(a),(b)のような二次元図形に対応す
る重なり図形としては、第13図のような2つの四面体の
例をあげることができる。そして第12図(a),(b)
の二次元図形の場合の図形とデータとの関係について
は、三次元でも同様となる。しかしながらその場合の図
示は、その図形関係が複雑となるため、ここで割愛す
る。
図形空間への新たな図形の追加、及び図形空間からの図
形の除去は、部分空間の新たな生成、及び消去を意味す
る。
そこで、次に、第14図(a),第14図(b)及び第14図
(c),第14図(d)に従って、まず二次元におけるス
ペースポインタペアの生成の仕方について説明する。
最初に、第14図(a)の図形の場合を説明する。同図
は、図形空間において、基準として想定する特徴点を持
たない場合に、最初に点Pをセットし、その後、点Qを
セットする最も簡単な例を示している。すなわち、この
場合、先ず基準点としてのある特徴点Pが図形空間に挿
入される。この場合、点Pの1つのみが挿入されること
になるので、他の特徴点は存在しない。ここで、第14図
(a)のテーブルの理解を容易にするために、特徴点テ
ーブルの特徴を、例えば前述の第4図(c)もしくは第
12図(a)等にもとづいて説明する。
前に繰り返えし説明しているように、図形空間は、図形
のX方向の端点を成す頂点のような特徴点によって、複
数の部分空間に分割されているものとみなされる。この
場合、例えば第4図(c),第12図(a)等から明らか
なように、X方向の端点を成し、2つの辺にはさまれた
空間のなす角度が180゜より大の凹角空間においては、
この空間を表現するために、頂点を発する3つのスペー
スポインタが設定される。1つのスペースポインタは、
第4図(a)における▲SPL 1,0▼及び第12図(a)にお
けるスペースポインタSPLのような、頂点から凹角空間
に向って左側に存在する部分空間のためのスペースポイ
ンタであり、1つのスペースポインタは、▲SPr 1,0▼及
びSPrのような、図形辺EP1の左側に隣接し、頂点から凹
角空間に向って右側に存在する部分空間を表現するスペ
ースポインタである。残りの1つのスペースポインタ
は、▲SPc 1,0▼及びSPcのような凹角空間の中央に存在
する部分空間を表現するスペースポインタである。
第14図(a)において、特徴点Pが挿入されたとき、特
に制限されないが、その特徴点Pは、仮想的に2つの点
から成るとみなされている。それ故に、スペースポイン
タSPc1は、特徴点Pに対する同一テーブル内のスペース
ポインタSPc2を示すようにされ、逆にスペースポインタ
SPc2によってスペースポインタSPc1を示すようにされ
る。
前述の空間分割の考えに従うと、図形空間は、特徴点P
が挿入されることによって、点Pを通るX軸に垂直な仮
想線で分解される。特徴点Pのみが存在する場合には、
PよりX座標が負の側の空間は、X=−∞を経由してX
=+∞へ接続し、結果として、PよりX座標が正の側の
空間につながっており、両方の空間が一体となって、SP
c1とSPc2との組で示されるスペースポインタペアで表現
されていると考えても良い。
図形としての点は、辺の特殊例、すなわち、長さのない
辺とみなされて良い。それ故に、特に制限されないが、
第14図のテーブルにおいて、エッジポインタEP0は、そ
れ自体のアドレスを示す特殊構成にされる。この場合、
エッジポインタEP0の参照によって、1つの頂点テーブ
ルが点としての図形を意味することが明らかとなるの
で、スペースポインタSPc1とSPc2の相互の差し合いは、
本質的なものでない、ということが理解されよう。
なお、他のポインタ部分は、空白を表現する空間属性S
を放置する等の方法がある。
次に第2の特徴点として特徴点Qが挿入されたときに、
特徴点Pの前記ループが解除され、特徴点Qとの間でス
ペースポインタペアを形成する。
ここで、特徴点Qが追加されたときの、特徴点P,Qのた
めのスペースポインタベアの生成は、次のようにされ
る。すなわち、特徴点Qのスペースポインタ情報(右側
のスペースポインタSPc2)が記憶されているメモリのア
ドレスが、特徴点Pの特徴点テーブルの対応するスペー
スポインタSP(左側のスペースポインタペアSPc1)の位
置に記憶され、特徴点Pのスペースポインタ情報(左側
のスペースポインタSPc1)が記憶されている位置アドレ
ス特徴点Qの特徴点テーブルの対応するスペースポイン
タSP(右側のスペースポインタSPc2)の位置に記憶され
る。これによって、特徴点QとPとの間の部分空間のた
めのスペースポインタペアが設定される。
同様にして、特徴点Pの特徴点Qに対する外側にあるス
ペースポインタペアは、特徴点Qのスペースポインタ情
報(左側のスペースポインタSPc1)が記憶されているメ
モリの位置アドレスが特徴点Pの特徴点テーブルの対応
するスペースポインタSP(右側のスペースポインタペア
SPc2)の位置に記憶され、特徴点Pのスペースポインタ
情報(右側のスペースポインタSPc2)が記憶されている
位置アドレスが特徴点Qの特徴点テーブルの対応するス
ペースポインタSP(左側のスペースポインタSPc1)の位
置に記憶されることによって設定される。
次に基準点となる特徴点(以下、単に基準点と称する)
に基づきスペースポインタペアを生成する場合について
説明する。
第14図(b)に見るように、第1,第2の基準点をX−Y
座標系の原点と∞(x=+∞,y=+∞)の位置にそれぞ
れ採った場合には、最初に入力した特徴点P以外の特徴
点は、第1の基準点0と第2の基準点∞のみとなる。そ
れ故に、これら2点との間においてスペースポインタペ
アが形成される。
スペースポインタペアの生成は、次のようにされる。先
ず特徴点Pの第1の基準点0に対するスペースポインタ
ペアは、第1の基準点0のスペースポインタ情報が記憶
されている位置アドレスが、特徴点Pの特徴点テーブル
の対応するスペースポインタSPの位置に記憶され、逆に
特徴点Pのスペースポインタ情報が記憶されている位置
アドレスが、第1の基準点0の特徴点テーブルの対応す
るスペースポインタSPの位置に記憶されることによって
生成される。
同様にして、特徴点Pの第2の基準点∞に対するスペー
スポインタペアは、第2の基準点∞のスペースポインタ
情報が記憶されている位置アドレスが特徴点Pの特徴点
テーブルの対応するスペースポインタSPの位置に記憶さ
れ、特徴点Pのスペースポインタ情報が記憶されている
位置アドレスが第2の基準点∞の特徴点テーブルの対応
するスペースポインタSPの位置に記憶されることによっ
て生成される。
このようにして、最初の特徴点についての特徴点テーブ
ルが生成され、その結果としてスペースポインタペアが
生成される。
次に、第2の特徴点として特徴点Qが追加されて、この
第2の特徴点Qが第1の特徴点Pと原点0との間に挿入
されたと仮定すると、特徴点PのX方向負側および正側
に存在する点は、特徴点Qと第2の基準点∞とになる。
そして特徴点Qは、第1の基準点である原点0と特徴点
Pとの間に存在する。そこで特徴点PのX方向負の側の
スペースポインタは、今度は、その特徴点Qに対するス
ペースポインタとペアにされる。すなわち、特徴点Qの
スペースポインタ情報が記憶されている位置アドレス
が、特徴点Pの特徴点テーブルの対応するスペースポイ
ンタSPの位置に記憶され、逆に、特徴点Pのスペースポ
インタ情報が記憶されている位置アドレスが、特徴点Q
の特徴点テーブルの対応するスペースポインタSPの位置
に記憶される。この場合、+∞側のスペースポインタペ
アについては変更がない。
同様にして、特徴点Qの第1の基準点0に対するスペー
スポインタペアの生成のために、第1の基準点0のスペ
ースポインタ情報が記憶されている位置アドレスが、特
徴点Qの特徴点テーブルの対応するスペースポインタの
位置に記憶され、第1の基準点0のスペースポインタ情
報が記憶されている特徴点Qの特徴点テーブルの位置ア
ドレスが、対応するスペースポインタの位置に記憶され
る。
以上は、図形データベースへの点データの初期入力の方
法である。同様な手法は、図形データベースに複数の図
形が既に入力されている場合にも同様に成立する。
点図形のセットは、上述のように、入力される点に応じ
て、図形空間が次々と分割されることによって行われ
る。これに対して、図形辺のセットの場合、新たにセッ
トされる図形辺とすでに図形空間内にセットされている
図形辺及び部分空間との相互の関係を明確にする必要が
生ずる。図形処理システムは、このような新たな図形辺
の新しい処理方法を含む。
簡単に言うと、図形辺データのセットは、点を最初に入
力し、次にこの点を基点として得るべき辺に沿って適当
な線分(以下、入力線分と称する)を延ばして行くこと
によって行われる。入力線分の伸長に伴って、入力線分
の分割トポロジー、及び部分空間のトポロジーの変化が
生ずる。このような変化において、エッジポインタやス
ペースポインタの接続関係が変化される。以下このよう
なエッジポインタやスペースポインタの接続関係が変化
されるべき点をイベントと称する。
次に、以上の点データの入力方法で入力した点をもとに
して図形の辺を入力する方法について二次元の場合から
説明する。
まず、第14図(c)及び第14図(d)に従って図形(以
下、図形Aと称する)入力について説明する。図形Aの
入力のために、前述の点の入力処理により1つの頂点a0
が入力される。その後、第14図(d)の(I)から(V
I)から見るように、頂点a0から出発して図形Aの辺に
沿って折れ線atが順に伸ばされる。線atの伸長
に伴って空間分割の変化(イベントEjと呼ぶ)が必要に
されたなら、スペースポインタペアSPPiが順位更新され
る。図形Aの辺を一巡し終わったら、図形Aの内部の空
間のスペースポインタペアSPPiに図形Aの図形名や色な
ど空間属性が付加される。これによって図形Aの入力が
完了される。
以上の手順を図形Aの展開処理と呼ぶ。atの伸長に
伴なうイベントは、基本的には、atが伸びていっ
て、その先端tが周囲の空間の境界Bx又はByを突き抜け
る時点のみに発生する。それ故に、スペースポインタペ
アSPPiのメンテンナンスは間欠的でよい。
起こり得るイベントの種類は、上述のatの境界Bx,B
yの貫通に、atの始点と終点の処理を加えて第14図
(c)のようになる。
イベント処理プログラムは、次に発生するイベントの種
類を判定し、その判定結果にもとづいてポインタの接続
変更を行うように構成されればよい。イベントの種類を
減らして取り扱いを簡単化するために、第14図(d)に
示すように最初に追加図形の辺をすべてX-からX+方向へ
の折れ線に分解して、atの伸長をすべて一方向に限
定する方法をとってもよい。
展開処理は、前述の回転サーチ等と同じく、入力図形辺
の付近の空間(atの伸長処理)及び、入力図形内部
(空間属性付加)と限定されたローカル処理である。そ
れ故に、後に第16図(a),(b)を使って説明する点
入力の高速化手法(道しるべ処理)と合わせて、スペー
スポインタファイル(SPF)のメンテナンス時間は、O
(N0)程度、SPF全体の初期生成時間もO(N)程度と
高性能が見込まれる。ただし、特殊ケースが無視でき、
かつ入力図形内部の空間属性を付加すべき図形空間数が
全頂点数Nと無関係なことが必要である。
以上の結果からSPFは、上記条件付きではあるが、少な
くともオーダーの上では、オンライン用にも、バッチ処
理用にも適した高性能図形データ・ベースとなることが
期待される。
第14図(e)は、スペースデータ形成のための処理フロ
ーチャートの一例を示している。同図のフローチャート
は、図形データ入力において最初に行われる図形頂点も
しくは特徴点のための処理フローを示している。図形辺
のための処理フローは、後で第14図(f)の処理フロー
チャートに沿って説明される。
第14図(e)の処理ステップSTPA1において、対象とさ
れる頂点a0の座標値Xa,Ya及び図形の属性を示す属性デ
ータが入力データリストにセットされる。また、この入
力データリストの参照によって、未処理の頂点が登録さ
れるべきペンディング頂点テーブルに頂点a0に対応され
た未処理表示用のデータがセットされる。
ステップSTPA1の次の処理ステップSTPA2において、点デ
ータ処理のスタートが指示される。
処理ステップSTPA3及びSTPA4において、処理対象とされ
る頂点が位置される部分空間がサーチされる。
すなわち、ステップSTPA3において、頂点a0のX値Xaを
含むスペースポインタペアSPPjがサーチされる。このサ
ーチは、適当なスペースポインタペアを出発点とし、順
次にXaに近いスペースポインタペアをたどる方法によっ
て行われる。このサーチを、第4図(a),(b)のよ
うな頂点テーブルと、第5図(b)のような図形空間例
とを利用して更に詳しく説明すると、次のようになる。
すなわち、先ず、サーチの最初のスタートとなるポイン
タペアに対応された第1頂点テーブル内の最初のスペー
スポインタが参照される。そのスペースポインタによっ
て、第2頂点テーブルの対応されるスペースポインタ
(第2スペースポインタと称する)が直接にサーチされ
る。第2スペースポインタが設定された第2頂点テーブ
ルにおけるX座標値欄が参照される。第1頂点テーブル
におけるX座標値と第2頂点テーブルにおけるそれと、
Xaとが比較される。もしXaが第1,第2頂点テーブルのX
座標値によって示される範囲内にあるなら、ステップST
PA3の処理は終わる。もし、Xaが、第1,第2頂点テーブ
ル内のX座標値によって示される範囲から外れているな
ら、次の処理が行われる。
すなわち、第1,第2頂点テーブルのうちの、Xaに近いX
座標データがセットされている頂点テーブルが選択され
る。選択された頂点テーブル内にセットされているスペ
ースポインタのうちの新たなスペースポインタが選択さ
れ、その新たなスペースポインタによって更に他の頂点
テーブルにおけるスペースポインタが参照される。
以下、同様な処理が繰り返えされることによって、最終
的なXaを含むスペースポインタSPPjがサーチされる。
なお、ステップSTPA3のサーチをより高速化するために
は、Xaに近いスペースポインタペアを最初に選択する必
要がある。最初に適切なポインタを設定する望ましい方
法として、第16図(a),(b)のような道しるべアド
レステーブルを利用する方法がある。それについては後
で詳細に説明する。
ステップSTPA3においてスペースポインタペアSPPjがサ
ーチされた後に、ステプSTPA4において、そのSPPjによ
って表現されている部分空間の外形が求められる。図形
外形のうちのX境界は、スペースポインタペアがセット
される頂点テーブルにおけるX座標値それ自体によって
示される。図形外形の上のY方向外形は、第5図(b)
に示されたようなロータリーサーチによって求められ
る。ロータリーサーチーと、第4図(a),(b)のよ
うな頂点テーブルとの関係は、次のようになる。
すなわち、1つの頂点テーブルにおいて、図形の頂点に
関係づけられるスペースポインタ,エッジポインタは、
その頂点の左回り方向の順に、順次セットされている。
それ故に、左まわりロータリーサーチは、各頂点テーブ
ルの注目されるべき行の次の行を参照することと等価と
なる。例えば、前述のステップSTPA3におけるSPPjのサ
ーチの結果として第4図(a)のようなテーブルの第5
行目のスペースポインタSPcが求められたなら、左まわ
りロータリーサーチの実行によって、同じテーブルの第
6行目のポインタ▲SPL 1,0▼が参照される。ポインタ▲
SPL 1,0▼によって指示される他の頂点テーブル(第2の
頂点テーブル)におけるポインタが参照される。同様
に、第2頂点テーブルにおいて、参照されたポインタの
次の行が参照される。
このようなサーチによって、エッジポインタがサーチさ
れたなら、そのエッジポインタによって示される図形辺
が求められる。すなわち、そのエッジポインタの参照に
よって、それと対にされるべきエッジポインタが求めら
れ、次に、その2つのエッジポインタがセットされた2
つの頂点テーブル内のX,Y座標値が参照されることによ
って、図形辺が求められる。2つのエッジポインタによ
って明らかとなる図形辺のX範囲が、目的とするスペー
スポインタペアSPPjによって明らかとなる部分空間の範
囲なら、求められた図形辺は、求められるべき部分空間
のY方向プラス側の外形辺を意味する。もしそうでない
なら、上述によって求められた新たなエッジポインタの
次の行にセットされているポインタが参照される。以下
同様なサーチ及び判定の繰り返えしによって、目的とす
る図形空間のY方向+側の外形辺が求められる。
目的とする図形空間のY方向一側の外形辺も同様なサー
チ及び判定によって求められる。
このようにステップSTPA4において、スペースポインタS
PPjによって表現される部分空間の外形が求められたな
ら、次の処理(ステップSTPA5)が行われる。
処理ステップSTPA5において、セットすべき頂点(Xa,Y
a)が、ステップSTPA4において求められた部分空間の内
部に有るか否かが判定される。
もし範囲外と判定されたなら、ステップSTPA6における
処理が実行される。ステップSTPA6において、以前に求
められた部分空間の上方及び下方に隣接する部分空間の
うちの、セットすべき頂点(Xa,Ya)に近い部分空間が
サーチ(Y方向サーチ)される。このサーチにおいて、
予め求められたスペースポインタの上の行及び下の行に
位置するスペースポインタの参照と、前述と類似の判定
が行われる。この種の参照及び判定は、前述と同様であ
るので、その詳細な説明を省略する。
ステップSTPA6のY方向サーチの後に、再びステップSTP
A4,STPA5の処理が行われる。以後、求められる部分空間
が頂点(Xa,Ya)を含むようになるまで、ステップSTPA4
ないしSTPA6の処理が繰り返えされる。
以上の各ステップによって、頂点(Xa,Ya)を含む部分
空間が求められたなら、次の処理(ステップSTPA7)が
行われる。
ステップSTPA7において、予め求められた部分空間が頂
点(Xa,Ya)によって分割されるように、スペースデー
タが設定される。
すなわち、頂点(Xa,Ya)に対する頂点テーブルの第2
行目のようなスペースポインタ欄に、SPPjを構成する一
方のスペースポインタを指示するスペースポインタがセ
ットされ、第4行目のようなスペースポインタ欄に、SP
Pjを構成する他方のスペースポインタを指示するスペー
スポインタがセットされる。SPPjを構成するスペースポ
インタは、それぞれ頂点(Xa,Ya)のための頂点テーブ
ルにおけるスペースポインタを指示するように変更され
る。
ステップSTPA7の後に、図示しないけれども、頂点a0
対する頂点テーブルの作成を示す指示データがペンディ
ング頂点テーブルから消去される。その後、ペンディン
グ頂点テーブル内に未処理を示す指示データが残ってい
るか否かがチェックされる。図形がドットのみから成る
場合、上記消去処理の後のペンディング頂点テーブルは
空となる。それ故に、図形入力処理は終わる。
第14図(f)は、図形辺データの形成のための処理フロ
ー、すなわちデベロップメント処理のフローを示してい
る。
特に制限されないが、第14図(f)のフローは、図形の
各頂点のうちの1つの頂点について先ず頂点テーブルを
作成し、その後その頂点から辺を延ばす、というフロー
となっている。この方法は、各頂点について第14図
(e)のような処理によって頂点テーブルを作成する方
法よりも高速処理を可能とする。
先ず、ステップSTPB1において、第14図(e)のような
処理が実行され、その結果として1つの図形の最初の頂
点a0についての頂点テーブルWが作成される。
次に、ステップSTPB2において、その頂点a0に対応され
るペンディング頂点テーブルが参照され、未処理を示す
指示データの有無がチェックされる。頂点a0が、点図形
を示しているなら、第14図(e)に関連して説明した消
去の結果として、ペンディング頂点テーブルには、未処
理データを示す指示データは残っていない。それ故に、
この場合、処理は終了する。頂点a0が、図形の複数の頂
点のうちの1つなら、上記消去の後にも、頂点間の辺の
形成を意味する指示データがペンディング頂点テーブル
内に残っている。それ故に、この場合、次のステップST
PB3の処理が行われる。
ステップSTPB3において、ペンディング頂点テーブルに
よって示された次の頂点aiが参照される。
ステップSTPB4において、最初に選択された頂点a0と、
次の頂点aiとの間で第14図(d)のような線分atを
構成するための補助的な頂点tを示す補助頂点テーブル
が用意される。この場合、頂点a0とtとの間に線分a
tが設けられるので、これらの頂点のためのそれぞれの
頂点テーブルには、エッジポインタペア,スペースポイ
ンタペアが設定される。特に制限されないが、ステップ
STPB4において設定される頂点tは、頂点a0と実質的に
同じX,Y座標を持つようにされる。すなわち線分at
は、実質的にその長さが0にされる。
ステップSTPB4の後に、ステップSTPB5の処理が実行され
る。
ステップSTPB5のおいて、補助頂点tが、予め所望され
た図形頂点aiに向けて所望座標値だけ移動される。すな
わち、補助頂点テーブルにおけるX,Y座標データ欄のデ
ータが変更される。
ステップSTPB6において、イベントEjの発生がチェック
される。イベントEjの発生は、第14図(c)及び第14図
(d)から明らかなように、基本的には、移動された補
助頂点tが、既設頂点に対応して構成されているX-及び
X+境界線を越えたか否か、及び既設図形辺を越えたか否
かをチェックすることによってチェックできる。
ステップSTPB6によって、イベント発生が検出されたな
ら、ステップSTPB7のイベント処理が実行される。
ステップSTPBのイベント処理において、補助頂点テーブ
ルにおける各種ポインタのつなぎかえが行われる。ここ
で、イベント発生後の各種ポインタのつなぎかえ処理が
具体的にどのように行われるかについては、前述の第14
図(c)及び(d)によって実質的に明らかであるの
で、更にの説明を省略する。
ステップSTPB6もしくはSTPB7の後に、ステップSTPB8の
判定処理が行われる。判定処理において、補助頂点t
が、予め所望された頂点aiまで移動されたか否かが判定
される。補助頂点tが未だ頂点aiまで移動されていない
なら、再びステップSTPB5以後の処理が実行される。
ステップSTPB8において、補助頂点tと頂点aiとの一致
が判定されたなら、次の処理(ステップSTPB9)が実行
される。
ステップSTPB9において、頂点aiが未処理頂点であった
なら、その頂点aiについての指示データがペンディング
頂点テーブルにセットされる。その後、ステップSTPB10
の処理が行われる。
すなわち、ステップSTPB10において、頂点aiについての
頂点テーブルが用意される。この場合、頂点aiに対して
セットされるべきポインタデータは、補助頂点tのため
の頂点テーブルに予めセットされているので、容易に形
成することができる。
ステップSTPB10の後のステップSTPB11において、ペンデ
ィング頂点テーブルから頂点a0とaiとの間の辺の形成を
指示する指示データが消去される。
その後のステップSTPB12において、ペンディング頂点テ
ーブルが参照され、その中に未処理データの有無を示す
指示データが存在するか否かがチェックされる。図形
が、頂点a0とaiとの間の線分のからみから成る場合、ペ
ンディング頂点テーブルは、上記消去の後において指示
データはなくなる。それ故に、この場合、処理は終了す
る。図形が多角形図形のような場合、頂点a0,aiのそれ
ぞれには、複数の辺が設けられる。それ故にこの場合、
上記ペンディング頂点テーブル内には、まだ未処理デー
タを示す指示データが残る。従って、この場合は、次の
ステップSTPB13の処理が実行される。
ステップSTPB13において、ペンディング頂点テーブル内
の未処理辺を示す指示データが参照される。予め前記各
ステップによって頂点テーブルが設定された頂点のう
ち、未処理辺を持つ新しい頂点が、古い頂点a0と差しか
えられる。言うまでもなく、古い頂点a0がまだ未処理辺
を持つなら、その古い頂点a0が新しい頂点とされて良
い。
ステップSTPB13の後、再びステップSTPB2の処理が実行
される。
このようにして、第14図(f)の処理は、ペンディング
頂点テーブルが空になるまで実行される。
なお、展開とは逆に削除処理があるが全く逆のなので説
明を省略する。
次に、三次元のスペースポインタペアSPPiの生成処理に
ついて説明する。
三次元の場合、その生成処理時間が特殊ケースを無視で
きるならば、O(N)のオーダーであり、一部修正等メ
ンテナンス処理は、同じくO(N0)(Nと無関係)と高
速である。
三次元SPFの生成も二次元の場合と同様SPFへの図形の1
個ずつの追加の繰り返しで実現する。
第15図(a)に示すように、 の入力のための方法として、最初に1つの頂点a0を後述
するように入力した後、図形の辺よりなるワイヤーフレ
ームを入力し、次にそのワイヤーフレームに面を張り、
最後に内部空間を空間属性で埋める(SPPに属性を付加
する)段階的な方法が考え易い。
なお、1個の図形を追加する方法は、上記の他、点a0
入力してからワイヤーフレームを作らない面を直接入力
する方法や、点a0から の体積を膨張させて行く方法等も考えられる。
SPFに点a0(xa0,ya0,za0)を追加する手法は、基本的に
は、二次元と同じで良い。すなわち、点a0を含む空間SP
Pa0をSPFの中から検索し、検索された空間SPPa0を切断
し、点a0を継ぎ込めばよい。SPPa0見付けるには、次の
ようにされる。先ず最初に任意のSPP0をとり、そこから
X座標の範囲が点a0のX値Xa0を含む空間に達するまで
X方向に隣接空間を辿る。次に、Xa0を含む空間ばかり
をY方向に辿る。すなわち、xa0とya0の両者を範囲に含
む空間がサーチされる。最後にそこからxa0,ya0両者を
含むZ方向隣接空間を辿る。このような方法によれば必
ず点a0に到達する(二次元の例、第14図(c),(d)
等参照)。
この方法によれば、検索ルートにループや振動はなく、
検索時間は、SPP0と点a0の間の距離にほぼ比例する。そ
れ故に、全体頂点数Nに対し特殊ケースが無視できれば
平均O(N1/3)程度の速度が得られる。さらに、高速
化するには、第16図(b)に見るように、図形空間の全
体をm個の区間に分割し、各区間に直接アクセスできる
道しるべ点gi(i=1,2,……,m)をあらかじめセットし
ておき、点a0の座標値が与えられたらまず最寄りの点gi
へ直接飛んで、そこから前記方法で点a0へ接近する、一
種のバケット・ソート方式を採用すれば、特殊ケースを
除いてO(N)のオーダーとすることができる。
次に、ワイヤーフレームのSPF展開について説明する。
前述したように点a0を入力した後、次は第15図(b)に
従って点a0から発する線分atを の辺に沿って順に延ばす。すなわち、 の辺よりなるワイヤーフレームをSPF上に展開する。a
tが伸びて、先端tが周囲空間の上下,左右どこかの
壁を突き抜けるとき、空間分割のトポロジーが変化し、
これに応じてSPPの接続を変える必要が起こる。これを
前述の二次元図形の場合と同様にイベントEj(j=1,2,
……)と呼ぶ。
atを の辺に沿って伸張させながら、イベンと毎にSPPの更新
を行い、 の辺全体をカバーすればワイヤーフレーム入力は、完了
する。
Ejの種類は、三次元では、atがBz(図形面)を貫通
する場合(第15図(c)参照)があるが他は、二次元と
同じになる。これが、第6図(d)で空間分割をZ方向
から見るとそれが二次元と同様に見えることからも理解
できよう。
ワイヤーフレーム入力により、 の周囲の空間は、 の頂点を通りX軸に垂直な面Bxと、 の辺を含みZ軸に平行な面Byによって新たに分割され
る。新たなそれぞれの空間にSPPが設定される。
以上の処理は、入力図形の近傍空間のみで行われるか
ら、特殊なケースを除けばO(N0)のオーダーになる。
次に、面の展開について説明する。
ワイヤーフレーム入力が終わったので、次は、面を張
る。
の面の展開処理は、第15図(d)のように行われる。す
なわち、面の展開処理は、始点を の面GのX-端aiにとり、 の面G上にあって特に制限されないがX軸に垂直な先端
線Tを持つ部分面 を、先端TをX-端からX+方向へ動かしながら拡げて行
き、これに伴って の周囲空間のSPPを更新して行く処理である。
先端線TがX+方向へ動いて、既設図形によってできてい
る空間の外壁面By,Bzの折れ線を通過するとき、空間分
割のトポロジーが急変する。これをイベントEj(j=1,
2……)という。以下、Ejが発生した直後のTをTjと称
する。
TjとBy,Bzとの複数個の交点tjk(k=1,2,……)には頂
点テーブル(特徴点テーブル)が設置されており、かか
る頂点テーブルにおいて、周囲空間のSPPを構成するSP
がセットされている。頂点テーブルは、イベントEj発生
の都度更新される。
イベントEjにおける空間のトポロジーの変化が、イベン
トEjを発生したtjkのまわりだけに生ずるので、先端線
Tを移動させたときの頂点テーブルの更新は、第15図
(e)のごとくTj−1にイベントEjを通過する部分τj
を追加して、τj−1を削除するプログラムによって行
うことができる。このとき同図,部は、イベントEj
前後で同形であるからそのまま流用できる。
τjの追加は、次のように行われる。すなわち、第15図
(e)に示すように、 の面上の線分 をτjに沿って伸ばしながら既設空間境界b3,b4,b5等と
の交点に頂点テーブルを設定して行き、続いてそのX-
に面を張る 面Z+,Z-側各空間に別々のSPPを設置することで表現)。
この方式により、各種形状のイベントEjに対処できる。
第15図(f),(g)は、イベントEj前後のSPPの接続
状況の例である。
イベントEj通過の次のEj+1を見付けるには、tj,kを作
っている辺又はtj,kから発しているSPPのX+方向にある
頂点のうち、最も手前の(X座標の小さい)ものをとれ
ばよい。先端線Tの移動を進めて行って、イベントEj+
1が無くなれば展開は完了する。
以上の面の展開は、特殊なケースを除けばすべて処理が の面の周囲近傍空間で閉じ、遠方の図形とは無関係なの
で、O(N0)オーダーの処理である。
以上、頂点入力,ワイヤーフレーム,面の展開それぞれ
がO(N0)の処理なので、全体SPFの初期生成も、特殊
なケースが無視できれば、O(N)の高速性が期待でき
る。
次に、特徴点の挿入,追加について説明する。
さて、重複処理,図形論理処理,衝突処理等において、
特定の特徴点(又は頂点)を、ある部分空間に追加又は
挿入するためには、前述のように(第14図(e))この
部分空間を代表するようなスペースポインタペアを捜
し、それ又はそれに隣接する特徴点と特定の特徴点との
間に新しい結合関係を形成する必要がある。
そのような係合関係の形成のために、順次スペースポイ
ンタペアをサーチして行くことも考えられる。しかしな
がら、それでは時間かかかり過ぎる。そこで次のような
補助特徴点を設定する方法により、最も関係するスペー
スポインタペアを探索でき、その結果、探索時間を短縮
できる。
二次元の場合では、第16図(a)に見るように、図形が
置かれる空間は、その座標がマトリックス状のブロック
に区分された状態で管理される。すなわち、図形空間の
各ブロックの中央に図形空間上の特徴点とは全く関係し
ない特徴点(以下、道しるべ特徴点と称する)g1,g2,…
…,gi,……,gmが設定される。補助特徴点もしは道しる
べ特徴点g1,g2,……,gi,……,gmのそれぞれに対して特
徴点テーブルが設定される。道しるべ特徴点g1ないしgm
に対応する特徴点テーブルには、道しるべ特徴点g1ない
しgmの相互がこのように関係付けられるように、スペー
スポインタペアが設定される。図形空間上に図形が存在
する場合、図形の各特徴点と道しるべ特徴点との間にも
スペースポインタが設定される。
追加すべきある特徴点a0を含むところの部分空間を代表
するスペースポインタペアを探す場合、まず、特徴点a0
座標値に基づいて、道しるべ特徴点g1,g2,……,gi,…
…,gmが探索され、その結果として、その追加すべき特
徴点a00)座標値を包含するブロックとなる特徴点giが
探し出される。次に、この特徴点giをスタートポイント
にして、第14図(e)の手順で与えられた追加すべき特
徴点a0を含む空間を表現するスペースポインタペアSPPa
0が検索される。ここで、SPPa0が接続されている特徴点
の一方をk0と称し、他方をk0′と称するものとする。次
に、スペースポインタペアSPPa0が切断され、あらたに
特徴点a0と前記特徴点k0とのスペースポインタペアSPPa
0k0が生成される。同様にSPPa0が接続されていたもう一
方の特徴点k0′についても、特徴点a0との間でスペース
ポインタペアを生成する。
特に制限されないが、追加もしくは削除すべき特徴点a0
の近くの道しるべ特徴点を容易にサーチできるようにす
るために、道しるべベアドレステーブルが設定される。
道しるべアドレステーブルは、第16図(a)に示されて
いるように、図形空間の各X方向範囲を示すデータX1
いしX4と、Y方向範囲を示すデータY1ないしY4によって
参照される記憶エリアを持つ。各記憶エリアには、道し
るべ特徴点のための特徴点テーブルのアドレスを示すデ
ータが予め設定されている。以上の説明では、分り易さ
のために、図形空間をX1ないしX4およびY1ないしY4のよ
うにX,Y軸双方につき4等分したが、実際には、夫々何
等分しても良い。
従って、具体的には、道しるベアドレステーブルの利用
によって、ある特徴点a0の座標値(x0,y0)から道しる
べ特徴点giのスペースポインタペアを求め、次に、特徴
点a0が挿入されるべき空間を代表するスペースポインタ
ペアのつながる現実の図形についての特徴点k0を、特徴
点giの空間ブロックの範囲で検索して行くことになる。
道しるべ特徴点のためのスペースポインタペアは、特に
制限されないが、実際の図形の特徴点のスペースポイン
タペアとは別に設けられ、そのブロックの範囲内におい
て別途図形の各特徴点のスペースポインタとペアをなす
ようにされる。勿論、既にSPFにある数の図形がセット
されている時には、それら図形の頂点または特徴点を道
しるべとして使うことは、何の問題もない。
一方、三次元図形の場合には、図形空間が第16図(b)
に見るようなマトリックス状にブロック分けされ、各立
体ブロックに道しるべ特徴点g1ないしgmが設定される。
従って、三次元図形の場合も、二次元図形の場合と同様
な処理を行うことになる。
ところで、スペースポインタペアの生成において、特殊
な図形,線については、それぞれ特定の条件付けを行
う。
例えば、図形が、折れ線グラフのような線分のみの組合
せから成る場合が問題となる。この折れ線グラフのよう
な図形に対する問題は、線分をどのように表現するかと
いう問題と等価である。線分は、例えば図形辺の一種と
みなされる。折れ線グラフの先端は、例えば三角形のよ
うな図形における辺と異なり、開放される。そこで、折
れ線グラフを構成する各線分は、それぞれの端点間に設
定されるスペースポインタペアと、エッジポインタペア
とよって表現される。折れ線グラフの一方の終端と他方
の終端とに対応される特徴点テーブルには、線分の終端
を意味するところの属性データがセットされる。
直線から成るような線分や図形辺の2つの端点が、互い
に同じ座標値を持つ場合、部分空間とスペースポインタ
ペアとを対応させるというスペースモデリングの一様性
がくずれないようにする必要がある。そこで、例えば、
第17図(a)に示されたようなX軸に垂直な線分もしく
は辺が存在する場合、その線分もしくは辺みは、傾斜し
た線とみなされる。但し、そのみなしは、図形処理プロ
グラムによって処理されるべきものであり、特徴点テー
ブルにセットされるX座標値の変更を意味するものでは
ない。すなわち、1つの線分もしくは辺に対応する2つ
の特徴点テーブルの参照の結果として、その線分もしく
は辺の一方の端点と他方の端点のX座標値が互いに等し
いと判定されたなら、図形処理プログラムにおいて、Y
座標値の大きい方の端点が、第17図(a)のように右側
または左側にあるとみなされる。同様に、X座標値が等
しい場合のスペースポインタペアは、第17図(b)に見
るように、2つの点のどちらかが右(又は左)にある点
とみなされた上で形成される。さらに、2本の線が重な
るような線のときには、第17図(c)に見るようにこれ
らが微小に離れているものとみなされる。
第17図(d),(e)は、それぞれ辺ポインタペアの特
殊な状態の説明図である。これらは、自己自身を相手方
の辺ポインタとしてペアを形成する例を示している。さ
らに第17図(f)は、交叉点の場合のスペースポインタ
ペア及び辺ポインタの例を示している。
また、第17図(g)は、図形の一部に曲線がある場合の
スペースポインタペアの形成についての説明図である。
一方、三次元においても同様な状態が存在する。第18図
(a)のようなコーナー貫通点を持つ貫通図形の場合、
第18図(b)にに見るような特徴点テーブルにされる。
また、三面交叉関係では、第18図(c)及び(d)に見
るようなものとなる。
第18図(a)のような貫通図形の場合、貫通辺の手前側
の辺を表現するエッジポインタEP0と向こう側の辺を表
現するEP2とは、本来1つの辺を構成しているものであ
る。そこで貫通辺をたどる図形処理を容易にするため、
その貫通辺を互いに指し合うポインタ(以下、ペネトレ
ーションポインタ)を設定しておくことが望ましい。こ
のようなペネトレーションポインタは、第18図(b)に
おいて記号PEPによって示されている。三次元図形に対
するEGブロックについてすでに第9図(b)において詳
細に示されているので、第18図(b)は、比較的簡略化
された図面とされている。第18図(b)EG0ブロックに
おけるポインタPEPは、例えば第9図(b)のEGjブロッ
クのエッジポインタEPjがセットされるべき行のRP欄に
セットされる。同様に、EP2ブロックのPEPは、第9図
(b)のEGiブロックのエッジポインタがセットされる
べき行のRP欄にセットされる。第18図(a)の場合、辺
EP1及びEP3は、上記のような意味での貫通辺でない。そ
れ故に、第18図(b)のテーブルにおいて、辺ブロック
内の貫通辺を示すべき属性欄を空とされる。
三面交叉を示す第18図(c)及び(d)も、上記二面交
叉を示す場合と類似の構成にされている。
さて、図形の運動について、二次元図形の場合を示す
と、第19図のようになる。同図において運動図形Tが移
動されることによって変化する空間関係は、斜線で示す
空間のみであることが判る。そこで、以上のようなスペ
ースポインタペアにより空間を表現していれば、その処
理は、隣接空間の範囲で処理するようにすればよく、図
中、斜線の部分の空間に対応する特徴点テーブルのデー
タのみ注意して処理すればよいことにある。
同様なことは、三次元にあっても言え、隣接立体空間を
注意して処理すればよいことになる。
したがって、図形の衝突検出とか、移動処理が非常に簡
単な処理となる。特に、三次元では、ロボットの移動に
おける衝突検出をあらかじめロボットの移動内容をデー
タインしておくことで処理が可能である。このようなこ
とは二次元における迷路の処理のような場合にも適用で
きることはもちろんである。
ところで、三次元において重要な処理の1つとして、隠
れ面消去がある。
第20図は、隠れ面消去の説明図である。
三次元図形をマトリックス変換によって、二次元図形の
透視図に変換し、後ろと前の図形の重なった部分の後ろ
の図形部分を削除すると隠れ面消去が可能となる。
第20付に三次元図形表示の概念を示す。
隠れ面消去処理では、スクリーン面に投影された二次元
図形の重なりチェックと表示優先度判定が、二次元スク
リーンSPFの上で行われる。SPFでは処理が一図形ずつ行
えるので、これを三次元ワールドSPFと組み合わせると
以下に述べる可視空間追跡法によって処理速度を画期的
に上げることが可能になる。
第21図にその原理を示す。処理は、最初に三次元SPFに
おいて視点を含む部分空間Ωからスタートする。視点
から発した視線が通過する(可視の)部分空間の壁面が
順次透視変換され、スクリーンSPF上の重なりチェック
と、図形の可視性の判定が行われる。SPFの隣接空間検
索機能を使って表示すべき空間が手前の側から逐次的に
検索される。
この場合、可視空間は、必ず可視透明空間の向こう側に
隣接し、不透明又は不可視壁面の向こう側の空間は不可
視であるから、可視空間のみを検索し、不可視空間は検
索しないことで、従来の手段に比べてオーダー違いの効
率向上が可能になる。以下、本方式の特徴を列挙する。
(1) 三次元SPF上で一貫処理が可能。
(2) 可視空間のみで処理するので高速。
第20図の図形としての家を外側から見るとき、家の中の
間取り、家具等は検索しない。スクリーン外の不可視空
間も調べないので、従来のクリッピングより効率が高
い。処理時間は特殊ケースを除きO(N0)、可視空間数
をnとすれば、O(n)となる。
(3) 視点変更が高速で自由。
従来の透視変換後にクリッピングを行う方式では、視点
変更時には全体図形の再処理を要したが本方式では探索
した可視空間のみ処理すればよいので高速。
(4) 三次元図形のビックマップが高速容易。
スタイラス/ペン,マウス等により指示されたスクリー
ン図形は、二次元SPFで高速探索できる。三次元ワール
ドSPFの図形は、スクリーンSPFの図形とポインタで接続
しておけば、すぐに判明する。
(5) 画面部分の修正ができる。
スクリーンSPFで変更部分のみの隠れ面処理ができるだ
け。図形を一部削除したりしたらその後の部分だけにつ
いて可視空間追跡を行えばよい。
(6) 表面画面のベクター/ラスタ変換が容易。
スクリーンSPFにより、図形とラスタとのANDをとればよ
い。静電ブロッタ等へ直接出力できる。
(7) Z−バッファ等特殊ハード不要。オール・ソフ
ト,汎用性,移植性高く、低システム・コスト,ピクセ
ルによる精度制限がなく、ズーミングでも画面が荒れな
い。プロッタ等大画面でも隠れ面消去出力できる。
さて、第22図は、二次元において、図形データが大規模
である結果として主メモリの中に一度に入り切れない場
合のスペースポインタペアの形成の仕方を説明するため
の図である。この場合、図形空間が複数の領域に分割さ
れる。領域の境界部分にユーザには見えない境界線がダ
ミーとして挿入され、スペースポインタペアをその領域
の範囲に限定して処理するように構成する。これは、三
次元においても同様な関係で取り扱うことができる。
ところで、部分処理として有効な方法として図形認識を
挙げることができるが、例えば第23図に見るような図形
から四角の中に三角形が内在される図形Rを探し出す問
題では、スペースポインタペアを順次サーチし、隣接図
形処理として内在された図形を判定することにより簡単
に探し出すことが可能であり、この点も二次元図形,三
次元図形とも変わりがない。
さて、第24図(a)は、二次元において、空間の分割の
仕方を図形の各頂点に採ることなく、特徴のある頂点を
選択して選択的に空間分割した場合である。三次元でも
同様であり、第25図(a),(b)がこれに対応する。
また、第26図(b)は、二次元で座標系を極座標に採っ
た例である。三次元にあっても同様な適用ができる。こ
のように、スペースモデリングは、座標系によるもので
はない。
さらに、第27図(c)に見るようにタブレット,マウ
ス,プロッタ,プリンタ等を含めた処理システムで図形
処理をすることが可能である。
以上、説明してきたが、この発明における図形処理は、
LSIのレイアウト図形の処理とか、最適ルートの探索、
ロボットの移動空間の制御,衝突をはじめとして各種の
処理に利用できるものである。
ところで、図形のスペースポインタペアは、頂点に限定
されるものではなく、図形の特徴点であればよい。ま
た、実施例では、空間分割する境界面は平面を採用して
いるが、これは斜面,曲面等であってもよく、また、そ
の座標系は、自由に選択でき、三次元,N次元のものであ
っても適用することができる。
実施例では、図形を中心として説明してきたが、いわゆ
る画像に特徴点を採って直接特徴点展開して、一旦図形
に変換して同様な処理をしてもよく、画像処理に対して
も図形処理の形態で適用できることはもちろんである。
さらに、実施例では特別に図形処理プログラムとスペー
スデータ処理とを分けているが、全てのデータをスペー
スデータの形式で作成して図形データすべてをこのスペ
ースデータから変換して得るようにしてもよい。
なお、実施例では、スペースデータ処理部を特別に設け
ているが、その処理は、演算処理装置の機能の1つとし
て実現できることはもちろんである。
〔発明の効果〕
以上の説明から理解できるように、この発明にあって
は、少なくとも第1,第2,第3の変数により表現される立
体空間座標系に配置された図形についてのデータ処理に
おいて、第1の変数に対応する軸に関し図形の特徴点を
通る平行な面で、立体空間座標系を分割し、平行な面に
より挟まれた空間の両側の特徴点に対応してそれぞれ特
徴点情報が生成される図形処理システムであって、各特
徴点情報と、隣接する他の1つ又は複数の特徴点情報と
を、相互に連結関係を持って生成し、この連結関係によ
り平行な面により挟持させる空間を定義するというもの
であるので、特徴点ペアにより部分立体空間の検索が可
能となり、部分に注目した図形処理ができる。
その結果、隣接図形とか重なり立体図形の検索、隠れ面
の処理等が効率的に処理でき、高速な三次元図形処理を
実現できるものである。
【図面の簡単な説明】
第1図は、この発明の図形処理システムを適用した計算
機システムのブロック図であり、第2図(a)は、その
図形処理システムによる図形処理の機能構成図、第2図
(b)は、そのスペースデータ処理部におけるインタプ
リタプログラムの処理の流れ図、第2図(c)は、その
演算処理装置におけるプログラム制御部の処理の流れ
図、第3図(a)は、そのスペースデータの原理的な表
現の説明図、第3図(b)は、その基本的な空間分割の
処理の仕方の説明図である。また、第4図(a)は、二
次元における特徴点テーブルのX方向端点についての具
体例の説明図、第4図(b)は、その特徴点テーブルの
X方向でない端点の具体例の説明図、第4図(c)は、
第4図(a)の二次元テーブルに対応する図形の説明
図、第4図(d)は、第4図(b)のテーブルに対応す
る図形の説明図、第4図(e)は、テーブルにおける符
号の説明図、第4図(f)は、テーブルにおける各デー
タの具体的構成を示す一例の説明図、第4図(g)は、
空間属性が設置できない場合の説明図、第5図(a)
は、二次元での処理されるべき図形の一例を示す図、第
5図(b)は、その図形において発生するスペースポイ
ンタペアの説明図、第6図(a)は、三次元における空
間分割の仕方の説明図、第6図(b)は、立体図形相互
におけるスペースポインタペアの関係を示す説明図、第
6図(c)は、三次元における蔭の交叉についての説明
図、第6図(d)は、そのZ方向の投影図、第7図は、
図柄と面ポイントペアとの関係の説明図である。そし
て、第8図(a)は、立体図形の空間分割とスペースポ
インタペアとの関係の説明図、第8図(b)は、その1
つの頂点から出力スペースデータの説明図、第9図
(a)は、スペースデータと左右の連結情報との関係の
説明図、第9図(b)は、三次元における特徴点テーブ
ルの具体例の説明図、第9図(c)は、多面体の凸頂点
Vのまわりのスペースデータの説明図、第9図(d)
は、凸頂点Vのまわりの特徴点テーブルの説明図、第10
図(a)は、凹なる立体空間を持つ1つの頂点から出る
スペースデータの説明図、第10図(b)は、凹なる立体
空間が存在する場合の特徴点テーブルの説明図、そして
第11図(a)は、重なりを判定する場合の重なり図形の
一例を示す説明図、第11図(b)は、その場合の属性の
説明図、第12図(a)は、二次元での多色図形の各ポイ
ンタの表現例の説明図、第12図(b)は、その場合の特
徴点テーブルの関係を示す概略図、第13図は、立体図形
の重複状態の説明図である。また、第14図(a),第14
図(b),第14図(c)及び第14図(d)は、それぞれ
のスペースポインタペアの生成の仕方についての説明
図、第14図(e)は、スペースデータ形成のための処理
を示すフローチャート、第14図(f)は、図形データの
形成のための処理を示すフローチャート、第15図
(a),第15図(b),第15図(c),第15図(d),
第15図(e),第15図(f)及び第15図(g)は、それ
ぞれ三次元データベースへの入力方法を説明する図、第
16図(a)は、二次元において特徴点を高速に検索する
ための道しるべ処理の説明図、第16図(b)は、三次元
の道しるべ処理の説明図、第17図(a),第17図(b)
及び第17図(c)は、それぞれ特殊な状態におけるスペ
ースポインタペアの形成の仕方の説明図、第17図
(d),第17図(e)は、それぞれ特殊な状態における
辺ポインタペアの形成の仕方の説明図、第17図(f)
は、交叉点の場合のポインタペア説明図、第17図(g)
は、図形の一部に曲線がある場合のスペースポインタペ
アの形成についての説明図、第18図(a)及び(b)
は、それぞれ三次元におけるコーナ貫通点とその特徴点
テーブルの説明図、第18図(c)及び(d)は、それぞ
れ三面交叉点とその特徴点テーブルの説明図、第19図
は、運動図形についての空間関係を示す説明図、第20図
は、隠れ面消去の説明図、第21図は、可視空間追跡法を
用いる場合の説明図、第22図は、図形データが複数の領
域に分割されているような場合のスペースポインタペア
の形成の仕方の説明図、第23図は、特定の図形について
サーチする場合の説明図、第24図は、二次元において回
転サーチ処理を高速化するためスペースポインタペアに
対する頂点を増設する例の説明図、第25図(a)及び
(b)は、それぞれ三次元において同様に増設辺を設定
した場合のスペースポインタペアとの関係の説明図、第
26図は、空間の分割を極座標とした場合の説明図、第27
図は、他の実施例における図形処理システムのブロック
図である。 1……演算処理装置、2……メモリ、2a……スペースデ
ータインタプリタプログラム記憶部、2b……スペースデ
ータ発生プログラム記憶部、2c……I/O制御プログラム
記憶部、2d……スペースデータ記憶部、2e……図形処理
プログラム記憶部、2f……その他データ記憶部、3……
スペースデータ処理部、4……I/O制御部、5……イン
タフェース、6……システムバス、7……ディスプレ
イ、8……キーボード、9……磁気ディスク記憶装置、
10……図形データ変換処理部、11……制御対象プログラ
ム、12……図形データ変換処理部、13……スペースデー
タ生成プログラム部、14……スペースデータ図形処理プ
ログラム部、20,21,22……特徴点テーブル、SP……スペ
ースポインタ、EP……辺ポインタ、FP……面ポインタ、
SPPi……スペースポインタペア、EPPi……辺ポインタペ
ア、FPPi……面ポインタペア。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】計算機を使用し、該計算機の記憶手段をア
    クセスして該記憶手段に記憶されている第1,第2,第3の
    変数により表現される三次元座標系の立体空間に配置さ
    れた複数の図形に関する図形データを処理する図形処理
    システムであって、 前記第1の変数に対応する軸に関し図形の特徴点を通
    り、前記第2,第3の変数に対応する座標面に平行な面
    と、前記第2の変数に対応する図形の特徴線を含む前記
    第3の変数に対応する軸に平行な面と、図形面自体とに
    より、前記立体空間を分割し、前記各面により挟まれた
    空間の両側の特徴点に対応してそれぞれ特徴点情報を形
    成し、これらの各特徴点情報は隣接する他の1つ又は複
    数の特徴点情報と相互に連結関係を持ち、この凍結関係
    により前記各面により挟まれる空間を定義する前記図形
    データを生成する生成手段と、 これらの生成された前記図形データを記憶する前記記憶
    手段と、 これらの記憶された前記図形データに対して前記特徴点
    情報に含まれるポインタ情報を用いてアクセスし、これ
    により検索された前記三次元座標系の立体空間に配置さ
    れた複数の図形の部分的な図形処理を実行する実行手段
    と、を有することを特徴とする図形処理システム。
  2. 【請求項2】前記各特徴点情報は、前記記憶手段上の特
    定のアドレスを示すポインタを含み、前記連結関係は、
    隣接する他の1つ又は複数の特徴点情報において相互に
    他のポインタの存在する位置をそのポインタにより相互
    に指定することを特徴とする特許請求の範囲第1項記載
    の図形処理システム。
  3. 【請求項3】前記ポインタにより相互に指定する関係に
    あるポインタは、ポインタのペアとして取り扱われるも
    のであって、このポインタのペアは、分割された部分空
    間に1対1で対応することを特徴とする特許請求の範囲
    第1項又は第2項記載の図形処理システム。
  4. 【請求項4】前記図形の特徴点を通る面は、平面であっ
    て、その座標軸の1つに垂直な面の方向にあることを特
    徴とする特許請求の範囲第1項乃至第3項記載の図形処
    理システム。
  5. 【請求項5】前記三次元座標系は、X−Y−Z座標系で
    あることを特徴とする特許請求の範囲第1項乃至第5項
    記載の図形処理システム。
  6. 【請求項6】前記特徴点には前記記憶手段上で識別符号
    が割り当てられ、該特徴点の情報は、前記空間に対応す
    るポインタと、前記面に対応するポインタと、前記図形
    の辺に対応するポインタと、前記特徴点の座標情報とを
    前記記憶手段に備えることを特徴とする特許請求の範囲
    第1項乃至第5項記載の図形処理システム。
  7. 【請求項7】前記特徴点には前記記憶手段上で識別符号
    が割り当てられ、該特徴点の情報は、前記空間に対応す
    るポインタと、前記面に対応するポインタと、前記図形
    の辺に対応するポインタと、前記特徴点の座標情報と、
    前記分割された空間の属性又は面についての属性を示す
    属性情報とを前記記憶手段に備えることを特徴とする特
    許請求の範囲第1項乃至第5項記載の図形処理システ
    ム。
  8. 【請求項8】前記特徴点の情報は、前記記憶手段上に特
    定の形式でテーブルとして記憶され、該テーブルは、辺
    ごとにブロックとして分割されていて、各ブロックにお
    けるテーブルの情報は、前記辺を含む面の両側の空間を
    関係付けるものとして他のブロックのある情報と相互に
    連結関係にあることを特徴とする特許請求の範囲第1項
    乃至第7項記載の図形処理システム。
  9. 【請求項9】前記特徴点は、前記図形の頂点であること
    を特徴とする特許請求の範囲第1項乃至第8項記載の図
    形処理システム。
  10. 【請求項10】前記特徴線は、前記図形の線であること
    を特徴とする特許請求の範囲第1項乃至第9項記載の図
    形処理システム。
JP60140301A 1985-05-24 1985-06-28 図形処理システム Expired - Fee Related JPH0756655B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP60140301A JPH0756655B2 (ja) 1985-06-28 1985-06-28 図形処理システム
EP86107047A EP0202686B1 (en) 1985-05-24 1986-05-23 Geometric processing system
DE86107047T DE3688918T2 (de) 1985-05-24 1986-05-23 System für geometrische Verarbeitung.
US06/867,154 US4944034A (en) 1985-05-24 1986-05-27 Geometric processing system
US07/518,570 US5056045A (en) 1985-05-24 1990-05-03 Geometric processing system
HK176395A HK176395A (en) 1985-05-24 1995-11-16 Geometric processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60140301A JPH0756655B2 (ja) 1985-06-28 1985-06-28 図形処理システム

Publications (2)

Publication Number Publication Date
JPS6224371A JPS6224371A (ja) 1987-02-02
JPH0756655B2 true JPH0756655B2 (ja) 1995-06-14

Family

ID=15265600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60140301A Expired - Fee Related JPH0756655B2 (ja) 1985-05-24 1985-06-28 図形処理システム

Country Status (1)

Country Link
JP (1) JPH0756655B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313504B2 (en) * 2001-10-15 2007-12-25 Solidworks Corporation Model management technology using grouping of features
EP1686501A3 (en) 2005-01-26 2009-01-14 Dassault Systemes SolidWorks Corporation Aware and active features for computer-aided design system

Also Published As

Publication number Publication date
JPS6224371A (ja) 1987-02-02

Similar Documents

Publication Publication Date Title
US4944034A (en) Geometric processing system
KR101071011B1 (ko) 3차원 대상물의 디지털 표시를 조작하기 위한 방법 및시스템
JP5566632B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US6259452B1 (en) Image drawing system and method with real-time occlusion culling
RU2430421C2 (ru) Применение эффектов к объединенной текстовой дорожке
JPS62288979A (ja) コンピュータ援助設計方法及び装置
CN103649856A (zh) 通过工具的动作模拟物体的加工的方法及其系统和计算机程序产品
JP2009134620A (ja) 描画装置、描画プログラムおよび描画方法
EP0640906B1 (en) Display apparatus
US5617520A (en) Three-dimensional pattern editing apparatus having moving distance calculator and/or a dragging pattern holding unit
US8217933B2 (en) Method and apparatus for detecting between virtual objects
JPH0756655B2 (ja) 図形処理システム
EP4089562A1 (en) Designing garment using style line
JPH0896025A (ja) 図形処理方法および装置
CN1108591C (zh) 利用用户定义的场所和窗口进行有效再现
Shinya et al. Laying out objects with geometric and physical constraints
CN106204408A (zh) 绘图处理电路及其前置深度信息处理方法
CN112529984B (zh) 绘制多边形的方法、装置、电子设备及存储介质
JP2001060275A (ja) 三次元モデルの表示方法と、これを実現するプログラムが記憶されたコンピュータにより読み取り可能な記憶媒体
JP6127331B2 (ja) 配筋検証支援装置及びそのプログラム
JPH0756654B2 (ja) 図形処理システム
JP3130496B2 (ja) 擬似3次元ゲーム空間における空間情報の作成方法、擬似3次元画像と可動モデルとの接触判定方法、接触判定装置、並びにかかる接触判定を行うプログラムを記憶した可読記録媒体
JP6286591B2 (ja) 配筋検証支援装置及びそのプログラム
JPH10312473A (ja) コーナ丸め部分の削除方法、ならびに同方法を実現するcaeシステム、及び同方法がプログラムされ記録される記録媒体
JPH07113928B2 (ja) 図形配置表示方法

Legal Events

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