JP2004054860A - 図形交差判定システム - Google Patents
図形交差判定システム Download PDFInfo
- Publication number
- JP2004054860A JP2004054860A JP2002239899A JP2002239899A JP2004054860A JP 2004054860 A JP2004054860 A JP 2004054860A JP 2002239899 A JP2002239899 A JP 2002239899A JP 2002239899 A JP2002239899 A JP 2002239899A JP 2004054860 A JP2004054860 A JP 2004054860A
- Authority
- JP
- Japan
- Prior art keywords
- mesh
- point
- intersection
- ridge
- declination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】2つの凸図形間の高速・高精度な判定方法を提供する手段を提供する.
【解決手段】請求項1は2図形の近似交点から次回の近似交点を決定する手段と収束可否判定をする手段よりなる.請求項2はメッシュ構成手段と,メッシュと稜線(面)の対応手段と手段と,質問情報から特定したメッシュに対応する稜線(面)を出力する手段よりなる.
【選択図】図1
【解決手段】請求項1は2図形の近似交点から次回の近似交点を決定する手段と収束可否判定をする手段よりなる.請求項2はメッシュ構成手段と,メッシュと稜線(面)の対応手段と手段と,質問情報から特定したメッシュに対応する稜線(面)を出力する手段よりなる.
【選択図】図1
Description
【0001】
【発明の所属する技術分野】
本発明は2凸図形間の交差判定をするシステムの実現技術に関する.
【0002】
【従来の技術】
請求項1に関しての従来の技術についてまず述べる.2物体間の交差判定手法は,CAD/CAM,ロボット制御,コンピュータグラフィックス,その他数多くの局面で必要とされる基本的な図形処理ツールである.近年,計算機を用いたシミュレーションやアニメーションが頻繁に行われ,ダイナミックに位置が変動する物体間には交差判定処理が繰り返し用いられている.この際,図形が曲面の場合は交差判定の前に多数の多面体に近似して,交差判定に用いる事が広く行われているが,形状モデリング精度向上の要求が高い場合,近似多面体の頂点数nを増加させる必要があり,その結果,交差判定性能の大幅な劣化を招くことになる.そのため,長年研究者の間で高速交差判定手法の開発が競われ,多くの手法が提案されてきた.
【0003】
しかしながら,2つの2次元凸多角形の交差する可能性のある候補稜線(面)群を逐次的に限定して,候補数を絞り込み,最後に交差する稜線(面)を見つける手法〔B.Chazelle and D.Dobkin :DETCTION IS EASIER THAN COM P UTATION;ACM0−8791−017−6,1980〕はlog(n)(nは2凸多角形の頂点数の合計)の手法として1980年に発表されて以来,現在まで,これより速い手法は開発されていない.また,B.Chazelleらの手法は稜線を直線に限定している.
【0004】
交差判定研究の究極目標は,性能が稜線(面)数に依存せず,図形の各稜曲線(面)を近似図形を用いずに曲線(面)のまま用いて交差判定を行うことが可能な高速・高精度な判定方法を実現することである.
【0005】
次に請求項2に関しての従来の技術について述べる.請求項2は,請求項1において,一点Kjが与えられた時,Kjの最近傍にある図形Qmの稜曲線(面)Sm,jの検索に要する記憶容量を削減する目的のために提供される.
【0006】
請求項2の類似技術として,予め,3次元多面体Qの表面の近傍空間を3次元格子で分割し,得られたメッシュ毎に,該メッシュの内点から最短距離にあるQの稜面の集合を該メッシュに対応つけておき,質問点Kが与えられた時,Kを含むメッシュをまず特定し,特定したメッシュに対応つけた稜面の集合を検索結果として出力する方法が公知(K.Kawachi and H.suzuki;Distance Computation between Non−convex Polyhedra at short Range Based on Discrete Voronoi Region)となっている.該公知例では,Qの周辺の3次元空間Rを3次元x−y−zCartesian直交座標系の座標軸に平行な等間隔格子で分割している.
【0007】
しかし,一般的には図形Qの各稜面SとSの周辺の空間点Kとの相対位置関係は,該稜面Sの任意の点における法線ベクトル上の任意の点Pと各稜面Sとの相対位置関係とは相関関係がある場合がある.たとえば,Qを内点Oを適当に選び,原点Oを始点とし,任意の点Kを通る半直線Lと,該半直線Lの持つ偏角−天頂角の値に近い偏角−天頂角を持った始点をOとする他の半直線との間では,両半直線が交差するQの稜曲面は同一である可能性が高い.また,Qの外部の任意の一点Kから最も近いQの稜面の集合は,Oを始点としKを通る半直線OK上のKとは異なる任意の点KKから最も近いQの稜面の集合と共通集合を持つ可能性が高い.しかし,該公知例のようにメッシュに区切るための格子としてx−y−zCartesian直交座標軸に平行の格子を用いると,各メッシュに対応させる稜面の数が大きくなりがちであり,1つのメッシュ当たりに対応させる稜曲面数の最大値を小さくしようとすると,メッシュ数を大きくする必要が生じる.
【0008】
一方,図形Qが2次元の場合,一点Kが与えられた時,図形Qに対応して定めた点Oを始点としKを通る半直線と交差する図形の稜線(面)候補を高速に検索するための検索機能を実現しようとすると,Oを始点とし,該図形の稜線S上を移動する点Pを通る半直線の偏角を座標軸とする1次元座標空間上で描く軌跡図形SSにSを1対1に対応させ,該図形Qの各稜線に対応するSSが分布する空間RR内に位置する任意の値の偏角φを持つ質問点Kが与えられたとき,Kを含む領域SSを特定するための領域検索を行う問題に対しては,図形Qの各稜線Si(i=1,2,・・・,Smax)の始点と終点の偏角をそれぞれφsi,φei(φsi<φsi+1,φei<φei+1)としたとき,φeiを昇順に並べた表を用いて,φej−1<φ≦φejを満足させるようなφejを検索する手法として,公知の2分探索法が利用でき,その処理時間はO(log(Smax))となる.しかし,処理時間は必ずSmaxに依存してしまう.
【0009】
一方,特に図形Qが3次元の場合,一点Kが与えられた時,図形Qに対応して定めた点Oを始点としKを通る半直線と交差する図形の稜線(面)候補を高速に検索するための検索機能を実現しようとする場合,図形Q毎に対応して定めた点Oを始点とし,該図形の稜線(面)S上を移動する点Pを通る半直線の偏角と天頂角を座標軸とする2次元直交座標空間上で描く軌跡図形SSにSを1対1に対応させ,該図形Qの各稜線(面)に対応するSSが分布する空間RR内に位置する指定された偏角と天頂角を座標値として持つ質問点Kが与えられたとき,Kを含む領域SSを特定するための領域検索を行う問題に対しては,この問題を点位置決定問題として見なすことができ,すべてのSSを多角形近似したときの稜点数の合計をdとすると,Sarnak−Tarjanの方法〔譚学厚,平田富雄;計算幾何学入門,森北出版〕により,O(d)のメモリを用いて,O(logd)の時間で計算できることが公知となっている.しかし,処理時間はdに依存する.
【0010】
【発明が解決しようとする課題】
2つの2(3)次元凸図形間Qm(m=1,2)の交差判定処理を行う際,Qmを多角形に近似することなく,稜線(面)を曲線(面)のまま交差判定が可能な高速・高精度な判定方法を提供すること,および,図形Qの稜曲線(面)Sの集合を内包する2(3)次元空間Rをメッシュに分割して,各メッシュとSとの位置関係で定まる対応関係を与え,メッシュをキーワードにして,Sを検索する図形検索システムにおいて,メッシュ管理に必要な記憶容量を削減することを可能にするメッシュ構成手段を提供すること,およびこの手段の利用によって,請求項1が必要とする図形検索機能,すなわち,質問点Kが与えられた時,Kの近くに存在する図形Qの稜線(面)Sを検索するために要する必要記憶容量を圧縮する.
【0011】
【課題を解決するための手段】
請求項1は,Qm間の第j回目の交点収束計算段階に用いた近似交差稜曲線(面)Sm,jとその上の近似交点Pm,jを用いて次回の近似交差稜曲線(面)Sm,j+1とその上の近似交点Pm,j+1を求める手段と,交点収束計算の収束性判定手段より構成される.
【0012】
請求項2は,2(3)次元図形Qの稜線(面)Sの部分集合を内包する2(3)次元空間Rをメッシュに分割する手段と,各メッシュと各Sとの対応関係を与える手段と,質問情報から特定メッシュに対応したSを出力とする手段より構成される.
【0013】
【作用】
請求項1において,2図形Qm(m=1,2)から選んだ近似交差稜曲線(面)Sm,jとSm,jの上の近似交点Pm,jの対を用いて,Pm,jにおける稜曲線(面)Sm,jの接線(面)の間の交点(交線の上の適当に選んだ点)Kj+1の近傍内に,次回の稜曲線(面)Sm,j+1対を選びなおすことによって,前回のSm,j対とは近隣関係になく遠くに存在するSm,jを選ぶこともあるので,収束速度がQmの稜線(面)の総和に依存せず,真の交点Tに高速に近づくことができる.この収束原理は,関数f(x)の根を求めるニュートン法の収束原理と類似性を持つ.
【0014】
一般的には2(3)次元図形Qの各稜面SとSの近傍にある周辺の空間点Kとの相対位置関係は,Qに対応して選んだ内点Oを始点とし,Kを通る半直線OKがもしQの稜曲線(面)Sと交差するならば,Oを始点とする半直線Lの偏角と天頂角が,半直線OKの偏角(偏角と天頂角)に近い値を持つならば,Lも該Sと交差する可能性が高い.したがって,Lの任意の点PとSとの相対位置関係は,点KとSとの相対位置関係と相関関係を持つ可能性がある.また,Qの外部の任意の一点Kから最も近いQの稜面の集合は,Oを通り,Kを通る半直線OKの上の他の任意の点から最も近いQの稜面の集合との間では共通集合を持つ可能性が高い.
【0015】
したがって,極座標系の座標軸に平行な面を持ち,かつ多階層構造を持つメッシュを構成する手段を提供する請求項2は,稜曲線(面)に対応させるべきメッシュの大きさを大きくすることができ,結果的にメッシュ数を少なくすることが可能になり,メッシュの管理に必要な記憶容量を削減する.
【0016】
特に,各メッシュmと稜線(面)との間に与える対応関係を,該メッシュm内の点Kを通りOを始点とする半直線と稜線(面)の間の交点Kが存在する関係と定義すれば,極座標の偏角(偏角−天頂角)の軸に沿って平行で等間隔格子で座標空間を分割して生成した動径方向に無限の長さを持った凸錐形状のメッシュmを動径軸に沿ってさらに細分する必要がなくなり,実質的には1(2)次元偏角(偏角−天頂角)直交座標系空間を偏角(偏角,天頂角)座標軸に平行な境界を持ったメッシュで分割していることになり,分割対象空間が2(3)次元から1(2)次元空間となり,次元を1だけ下げることができるので,メッシュ数も大幅に削減できる.
【0017】
この場合,請求項2において,Kjに近い図形Qmの稜線(面)Sm,jの候補を直接に検索するのではなく,代わりに,図形Qmに対応して定めたOmを始点とし,Kjを通る半直線が交差するか,あるいは半直線の近傍にある稜線(面)の候補を検索することになるが,図形Qmが凸であれば,Kjに近い図形Qmの稜線(面)の候補と,図形Qmに対応して定めたOmを始点とし,Kjを通る半直線が交差するか,あるいは半直線の近傍にある稜線(面)の候補とは一致するので問題はない.
【0018】
また,一般に,稜線(面)の持つ偏角−動径(偏角−天頂角−動径)の極座標系空間における分布は不均一であるので,請求項2における多階層メッシュの大きさは,メッシュ分割に用いる各格子の幅の大きさを分布密度の高い場合は細かく,低い場合は大きくすることによって調整できるので,多階層化せずに一律にメッシュ分割する場合に比べ,メッシュ数を削減できる.
【0019】
また,各階層におけるメッシュ幅を小さくすれば,該階層のメッシュが管理すべき稜線(面)の数を小さくでき,かつ,その階層の深さを浅くできるので,検索処理時間を短くすることができるが,その半面,必要記憶容量が大きくなる.したがって,検索処理時間を短くすることと,必要記憶容量を大きくするというトレードオフを行うことが可能となっており,交差判定の所要時間設計も可能となっている.
【0020】
また,請求項2の検索時間は図形の稜線(面)数の総和とは無関係であり,トレードオフを行った事による処理時間の変化は,稜線(面)数の総和とは本質的に無関係であるため,結果的に請求項1の2図形の交差判定に要する時間は,2図形の稜線(面)数の総和とは無関係とすることができる.
【0021】
【発明の実施の形態】
本発明は,図形間の交差判定を必要とするプログラムに本発明を組み込む形態で実施される.
【0022】
【実施例】
まず,請求項1にかかわる2次元凸図形の交差判定システムの実施例を説明する.まず,用語の定義をおこなう.凸図形をQm(m=1,2)とし,その稜曲線をSm,i(i=1,2,・・・,Smax)と表す.各稜曲線Sm,iは,{(x,y)|x=xi(t),y=yi(t)(0≦t≦1)}で定義され,境界はパラメータtの値のとりうる範囲の両端で決定されるとする.Qmの内部が左側に存在するように各稜線の端点(xi(0),yi(0))を始点,(xi(1),yi(1))を終点とするように定める.xi(t),yi(t)は1階微分が可能な関数であるとする.
【0023】
図形Qmに対応してQmの内点Omを適当に定め,Omを極座標系の原点とし,稜曲線Sm,iの始点の偏角をφm,i,始点の偏角をθm,iとする.OmはQmの境界を除く内部に自由に定めてよい.しかし,すべてのiについてのθm,i−φm,iの最小値を可能な限り大きくするようにOmを定めるのが望ましい.なお,以下では,mが指定された場合はm=1とm=2の処理を行うこととする.
(1)j=1とする.
(2)KjをO1とO2を結ぶ線分の中点とする.
(3)Omを始点とし,Kjを通る半直線OmKjと交わる稜曲線Sm,jをQmの稜線群からそれぞれ1つずつ検索し,該半直線OmKjとSm,jとの交点Pm,jをニュートン法で計算して求め,2つのPm,j間の距離が予め指定した誤差距離ε(>0)以下であれば,Qmは交差すると判断して処理を終了する.
【0024】
Omを始点とし,Kjを通る半直線OmKjと交わる稜曲線(面)Sm,jを検索する方法の実施例を以下に述べる.まず,Omを始点とし各稜曲線Sm,iの終点を通るベクトルの偏角θm,j(θm,i−1<θm,j,2≦i)とすると,第i行にはθm,jを記憶した偏角−稜曲線辞書テーブルを作成しておく.半直線OmKjの偏角θを求め,該テーブルに対し2分探索を行えば,θm,i−1<θ<θm,jとなるようなiを処理時間O(logSmax)で特定できる.
(4)j=1であれば,O1とP1,jの間の距離とO2とP2,jの間の距離との和がO1とO2の間の距離よりも大きい場合は交差すると判定し処理を終了する.
(5)稜曲線Sm,j上の点Pm,jにおける接線Lm,iの交点を求め,j=j+1とし,該交点をKjとする.
(6)j>1であれば,過去に求めたLm,iの対(i=1,2,・・・,j)を用いて,Qmが交差する可能性が残されているかどうかを判断し,交差する可能性がないと判断した場合は処理を終了し,そうでない場合はjが予め定めた繰り返し制限回数を越した場合は交差しないとして処理を終了し,そうでない場合は(3)に戻る.
【0025】
Lm,iの対(i=1,2,・・・,j)を用いて,Qmが交差する可能性が残されているかどうかを判断する際の実施手順例は下記のとおりである.接線Lm,iがx−yCartesian直交座標空間を2分するうち,Qmが属する半平面をHQm,iとすると,2つのHQm,i(m=1,2)の共通集合である凸錐をUHQiとしたとき,任意の2つのUHQi,UHQk(1≦i≦j,1≦k≦j,i≠k)の共通集合が空であるようなiとkの組み合わせが1つでもある場合,Qmは交差しないと判断する.もうひとつの方法は,UHQjとUHQj−1だけを取り上げて,その共通集合が空であるかどうかによって,Qmは交差しないと判断するという簡略手法がある.
【0026】
次に,3次元凸図形の交差判定システムの実施例を説明する.まず,用語の定義をおこなう.凸図形をQm(m=1,2)とし,その稜曲面をSm,i(i=1,2,・・・,Smaxm,i)とし,各Sm,iを{x,y,z|x=xi(t,u),y=yi(t,u),z=zi(t,u),0≦t≦1,0≦u≦1,xi(t,u),yi(t,u),zi(t,u)は1階の微分が可能な関数}とする.各稜曲面Sm,iの稜曲線SLm,i,g(g=1,2,・・・,SLmaxm,i)の始点と終点は,稜曲線SLm,i,gの左側がQmの内部となるように定め,稜曲線の番号gに対しても,稜曲線の左側がQmの内部となるように昇順に番号をつける.
【0027】
図形Qmに対応してQmの内点Omを適当に定める.OmはQmの境界を除く内部に自由に定めてよい.しかし,稜曲線Sm,iの上の点Pが該稜曲面内を自由に移動したとき,ベクトルOmPの偏角φ,天頂角θの変動域幅をそれぞれφm,i,θm,iとすると,すべてのiについてのφm,i,θm,iの最小値を可能な限り大きくするようにOmを定めるのが望ましい.なお,以下では,mが指定された場合はm=1とm=2の処理を行うこととする.下記に手順を述べる.なお,以下では,mが指定された場合はm=1とm=2の処理を行うこととする.
【0028】
(1)j=1とする.
(2)KjをO1とO2を結ぶ線分の中点とする.
(3)Omを始点とし,Kjを通る半直線OmKjと交わる稜曲面Sm,jをQmの稜面群からそれぞれ1つずつを検索し,該半直線OmKjとSm,jとの交点Pm,jをニュートン法で計算して求め,2つのPm,j間の距離が指定した誤差距離ε(>0)以下であれば,Qmは交差すると判断して処理を終了する.
【0029】
Omを始点とし,Kjを通る半直線OmKjと交わる稜曲線(面)Sm,jを検索する方法の実施例を以下に述べる.まず,Qm毎に横軸を偏角φ,縦軸を天頂角θとするφθ直交座標系をひとつ用意し,その座標系の中で,Sm,iの上の点PがSm,iの内部を自由に移動する時のベクトルOmPの偏角φ,天頂角θの軌跡が作る図形をSφθm,iとする.すべてのSφθm,iは,左下稜点が(0,0),右上稜点が(2π,π)とする矩形RRを隙間なく分割する図形地図を構成する.矩形RRの対辺同士は同一とみなす.図形Sφθm,iはSm,iと1対1に対応する.今,外部から偏角φ,天頂角θが与えられたとき,質問点(φ,θ)はどのSφθm,iに属するかは,Sφθm,iを多角形近似すれば,点位置決定問題として解決することができ,Sarnak−Tarjanの方法により,その処理時間はO(logd)(dをSφm,iを多角形近似した時の全多角形の稜点の数の合計とする)で行える.このようにして検索したSφθm,iに1対1に対応するSm,iが求める稜面となる.なお,各Sφθm,iは多角形近似を行っているので,始点をOmを始点とし,Kを通る半直線は検索したSm,iと交点Pm,jを持つとは必ずしも保証できない.そこで,交点を持たない場合は,Omを始点とし該Sm,iに予め適当に定めた内点SOm,iを通る半直線と,Omを始点とし質問点Kを通る半直線との間に挟まれる凸錐と該Sm,iの稜曲線の交点をPm,jとする.
(4)j=1であれば,O1とP1,jの間の距離とO2とP2,jの間の距離との和がO1とO2の間の距離よりも大きい場合は交差すると判定し処理を終了する.
(5)稜曲面Sm,j上のPm,jにおける接平面Lm,i間の交線Lを求め,Pm,jからLm,jへ下ろして得た2つの垂点の中点を求め,j=j+1とし,該中点をKjとする.
(6)j>1であれば,Lm,iの対(i=1,2,・・・,j)を用いて,Qmが交差する可能性が残されているかどうかを判断し,交差する可能性がないと判断した場合は処理を終了し,そうでない場合はjが予め定めた繰り返し制限回数を越した場合は交差しないとして処理を終了し,そうでない場合は(3)に戻る.
【0030】
Lm,iの対(i=1,2,・・・,j)を用いて.Qmが交差する可能性が残されているかどうかを判断する際の実施手順例は下記のとおりである.接平面Lm,iがx−y−zCartesian直交座標空間を2分するうち,Qmが属する半空間をHQm,iとすると,2つのHQm,i(m=1,2)の共通集合である凸錐をUHQiとしたとき,任意の2つのUHQi,UHQk(1≦i≦j,1≦k≦j,i≠k)の共通集合が空であるようなiとkの組み合わせが1つでもある場合,Qmは交差しないと判断する.もうひとつの方法は,UHQjとUHQj−1だけを取り上げて,その共通集合が空であるかどうかによって,Qmは交差しないと判断するという簡略手法がある.
以上が,請求項1の実施例である.
【0031】
本方式は,2次元凸図形の稜曲線を線分に限定した場合は2次元凸多角形を扱うことになり,また3次元凸図形の稜曲面を平面に限定した場合は3次元凸多面体を扱うことになり,処理の対象が広範囲であるという特長を有する.
【0032】
本方式は,2次元凸図形の稜線として直線タイプと曲線タイプのものが混合した凸図形,あるいは3次元凸図形の稜曲面として,平面タイプと曲面タイプのものが混合した凸図形を取り扱うことができ,処理の対象が広範囲であるという特長を有する.
【0033】
本方式は,2次元凸図形の隣り合う2稜曲線が接合点で接線連続であることを必要とせず,あるいは3次元凸図形の隣り合う2稜曲面が接合稜線で接線連続であることを必要とせず,しかも,2図形間の交点を収束計算で求める際,2つのSm,jが大きく離れているために,2つのSm,jの組み合わせが頻繁に入れ替わる初期の段階と,Sm,jの組み合わせが固定され,ただPm,jの位置が変更されるだけの交点計算収束直前の最終段階とで,交点計算の処理手順の違いがまったくなく,交点計算処理手順が統一的に処理されるという特長,すなわち,互いに接線不連続でつながった稜曲線(面)よりなる図形をあたかも一体の微分可能な曲線(面)として交点計算を行う方式を可能にしているという特徴を有する.
【0034】
本方式は,交差判定を可能とするだけでなく,交差する場合の稜線(面)番号と交点をも決定しうるという特長を有する.
【0035】
本方式は,交差判定を可能とするだけでなく,交差しないと判断したときに用いた稜線(面)上の接線(平面)を2図形間の分離線(平面)として提供しうるという特長を有する.
【0036】
本方式は,2次元においては,偏角から稜線を検索する偏角−稜曲線辞書テーブルを一度作成しておけば,以降は図形が回転・移動を行っても再作成する必要がなく,また,3次元においては偏角−天頂角直交座標系でのSφθm,iの図形地図は,Qmが移動・回転しても変化しないので再作成する必要がないため,高速移動する2図形間の交差判定をダイナミックなシミュレーション環境下で高速に実行できるという特徴を有する.
【0037】
本方式は,交点計算収束回数はQmの稜線(面)数に依存しないという特長を有する.
【0038】
本方式は図形の曲面式をそのまま用いるため,高精度の判定チェックが行えるという特長を有する.
【0039】
次に,請求項2にかかわる2次元図形検索システムの実施例を説明する.検索対象を2次元凸図形Qの稜曲線Si(i=1,2,・・・,Smax)とし,Qに対応して適当に定めたOを始点とし,質問点Kを通る半直線が交差するSiを検索する稜線検索システムを例に取り上げる.OはQの境界を除く内部に点を定めるのが望ましい.さらに,すべてのiについてのθi−φiの最小値が最大となるようなOを選ぶのが望ましい.この対策は,後で述べる各メッシュに対応させる稜線Siの最大数を小さくするのに効果がある.
【0040】
各稜曲線Siは{(x,y)|x=xi(t),y=yi(t),0≦t≦1}で定義され,境界はパラメータtの値のとりうる範囲の両端で決定されるとする.Qの内部が左側に存在するように各稜面の端点(xi(0),yi(0))を始点,(xi(1),yi(1))を終点とするように定める.Oを原点と見なした時,Si上の始点の偏角をφi,終点の偏角をθiとする.したがってφiとθiではさまれた1次元領域〔φi,θi〕はSiに1対1に対応する.すべての〔φi,θi〕は,0から2πまでの1次元偏角座標領域RRを隙間なく被覆し,互いの重なりはない.
【0041】
θiはすでに昇順に並べられているとする.γを適当に定め,長さ2πの1次元領域を幅γで等間隔に細分する.たとえばγ=2π/Smaxとする.このメッシュ分割を第1階層メッシュ分割と呼ぶ.第1階層メッシュ分割では,γ×(i−1)<θi≦γ×i(2≦i)となるようなθjを番号iの第1階層メッシュに対応させて管理する.番号iが与えられたメッシュがカバーする偏角領域は[γ×(i−1),γ×i]となる.これによって,質問点Kの偏角θを指定すれば高速に,γ(i−1)<θ≦γiとなるような稜曲線の候補が検索できる.これらの候補の中から,真に半直線と交わる稜曲線を選択すればよい.しかし,θiは不均等に分布するので,特定の第1階層メッシュには,多くの稜曲線を管理しなければならない場合が発生する.
【0042】
そのような第1階層メッシュには子の階層メッシュ分割を設ける.設けるかどうかの判断は,自身の階層の第1階層メッシュからの深さをaとし,第i階層メッシュ分割のメッシュが管理すべき稜曲線の個数の合計をniすると,a+ni<M(予め指定した正の整数)を満足するかどうかで判断し,その不等式を満足する場合は子階層を設けることにし,その不等式を満足しない場合は不等式が成立するようになるまで自身のメッシュ幅を小さくする.この際,メッシュ幅が小さくなりすぎて,全体の必要記憶容量が予め定めた制限を越える場合は,上位の階層のメッシュ幅を広くし,また,別の樹木系統の下にある階層のメッシュの幅を狭くすることにより,必要記憶容量を調整する.
【0043】
なお,子階層でのメッシュ切りする際の座標軸平行等間隔格子幅の調整前の初期値は,親階層のメッシュの幅をbとすれば,b/ni(niは,当該第i階層のすべてのメッシュが管理すべき稜曲線の個数)にする.
【0044】
なお,上記に述べた実施例では,検索対象を2次元凸図形Qの稜曲線Siとし,Oを始点とし,質問点Kを通る半直線が交差するSiを検索する稜曲線検索システムを例に取り上げた.そのため,偏角−動径を座標軸とする極座標系においては,凸錐となる各メッシュをさらにρ座標軸に平行な同心円で分割する必要がなかった.
【0045】
しかし,質問点Kに最も近いSiを検索する稜線検索システムの場合,かつQを凹図形とする場合は,Oを頂点とする凸錐である各メッシュmをさらにρ座標軸に平行な同心円で分割する必要がある.なぜなら,Qが凹図形の場合,Oを始点としKを通る半直線OK上の任意の点をPとすると,Pから最短となる稜曲線の数はPに依存するようになる.その場合,同心円によって細分されるメッシュに対応させる稜曲線の数の最大数を小さくするために,該メッシュに対応して,分割に用いる同心円の半径の数列ρ,(i=1,2,・・・,ρmax,ρi<ρi+1(i<ρmax))を調整し,動径−稜曲線辞書テーブルを設ける.
【0046】
Kが与えられたときのメッシュの特定方法としては,まず,Kを含むφ軸に平行の凸錐であるメッシュmを特定し,次に特定できた該メッシュmに対応して設けた動径−稜曲線辞書テーブルを対象に2分探索法で,ρj<ρρ≦ρj+1(j<ρmax)となるjを特定すればよい.ただし,ρρはOとKの間の距離とする.
【0047】
なお,このケースにおいては,各メッシュに管理させる稜曲線の個数は,メッシュの細かさ調整することによって意図的に少なくすることに限界があり,図形Qの形状の複雑さ,およびQの稜曲線数の大きさに依存する.
【0048】
請求項2にかかわる3次元図形検索システムの実施例を説明する.検索対象を3次元凸図形Qの稜曲面Si(i=1,2,・・・,Smax)とし,Qに対応して適当に定めたOを始点とし,質問点Kを通る半直線が交差するSiの候補を検索する稜線検索システムを例に取り上げる.
【0049】
稜曲面Siは{x,y,z|x=xi(t,u),y=yi(t,u),z=zi(t,u),0≦t≦1,0≦u≦1}で定義される.まず,Qに横軸を偏角φ,縦軸を天頂角θとするφθ直交座標系をひとつ用意し,その座標系の中で,Siの上の点PがSiの内部を自由に移動するときのベクトルOPの偏角φ,天頂角θの軌跡が作る図形をSφθiとする.すべてのSφθiは,左下の稜点が(0,0),右上の稜点が(2π,π)となる矩形RRを隙間なく分割する.矩形RRの対辺同士は同一とみなす.図形SφθiはSiと1対1に対応する.
【0050】
まず,RRをメッシュ分割するために,第1階層メッシュのメッシュ幅γ,δを適当に定める.たとえばγを2π/Smax,δをπ/Smaxとする.偏角範囲が〔γ×(i−1),γ×i〕で,かつ天頂角範囲が〔δ×(j−1),δ×j〕をもつメッシュにはメッシュ番号(i+(j−1)×Smax)を与えるように番号つけたとき,偏角範囲が〔γ×(i−1),γ×i〕で,かつ天頂角範囲が〔δ×(j−1),δ×j〕の領域と共通点を持つような稜面を番号(i+(j−1)×Smax)のメッシュに対応させて管理する.これによって,質問点Kの偏角φ,天頂角θを指定すれば,Oを始点とし,稜面の内部の点Pを通過する半直線が該メッシュ領域と交わるような複数の稜面を高速に検索できる.これらの候補の中から,真に半直線と交わる稜曲線を選択すればよい.
【0051】
しかし,SφθiはRR上に不均等に分布するので,特定の第1階層メッシュには,多くの稜曲面を管理しなければならない場合が発生する.
【0052】
そのような第1階層メッシュには子の階層メッシュ分割を設ける.設けるかどうかの判断は,自身の階層の第1階層メッシュからの階層の深さをaとし,第i階層メッシュ分割のメッシュが管理すべき稜面の数をnjすると,a+ni<M(予め指定した正の整数)を満足するかどうかで判断し,その不等式を満足する場合は子階層を設けることにし,その不等式を満足しない場合は不等式が成立するようになるまで自身のメッシュ幅を小さくする.なお,njは,図形Qの同一頂点を共有する稜線の最大数以下にはできない.
【0053】
この際,メッシュ幅が小さくなりすぎて,全体の必要記憶容量が予め定めた制限を越える場合は,上位の階層のメッシュ幅を広くし,また,別の樹木系統の下にある階層のメッシュの幅を狭くすることにより,必要記憶容量を調整する.なお,子階層でのメッシュ切りする際の座標軸平行等間隔格子幅の調整前の初期値は,親階層のメッシュの偏角,天頂角方向の幅をそれぞれb,cとすれば,それぞれb/ni,c/ni(niは,第i階層のすべてのメッシュが管理すべき稜面の個数)にする.
【0054】
なお,上記に述べた実施例では,検索対象を3次元凸図形Qの稜曲面Siとし,Oを始点とし,質問点Kを通る半直線が交差するSiを検索する稜曲面検索システムを例に取り上げた.そのため,偏角−天頂角−動径を座標軸とする極座標系においては凸錐となる各メッシュをさらにρ座標軸に平行な同心円で分割する必要がなかった.
【0055】
しかし,質問点Kに最も近いSiを検索する稜曲面検索システムの場合,かつQを凹図形とする場合は,Oを頂点とする凸錐である各メッシュmをさらにρ座標軸に平行な同心円で分割する必要がある.なぜなら,Qが凹図形の場合,Oを始点としKを通る半直線OK上の任意の点をPとすると,Pから最短となる稜面の数はPに依存するようになるからである.その場合,同心円によって細分されるメッシュに対応させる稜面の数の最大数を小さくするために,該メッシュに対応して分割に用いる同心円の半径の数列ρi(i=1,2,・・・,ρmax,ρi<ρi+1(i<ρmax))を調整し,動径−稜曲面辞書テーブルを設ける.
【0056】
Kが与えられたときのメッシュの特定方法としては,まず,Kを含むφ,θ軸に平行の凸錐であるメッシュmを特定し,次に特定できた該メッシュmに対応して設けた動径−稜曲面辞書テーブルを対象に2分探索法で,ρj<ρρ≦ρj+1(i<ρmax)となるjを特定すればよい.ただし,ρρはOとρの間の距離とする.なお,このケースにおいては,各メッシュに管理させる稜曲面の個数は,メッシュの細かさ調整することによって意図的に少なくすることに限界があり,図形Qの形状の複雑さ,およびQの稜曲面数の大きさに依存する.
以上が,請求項2に関する実施例である.
【0057】
本特許によれば,2(3)次元凸図形の周辺の質問点Kに最も近い稜曲線(面)を検索するためには,2次元図形処理においては長さがπの1次元線分を,3次元図形処理においては縦がπ,横が2πの長さを持った2次元矩形をメッシュ分割すればよく,メッシュ分割対象空間の次元を1つ下げることができ,メッシュの数を少なくすることができる.
【0058】
本特許によれば,図形Qに対応して定めた点Oを始点とし,質問点Kを通る半直線と交わる稜線(面)を,図形の稜線(面)数に依存しない処理時間で検索できるので,請求項1に適用すれば,図形の交差判定を交差判定対象の2図形の稜線(面)数の総和に依存しない処理時間で実現できる.
【0059】
本特許によれば,質問点Kの最も近い稜線(面)の候補を少ないメッシュ数を用いて検索できる.
【0060】
本特許によれば,質問点Kの最も近い稜線(面)の候補を検索する際,メッシュ幅を調整することにより,メッシュの階層数と,メッシュが管理すべき稜線(面)数を調整できるので,稜線(面)の検索所要時間を制御できる.
【0061】
本特許によれば,2次元図形処理システムの場合は質問点Kの偏角を0,πを指定することにより,図形のとりうるx軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索でき,π/2,3π/2を指定することにより,図形のとりうるy軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索できるので,図形の存在領域を高速に計算することができる.また3次元図形処理システムの場合は質問点の(偏角,天頂角)を(0,π/2),(π,π/2)として指定することにより,図形のとりうるx軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索でき,(π/2,π/2),(3π/2,π/2)として指定することにより,図形のとりうるy軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索でき,(0,0),(0,π)として指定することにより,図形のとりうるz軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索できるので,図形の存在領域を高速に計算することができる.
【0062】
同様に,図形Qに対する指定された法線ベクトルを持つ支持線(面)を求める問題において,該支持線(面)に最も平行稜線(面)の集合を高速に検索できる特徴を有する.
【0063】
【発明の効果】
2つの2(3)次元凸図形間の交差判定処理を行う際,処理性能が図形の稜曲線(面)数の増加につれて劣化することを判定精度を落とさずに回避できる.
【図面の簡単な説明】
【図1】請求項1における2次元図形間の交差判定処理の実施例において,第1,2回目の稜曲線(面)Sm,j上の点Pm,jにおける接線Lm,j間の交点計算結果により得られたKj+1の近傍にある稜曲線(面)Sm,j+1とその上の点Pm,j+1を選び直す際の状況図である.
【図2】請求項2の実施例において,3次元図形の稜面の上の点Pが該稜面内を自由に移動したときに描かれる偏角−天頂角座標系における移動軌跡図形と,各階層のメッシュが管理すべき稜曲面の数を4に制限した場合の多階層メッシュ分割結果により得られたメッシュと稜曲面の対応状況を示す図である.
【符号の説明】
1.Qm:交差判定対称図形(m=1,2)
2.Om:Qmに対応して定めたQmの内点
3.Kj:稜曲線Sm,jの上の点Pm,jにおける接線Lm,jの交点
4.Sm,j:Qmの稜曲線
5.Pm,j:Sm,jと半直線OmKjとの交点
6.Lm,j:Sm,jのPm,jとの交点稜曲線
7.メッシュ
8.両曲面の軌跡図形
【発明の所属する技術分野】
本発明は2凸図形間の交差判定をするシステムの実現技術に関する.
【0002】
【従来の技術】
請求項1に関しての従来の技術についてまず述べる.2物体間の交差判定手法は,CAD/CAM,ロボット制御,コンピュータグラフィックス,その他数多くの局面で必要とされる基本的な図形処理ツールである.近年,計算機を用いたシミュレーションやアニメーションが頻繁に行われ,ダイナミックに位置が変動する物体間には交差判定処理が繰り返し用いられている.この際,図形が曲面の場合は交差判定の前に多数の多面体に近似して,交差判定に用いる事が広く行われているが,形状モデリング精度向上の要求が高い場合,近似多面体の頂点数nを増加させる必要があり,その結果,交差判定性能の大幅な劣化を招くことになる.そのため,長年研究者の間で高速交差判定手法の開発が競われ,多くの手法が提案されてきた.
【0003】
しかしながら,2つの2次元凸多角形の交差する可能性のある候補稜線(面)群を逐次的に限定して,候補数を絞り込み,最後に交差する稜線(面)を見つける手法〔B.Chazelle and D.Dobkin :DETCTION IS EASIER THAN COM P UTATION;ACM0−8791−017−6,1980〕はlog(n)(nは2凸多角形の頂点数の合計)の手法として1980年に発表されて以来,現在まで,これより速い手法は開発されていない.また,B.Chazelleらの手法は稜線を直線に限定している.
【0004】
交差判定研究の究極目標は,性能が稜線(面)数に依存せず,図形の各稜曲線(面)を近似図形を用いずに曲線(面)のまま用いて交差判定を行うことが可能な高速・高精度な判定方法を実現することである.
【0005】
次に請求項2に関しての従来の技術について述べる.請求項2は,請求項1において,一点Kjが与えられた時,Kjの最近傍にある図形Qmの稜曲線(面)Sm,jの検索に要する記憶容量を削減する目的のために提供される.
【0006】
請求項2の類似技術として,予め,3次元多面体Qの表面の近傍空間を3次元格子で分割し,得られたメッシュ毎に,該メッシュの内点から最短距離にあるQの稜面の集合を該メッシュに対応つけておき,質問点Kが与えられた時,Kを含むメッシュをまず特定し,特定したメッシュに対応つけた稜面の集合を検索結果として出力する方法が公知(K.Kawachi and H.suzuki;Distance Computation between Non−convex Polyhedra at short Range Based on Discrete Voronoi Region)となっている.該公知例では,Qの周辺の3次元空間Rを3次元x−y−zCartesian直交座標系の座標軸に平行な等間隔格子で分割している.
【0007】
しかし,一般的には図形Qの各稜面SとSの周辺の空間点Kとの相対位置関係は,該稜面Sの任意の点における法線ベクトル上の任意の点Pと各稜面Sとの相対位置関係とは相関関係がある場合がある.たとえば,Qを内点Oを適当に選び,原点Oを始点とし,任意の点Kを通る半直線Lと,該半直線Lの持つ偏角−天頂角の値に近い偏角−天頂角を持った始点をOとする他の半直線との間では,両半直線が交差するQの稜曲面は同一である可能性が高い.また,Qの外部の任意の一点Kから最も近いQの稜面の集合は,Oを始点としKを通る半直線OK上のKとは異なる任意の点KKから最も近いQの稜面の集合と共通集合を持つ可能性が高い.しかし,該公知例のようにメッシュに区切るための格子としてx−y−zCartesian直交座標軸に平行の格子を用いると,各メッシュに対応させる稜面の数が大きくなりがちであり,1つのメッシュ当たりに対応させる稜曲面数の最大値を小さくしようとすると,メッシュ数を大きくする必要が生じる.
【0008】
一方,図形Qが2次元の場合,一点Kが与えられた時,図形Qに対応して定めた点Oを始点としKを通る半直線と交差する図形の稜線(面)候補を高速に検索するための検索機能を実現しようとすると,Oを始点とし,該図形の稜線S上を移動する点Pを通る半直線の偏角を座標軸とする1次元座標空間上で描く軌跡図形SSにSを1対1に対応させ,該図形Qの各稜線に対応するSSが分布する空間RR内に位置する任意の値の偏角φを持つ質問点Kが与えられたとき,Kを含む領域SSを特定するための領域検索を行う問題に対しては,図形Qの各稜線Si(i=1,2,・・・,Smax)の始点と終点の偏角をそれぞれφsi,φei(φsi<φsi+1,φei<φei+1)としたとき,φeiを昇順に並べた表を用いて,φej−1<φ≦φejを満足させるようなφejを検索する手法として,公知の2分探索法が利用でき,その処理時間はO(log(Smax))となる.しかし,処理時間は必ずSmaxに依存してしまう.
【0009】
一方,特に図形Qが3次元の場合,一点Kが与えられた時,図形Qに対応して定めた点Oを始点としKを通る半直線と交差する図形の稜線(面)候補を高速に検索するための検索機能を実現しようとする場合,図形Q毎に対応して定めた点Oを始点とし,該図形の稜線(面)S上を移動する点Pを通る半直線の偏角と天頂角を座標軸とする2次元直交座標空間上で描く軌跡図形SSにSを1対1に対応させ,該図形Qの各稜線(面)に対応するSSが分布する空間RR内に位置する指定された偏角と天頂角を座標値として持つ質問点Kが与えられたとき,Kを含む領域SSを特定するための領域検索を行う問題に対しては,この問題を点位置決定問題として見なすことができ,すべてのSSを多角形近似したときの稜点数の合計をdとすると,Sarnak−Tarjanの方法〔譚学厚,平田富雄;計算幾何学入門,森北出版〕により,O(d)のメモリを用いて,O(logd)の時間で計算できることが公知となっている.しかし,処理時間はdに依存する.
【0010】
【発明が解決しようとする課題】
2つの2(3)次元凸図形間Qm(m=1,2)の交差判定処理を行う際,Qmを多角形に近似することなく,稜線(面)を曲線(面)のまま交差判定が可能な高速・高精度な判定方法を提供すること,および,図形Qの稜曲線(面)Sの集合を内包する2(3)次元空間Rをメッシュに分割して,各メッシュとSとの位置関係で定まる対応関係を与え,メッシュをキーワードにして,Sを検索する図形検索システムにおいて,メッシュ管理に必要な記憶容量を削減することを可能にするメッシュ構成手段を提供すること,およびこの手段の利用によって,請求項1が必要とする図形検索機能,すなわち,質問点Kが与えられた時,Kの近くに存在する図形Qの稜線(面)Sを検索するために要する必要記憶容量を圧縮する.
【0011】
【課題を解決するための手段】
請求項1は,Qm間の第j回目の交点収束計算段階に用いた近似交差稜曲線(面)Sm,jとその上の近似交点Pm,jを用いて次回の近似交差稜曲線(面)Sm,j+1とその上の近似交点Pm,j+1を求める手段と,交点収束計算の収束性判定手段より構成される.
【0012】
請求項2は,2(3)次元図形Qの稜線(面)Sの部分集合を内包する2(3)次元空間Rをメッシュに分割する手段と,各メッシュと各Sとの対応関係を与える手段と,質問情報から特定メッシュに対応したSを出力とする手段より構成される.
【0013】
【作用】
請求項1において,2図形Qm(m=1,2)から選んだ近似交差稜曲線(面)Sm,jとSm,jの上の近似交点Pm,jの対を用いて,Pm,jにおける稜曲線(面)Sm,jの接線(面)の間の交点(交線の上の適当に選んだ点)Kj+1の近傍内に,次回の稜曲線(面)Sm,j+1対を選びなおすことによって,前回のSm,j対とは近隣関係になく遠くに存在するSm,jを選ぶこともあるので,収束速度がQmの稜線(面)の総和に依存せず,真の交点Tに高速に近づくことができる.この収束原理は,関数f(x)の根を求めるニュートン法の収束原理と類似性を持つ.
【0014】
一般的には2(3)次元図形Qの各稜面SとSの近傍にある周辺の空間点Kとの相対位置関係は,Qに対応して選んだ内点Oを始点とし,Kを通る半直線OKがもしQの稜曲線(面)Sと交差するならば,Oを始点とする半直線Lの偏角と天頂角が,半直線OKの偏角(偏角と天頂角)に近い値を持つならば,Lも該Sと交差する可能性が高い.したがって,Lの任意の点PとSとの相対位置関係は,点KとSとの相対位置関係と相関関係を持つ可能性がある.また,Qの外部の任意の一点Kから最も近いQの稜面の集合は,Oを通り,Kを通る半直線OKの上の他の任意の点から最も近いQの稜面の集合との間では共通集合を持つ可能性が高い.
【0015】
したがって,極座標系の座標軸に平行な面を持ち,かつ多階層構造を持つメッシュを構成する手段を提供する請求項2は,稜曲線(面)に対応させるべきメッシュの大きさを大きくすることができ,結果的にメッシュ数を少なくすることが可能になり,メッシュの管理に必要な記憶容量を削減する.
【0016】
特に,各メッシュmと稜線(面)との間に与える対応関係を,該メッシュm内の点Kを通りOを始点とする半直線と稜線(面)の間の交点Kが存在する関係と定義すれば,極座標の偏角(偏角−天頂角)の軸に沿って平行で等間隔格子で座標空間を分割して生成した動径方向に無限の長さを持った凸錐形状のメッシュmを動径軸に沿ってさらに細分する必要がなくなり,実質的には1(2)次元偏角(偏角−天頂角)直交座標系空間を偏角(偏角,天頂角)座標軸に平行な境界を持ったメッシュで分割していることになり,分割対象空間が2(3)次元から1(2)次元空間となり,次元を1だけ下げることができるので,メッシュ数も大幅に削減できる.
【0017】
この場合,請求項2において,Kjに近い図形Qmの稜線(面)Sm,jの候補を直接に検索するのではなく,代わりに,図形Qmに対応して定めたOmを始点とし,Kjを通る半直線が交差するか,あるいは半直線の近傍にある稜線(面)の候補を検索することになるが,図形Qmが凸であれば,Kjに近い図形Qmの稜線(面)の候補と,図形Qmに対応して定めたOmを始点とし,Kjを通る半直線が交差するか,あるいは半直線の近傍にある稜線(面)の候補とは一致するので問題はない.
【0018】
また,一般に,稜線(面)の持つ偏角−動径(偏角−天頂角−動径)の極座標系空間における分布は不均一であるので,請求項2における多階層メッシュの大きさは,メッシュ分割に用いる各格子の幅の大きさを分布密度の高い場合は細かく,低い場合は大きくすることによって調整できるので,多階層化せずに一律にメッシュ分割する場合に比べ,メッシュ数を削減できる.
【0019】
また,各階層におけるメッシュ幅を小さくすれば,該階層のメッシュが管理すべき稜線(面)の数を小さくでき,かつ,その階層の深さを浅くできるので,検索処理時間を短くすることができるが,その半面,必要記憶容量が大きくなる.したがって,検索処理時間を短くすることと,必要記憶容量を大きくするというトレードオフを行うことが可能となっており,交差判定の所要時間設計も可能となっている.
【0020】
また,請求項2の検索時間は図形の稜線(面)数の総和とは無関係であり,トレードオフを行った事による処理時間の変化は,稜線(面)数の総和とは本質的に無関係であるため,結果的に請求項1の2図形の交差判定に要する時間は,2図形の稜線(面)数の総和とは無関係とすることができる.
【0021】
【発明の実施の形態】
本発明は,図形間の交差判定を必要とするプログラムに本発明を組み込む形態で実施される.
【0022】
【実施例】
まず,請求項1にかかわる2次元凸図形の交差判定システムの実施例を説明する.まず,用語の定義をおこなう.凸図形をQm(m=1,2)とし,その稜曲線をSm,i(i=1,2,・・・,Smax)と表す.各稜曲線Sm,iは,{(x,y)|x=xi(t),y=yi(t)(0≦t≦1)}で定義され,境界はパラメータtの値のとりうる範囲の両端で決定されるとする.Qmの内部が左側に存在するように各稜線の端点(xi(0),yi(0))を始点,(xi(1),yi(1))を終点とするように定める.xi(t),yi(t)は1階微分が可能な関数であるとする.
【0023】
図形Qmに対応してQmの内点Omを適当に定め,Omを極座標系の原点とし,稜曲線Sm,iの始点の偏角をφm,i,始点の偏角をθm,iとする.OmはQmの境界を除く内部に自由に定めてよい.しかし,すべてのiについてのθm,i−φm,iの最小値を可能な限り大きくするようにOmを定めるのが望ましい.なお,以下では,mが指定された場合はm=1とm=2の処理を行うこととする.
(1)j=1とする.
(2)KjをO1とO2を結ぶ線分の中点とする.
(3)Omを始点とし,Kjを通る半直線OmKjと交わる稜曲線Sm,jをQmの稜線群からそれぞれ1つずつ検索し,該半直線OmKjとSm,jとの交点Pm,jをニュートン法で計算して求め,2つのPm,j間の距離が予め指定した誤差距離ε(>0)以下であれば,Qmは交差すると判断して処理を終了する.
【0024】
Omを始点とし,Kjを通る半直線OmKjと交わる稜曲線(面)Sm,jを検索する方法の実施例を以下に述べる.まず,Omを始点とし各稜曲線Sm,iの終点を通るベクトルの偏角θm,j(θm,i−1<θm,j,2≦i)とすると,第i行にはθm,jを記憶した偏角−稜曲線辞書テーブルを作成しておく.半直線OmKjの偏角θを求め,該テーブルに対し2分探索を行えば,θm,i−1<θ<θm,jとなるようなiを処理時間O(logSmax)で特定できる.
(4)j=1であれば,O1とP1,jの間の距離とO2とP2,jの間の距離との和がO1とO2の間の距離よりも大きい場合は交差すると判定し処理を終了する.
(5)稜曲線Sm,j上の点Pm,jにおける接線Lm,iの交点を求め,j=j+1とし,該交点をKjとする.
(6)j>1であれば,過去に求めたLm,iの対(i=1,2,・・・,j)を用いて,Qmが交差する可能性が残されているかどうかを判断し,交差する可能性がないと判断した場合は処理を終了し,そうでない場合はjが予め定めた繰り返し制限回数を越した場合は交差しないとして処理を終了し,そうでない場合は(3)に戻る.
【0025】
Lm,iの対(i=1,2,・・・,j)を用いて,Qmが交差する可能性が残されているかどうかを判断する際の実施手順例は下記のとおりである.接線Lm,iがx−yCartesian直交座標空間を2分するうち,Qmが属する半平面をHQm,iとすると,2つのHQm,i(m=1,2)の共通集合である凸錐をUHQiとしたとき,任意の2つのUHQi,UHQk(1≦i≦j,1≦k≦j,i≠k)の共通集合が空であるようなiとkの組み合わせが1つでもある場合,Qmは交差しないと判断する.もうひとつの方法は,UHQjとUHQj−1だけを取り上げて,その共通集合が空であるかどうかによって,Qmは交差しないと判断するという簡略手法がある.
【0026】
次に,3次元凸図形の交差判定システムの実施例を説明する.まず,用語の定義をおこなう.凸図形をQm(m=1,2)とし,その稜曲面をSm,i(i=1,2,・・・,Smaxm,i)とし,各Sm,iを{x,y,z|x=xi(t,u),y=yi(t,u),z=zi(t,u),0≦t≦1,0≦u≦1,xi(t,u),yi(t,u),zi(t,u)は1階の微分が可能な関数}とする.各稜曲面Sm,iの稜曲線SLm,i,g(g=1,2,・・・,SLmaxm,i)の始点と終点は,稜曲線SLm,i,gの左側がQmの内部となるように定め,稜曲線の番号gに対しても,稜曲線の左側がQmの内部となるように昇順に番号をつける.
【0027】
図形Qmに対応してQmの内点Omを適当に定める.OmはQmの境界を除く内部に自由に定めてよい.しかし,稜曲線Sm,iの上の点Pが該稜曲面内を自由に移動したとき,ベクトルOmPの偏角φ,天頂角θの変動域幅をそれぞれφm,i,θm,iとすると,すべてのiについてのφm,i,θm,iの最小値を可能な限り大きくするようにOmを定めるのが望ましい.なお,以下では,mが指定された場合はm=1とm=2の処理を行うこととする.下記に手順を述べる.なお,以下では,mが指定された場合はm=1とm=2の処理を行うこととする.
【0028】
(1)j=1とする.
(2)KjをO1とO2を結ぶ線分の中点とする.
(3)Omを始点とし,Kjを通る半直線OmKjと交わる稜曲面Sm,jをQmの稜面群からそれぞれ1つずつを検索し,該半直線OmKjとSm,jとの交点Pm,jをニュートン法で計算して求め,2つのPm,j間の距離が指定した誤差距離ε(>0)以下であれば,Qmは交差すると判断して処理を終了する.
【0029】
Omを始点とし,Kjを通る半直線OmKjと交わる稜曲線(面)Sm,jを検索する方法の実施例を以下に述べる.まず,Qm毎に横軸を偏角φ,縦軸を天頂角θとするφθ直交座標系をひとつ用意し,その座標系の中で,Sm,iの上の点PがSm,iの内部を自由に移動する時のベクトルOmPの偏角φ,天頂角θの軌跡が作る図形をSφθm,iとする.すべてのSφθm,iは,左下稜点が(0,0),右上稜点が(2π,π)とする矩形RRを隙間なく分割する図形地図を構成する.矩形RRの対辺同士は同一とみなす.図形Sφθm,iはSm,iと1対1に対応する.今,外部から偏角φ,天頂角θが与えられたとき,質問点(φ,θ)はどのSφθm,iに属するかは,Sφθm,iを多角形近似すれば,点位置決定問題として解決することができ,Sarnak−Tarjanの方法により,その処理時間はO(logd)(dをSφm,iを多角形近似した時の全多角形の稜点の数の合計とする)で行える.このようにして検索したSφθm,iに1対1に対応するSm,iが求める稜面となる.なお,各Sφθm,iは多角形近似を行っているので,始点をOmを始点とし,Kを通る半直線は検索したSm,iと交点Pm,jを持つとは必ずしも保証できない.そこで,交点を持たない場合は,Omを始点とし該Sm,iに予め適当に定めた内点SOm,iを通る半直線と,Omを始点とし質問点Kを通る半直線との間に挟まれる凸錐と該Sm,iの稜曲線の交点をPm,jとする.
(4)j=1であれば,O1とP1,jの間の距離とO2とP2,jの間の距離との和がO1とO2の間の距離よりも大きい場合は交差すると判定し処理を終了する.
(5)稜曲面Sm,j上のPm,jにおける接平面Lm,i間の交線Lを求め,Pm,jからLm,jへ下ろして得た2つの垂点の中点を求め,j=j+1とし,該中点をKjとする.
(6)j>1であれば,Lm,iの対(i=1,2,・・・,j)を用いて,Qmが交差する可能性が残されているかどうかを判断し,交差する可能性がないと判断した場合は処理を終了し,そうでない場合はjが予め定めた繰り返し制限回数を越した場合は交差しないとして処理を終了し,そうでない場合は(3)に戻る.
【0030】
Lm,iの対(i=1,2,・・・,j)を用いて.Qmが交差する可能性が残されているかどうかを判断する際の実施手順例は下記のとおりである.接平面Lm,iがx−y−zCartesian直交座標空間を2分するうち,Qmが属する半空間をHQm,iとすると,2つのHQm,i(m=1,2)の共通集合である凸錐をUHQiとしたとき,任意の2つのUHQi,UHQk(1≦i≦j,1≦k≦j,i≠k)の共通集合が空であるようなiとkの組み合わせが1つでもある場合,Qmは交差しないと判断する.もうひとつの方法は,UHQjとUHQj−1だけを取り上げて,その共通集合が空であるかどうかによって,Qmは交差しないと判断するという簡略手法がある.
以上が,請求項1の実施例である.
【0031】
本方式は,2次元凸図形の稜曲線を線分に限定した場合は2次元凸多角形を扱うことになり,また3次元凸図形の稜曲面を平面に限定した場合は3次元凸多面体を扱うことになり,処理の対象が広範囲であるという特長を有する.
【0032】
本方式は,2次元凸図形の稜線として直線タイプと曲線タイプのものが混合した凸図形,あるいは3次元凸図形の稜曲面として,平面タイプと曲面タイプのものが混合した凸図形を取り扱うことができ,処理の対象が広範囲であるという特長を有する.
【0033】
本方式は,2次元凸図形の隣り合う2稜曲線が接合点で接線連続であることを必要とせず,あるいは3次元凸図形の隣り合う2稜曲面が接合稜線で接線連続であることを必要とせず,しかも,2図形間の交点を収束計算で求める際,2つのSm,jが大きく離れているために,2つのSm,jの組み合わせが頻繁に入れ替わる初期の段階と,Sm,jの組み合わせが固定され,ただPm,jの位置が変更されるだけの交点計算収束直前の最終段階とで,交点計算の処理手順の違いがまったくなく,交点計算処理手順が統一的に処理されるという特長,すなわち,互いに接線不連続でつながった稜曲線(面)よりなる図形をあたかも一体の微分可能な曲線(面)として交点計算を行う方式を可能にしているという特徴を有する.
【0034】
本方式は,交差判定を可能とするだけでなく,交差する場合の稜線(面)番号と交点をも決定しうるという特長を有する.
【0035】
本方式は,交差判定を可能とするだけでなく,交差しないと判断したときに用いた稜線(面)上の接線(平面)を2図形間の分離線(平面)として提供しうるという特長を有する.
【0036】
本方式は,2次元においては,偏角から稜線を検索する偏角−稜曲線辞書テーブルを一度作成しておけば,以降は図形が回転・移動を行っても再作成する必要がなく,また,3次元においては偏角−天頂角直交座標系でのSφθm,iの図形地図は,Qmが移動・回転しても変化しないので再作成する必要がないため,高速移動する2図形間の交差判定をダイナミックなシミュレーション環境下で高速に実行できるという特徴を有する.
【0037】
本方式は,交点計算収束回数はQmの稜線(面)数に依存しないという特長を有する.
【0038】
本方式は図形の曲面式をそのまま用いるため,高精度の判定チェックが行えるという特長を有する.
【0039】
次に,請求項2にかかわる2次元図形検索システムの実施例を説明する.検索対象を2次元凸図形Qの稜曲線Si(i=1,2,・・・,Smax)とし,Qに対応して適当に定めたOを始点とし,質問点Kを通る半直線が交差するSiを検索する稜線検索システムを例に取り上げる.OはQの境界を除く内部に点を定めるのが望ましい.さらに,すべてのiについてのθi−φiの最小値が最大となるようなOを選ぶのが望ましい.この対策は,後で述べる各メッシュに対応させる稜線Siの最大数を小さくするのに効果がある.
【0040】
各稜曲線Siは{(x,y)|x=xi(t),y=yi(t),0≦t≦1}で定義され,境界はパラメータtの値のとりうる範囲の両端で決定されるとする.Qの内部が左側に存在するように各稜面の端点(xi(0),yi(0))を始点,(xi(1),yi(1))を終点とするように定める.Oを原点と見なした時,Si上の始点の偏角をφi,終点の偏角をθiとする.したがってφiとθiではさまれた1次元領域〔φi,θi〕はSiに1対1に対応する.すべての〔φi,θi〕は,0から2πまでの1次元偏角座標領域RRを隙間なく被覆し,互いの重なりはない.
【0041】
θiはすでに昇順に並べられているとする.γを適当に定め,長さ2πの1次元領域を幅γで等間隔に細分する.たとえばγ=2π/Smaxとする.このメッシュ分割を第1階層メッシュ分割と呼ぶ.第1階層メッシュ分割では,γ×(i−1)<θi≦γ×i(2≦i)となるようなθjを番号iの第1階層メッシュに対応させて管理する.番号iが与えられたメッシュがカバーする偏角領域は[γ×(i−1),γ×i]となる.これによって,質問点Kの偏角θを指定すれば高速に,γ(i−1)<θ≦γiとなるような稜曲線の候補が検索できる.これらの候補の中から,真に半直線と交わる稜曲線を選択すればよい.しかし,θiは不均等に分布するので,特定の第1階層メッシュには,多くの稜曲線を管理しなければならない場合が発生する.
【0042】
そのような第1階層メッシュには子の階層メッシュ分割を設ける.設けるかどうかの判断は,自身の階層の第1階層メッシュからの深さをaとし,第i階層メッシュ分割のメッシュが管理すべき稜曲線の個数の合計をniすると,a+ni<M(予め指定した正の整数)を満足するかどうかで判断し,その不等式を満足する場合は子階層を設けることにし,その不等式を満足しない場合は不等式が成立するようになるまで自身のメッシュ幅を小さくする.この際,メッシュ幅が小さくなりすぎて,全体の必要記憶容量が予め定めた制限を越える場合は,上位の階層のメッシュ幅を広くし,また,別の樹木系統の下にある階層のメッシュの幅を狭くすることにより,必要記憶容量を調整する.
【0043】
なお,子階層でのメッシュ切りする際の座標軸平行等間隔格子幅の調整前の初期値は,親階層のメッシュの幅をbとすれば,b/ni(niは,当該第i階層のすべてのメッシュが管理すべき稜曲線の個数)にする.
【0044】
なお,上記に述べた実施例では,検索対象を2次元凸図形Qの稜曲線Siとし,Oを始点とし,質問点Kを通る半直線が交差するSiを検索する稜曲線検索システムを例に取り上げた.そのため,偏角−動径を座標軸とする極座標系においては,凸錐となる各メッシュをさらにρ座標軸に平行な同心円で分割する必要がなかった.
【0045】
しかし,質問点Kに最も近いSiを検索する稜線検索システムの場合,かつQを凹図形とする場合は,Oを頂点とする凸錐である各メッシュmをさらにρ座標軸に平行な同心円で分割する必要がある.なぜなら,Qが凹図形の場合,Oを始点としKを通る半直線OK上の任意の点をPとすると,Pから最短となる稜曲線の数はPに依存するようになる.その場合,同心円によって細分されるメッシュに対応させる稜曲線の数の最大数を小さくするために,該メッシュに対応して,分割に用いる同心円の半径の数列ρ,(i=1,2,・・・,ρmax,ρi<ρi+1(i<ρmax))を調整し,動径−稜曲線辞書テーブルを設ける.
【0046】
Kが与えられたときのメッシュの特定方法としては,まず,Kを含むφ軸に平行の凸錐であるメッシュmを特定し,次に特定できた該メッシュmに対応して設けた動径−稜曲線辞書テーブルを対象に2分探索法で,ρj<ρρ≦ρj+1(j<ρmax)となるjを特定すればよい.ただし,ρρはOとKの間の距離とする.
【0047】
なお,このケースにおいては,各メッシュに管理させる稜曲線の個数は,メッシュの細かさ調整することによって意図的に少なくすることに限界があり,図形Qの形状の複雑さ,およびQの稜曲線数の大きさに依存する.
【0048】
請求項2にかかわる3次元図形検索システムの実施例を説明する.検索対象を3次元凸図形Qの稜曲面Si(i=1,2,・・・,Smax)とし,Qに対応して適当に定めたOを始点とし,質問点Kを通る半直線が交差するSiの候補を検索する稜線検索システムを例に取り上げる.
【0049】
稜曲面Siは{x,y,z|x=xi(t,u),y=yi(t,u),z=zi(t,u),0≦t≦1,0≦u≦1}で定義される.まず,Qに横軸を偏角φ,縦軸を天頂角θとするφθ直交座標系をひとつ用意し,その座標系の中で,Siの上の点PがSiの内部を自由に移動するときのベクトルOPの偏角φ,天頂角θの軌跡が作る図形をSφθiとする.すべてのSφθiは,左下の稜点が(0,0),右上の稜点が(2π,π)となる矩形RRを隙間なく分割する.矩形RRの対辺同士は同一とみなす.図形SφθiはSiと1対1に対応する.
【0050】
まず,RRをメッシュ分割するために,第1階層メッシュのメッシュ幅γ,δを適当に定める.たとえばγを2π/Smax,δをπ/Smaxとする.偏角範囲が〔γ×(i−1),γ×i〕で,かつ天頂角範囲が〔δ×(j−1),δ×j〕をもつメッシュにはメッシュ番号(i+(j−1)×Smax)を与えるように番号つけたとき,偏角範囲が〔γ×(i−1),γ×i〕で,かつ天頂角範囲が〔δ×(j−1),δ×j〕の領域と共通点を持つような稜面を番号(i+(j−1)×Smax)のメッシュに対応させて管理する.これによって,質問点Kの偏角φ,天頂角θを指定すれば,Oを始点とし,稜面の内部の点Pを通過する半直線が該メッシュ領域と交わるような複数の稜面を高速に検索できる.これらの候補の中から,真に半直線と交わる稜曲線を選択すればよい.
【0051】
しかし,SφθiはRR上に不均等に分布するので,特定の第1階層メッシュには,多くの稜曲面を管理しなければならない場合が発生する.
【0052】
そのような第1階層メッシュには子の階層メッシュ分割を設ける.設けるかどうかの判断は,自身の階層の第1階層メッシュからの階層の深さをaとし,第i階層メッシュ分割のメッシュが管理すべき稜面の数をnjすると,a+ni<M(予め指定した正の整数)を満足するかどうかで判断し,その不等式を満足する場合は子階層を設けることにし,その不等式を満足しない場合は不等式が成立するようになるまで自身のメッシュ幅を小さくする.なお,njは,図形Qの同一頂点を共有する稜線の最大数以下にはできない.
【0053】
この際,メッシュ幅が小さくなりすぎて,全体の必要記憶容量が予め定めた制限を越える場合は,上位の階層のメッシュ幅を広くし,また,別の樹木系統の下にある階層のメッシュの幅を狭くすることにより,必要記憶容量を調整する.なお,子階層でのメッシュ切りする際の座標軸平行等間隔格子幅の調整前の初期値は,親階層のメッシュの偏角,天頂角方向の幅をそれぞれb,cとすれば,それぞれb/ni,c/ni(niは,第i階層のすべてのメッシュが管理すべき稜面の個数)にする.
【0054】
なお,上記に述べた実施例では,検索対象を3次元凸図形Qの稜曲面Siとし,Oを始点とし,質問点Kを通る半直線が交差するSiを検索する稜曲面検索システムを例に取り上げた.そのため,偏角−天頂角−動径を座標軸とする極座標系においては凸錐となる各メッシュをさらにρ座標軸に平行な同心円で分割する必要がなかった.
【0055】
しかし,質問点Kに最も近いSiを検索する稜曲面検索システムの場合,かつQを凹図形とする場合は,Oを頂点とする凸錐である各メッシュmをさらにρ座標軸に平行な同心円で分割する必要がある.なぜなら,Qが凹図形の場合,Oを始点としKを通る半直線OK上の任意の点をPとすると,Pから最短となる稜面の数はPに依存するようになるからである.その場合,同心円によって細分されるメッシュに対応させる稜面の数の最大数を小さくするために,該メッシュに対応して分割に用いる同心円の半径の数列ρi(i=1,2,・・・,ρmax,ρi<ρi+1(i<ρmax))を調整し,動径−稜曲面辞書テーブルを設ける.
【0056】
Kが与えられたときのメッシュの特定方法としては,まず,Kを含むφ,θ軸に平行の凸錐であるメッシュmを特定し,次に特定できた該メッシュmに対応して設けた動径−稜曲面辞書テーブルを対象に2分探索法で,ρj<ρρ≦ρj+1(i<ρmax)となるjを特定すればよい.ただし,ρρはOとρの間の距離とする.なお,このケースにおいては,各メッシュに管理させる稜曲面の個数は,メッシュの細かさ調整することによって意図的に少なくすることに限界があり,図形Qの形状の複雑さ,およびQの稜曲面数の大きさに依存する.
以上が,請求項2に関する実施例である.
【0057】
本特許によれば,2(3)次元凸図形の周辺の質問点Kに最も近い稜曲線(面)を検索するためには,2次元図形処理においては長さがπの1次元線分を,3次元図形処理においては縦がπ,横が2πの長さを持った2次元矩形をメッシュ分割すればよく,メッシュ分割対象空間の次元を1つ下げることができ,メッシュの数を少なくすることができる.
【0058】
本特許によれば,図形Qに対応して定めた点Oを始点とし,質問点Kを通る半直線と交わる稜線(面)を,図形の稜線(面)数に依存しない処理時間で検索できるので,請求項1に適用すれば,図形の交差判定を交差判定対象の2図形の稜線(面)数の総和に依存しない処理時間で実現できる.
【0059】
本特許によれば,質問点Kの最も近い稜線(面)の候補を少ないメッシュ数を用いて検索できる.
【0060】
本特許によれば,質問点Kの最も近い稜線(面)の候補を検索する際,メッシュ幅を調整することにより,メッシュの階層数と,メッシュが管理すべき稜線(面)数を調整できるので,稜線(面)の検索所要時間を制御できる.
【0061】
本特許によれば,2次元図形処理システムの場合は質問点Kの偏角を0,πを指定することにより,図形のとりうるx軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索でき,π/2,3π/2を指定することにより,図形のとりうるy軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索できるので,図形の存在領域を高速に計算することができる.また3次元図形処理システムの場合は質問点の(偏角,天頂角)を(0,π/2),(π,π/2)として指定することにより,図形のとりうるx軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索でき,(π/2,π/2),(3π/2,π/2)として指定することにより,図形のとりうるy軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索でき,(0,0),(0,π)として指定することにより,図形のとりうるz軸方向の座標値の最大値,最小値をもつ可能性のある稜線を高速に検索できるので,図形の存在領域を高速に計算することができる.
【0062】
同様に,図形Qに対する指定された法線ベクトルを持つ支持線(面)を求める問題において,該支持線(面)に最も平行稜線(面)の集合を高速に検索できる特徴を有する.
【0063】
【発明の効果】
2つの2(3)次元凸図形間の交差判定処理を行う際,処理性能が図形の稜曲線(面)数の増加につれて劣化することを判定精度を落とさずに回避できる.
【図面の簡単な説明】
【図1】請求項1における2次元図形間の交差判定処理の実施例において,第1,2回目の稜曲線(面)Sm,j上の点Pm,jにおける接線Lm,j間の交点計算結果により得られたKj+1の近傍にある稜曲線(面)Sm,j+1とその上の点Pm,j+1を選び直す際の状況図である.
【図2】請求項2の実施例において,3次元図形の稜面の上の点Pが該稜面内を自由に移動したときに描かれる偏角−天頂角座標系における移動軌跡図形と,各階層のメッシュが管理すべき稜曲面の数を4に制限した場合の多階層メッシュ分割結果により得られたメッシュと稜曲面の対応状況を示す図である.
【符号の説明】
1.Qm:交差判定対称図形(m=1,2)
2.Om:Qmに対応して定めたQmの内点
3.Kj:稜曲線Sm,jの上の点Pm,jにおける接線Lm,jの交点
4.Sm,j:Qmの稜曲線
5.Pm,j:Sm,jと半直線OmKjとの交点
6.Lm,j:Sm,jのPm,jとの交点稜曲線
7.メッシュ
8.両曲面の軌跡図形
Claims (2)
- 2つの2(3)次元凸図形Qm(m=1,2)の間で交差部分が存在するかどうかを判定するシステムにおいて,まずj=1とし,近似交差稜曲線(面)Sm,jと該稜曲線(面)上の近似交点Pm,jをQmから1組ずつ適当に選び,点Pm,j間の距離が予め指定した誤差距離ε(>0)以下であるかどうかの検査を行い,ε以下であれば2つの図形は交差すると判断して処理を終了し,そうでない場合,かつj≠1の場合はQ1とQ2は交差する可能性が残っているかどうかを検査し,交差する可能性が残っていないと判断した場合は処理を終了し,そうでない場合はPm,jにおけるSm,jの接線(平面)の交点(交線上の適当に選んだ点)を求め,j=j+1とし,該点をKjとし,Kjの近傍にある稜曲線(面)Sm,jを検索し,求めた該稜曲線(面)Sm,j上の点Pm,jを適当に定め,上記に述べた処理を繰り返すことを特徴とする図形交差判定システム.
- 2(3)次元図形Qの稜線(面)Sの部分集合が与えられた時,該部分集合を内包する2(3)次元空間をメッシュに分割して,各メッシュと各Sとの間に対して,対応関係を該メッシュと該Sとの間の位置関係が予め定めた一定条件を満たす時に対応関係を与え,メッシュを直接的に,あるいは間接的に特定できる質問情報が与えられた時,特定されたメッシュをキーワードにして該メッシュに対応つけられたSを出力する図形検索システムにおいて,Rの中にQに対応して適当に定めた点Oを座標原点とする極座標系を定め,2次元偏角φ−動径ρ座標系(2次元偏角φ−天頂角θ−動径ρ座標系)空間を,適当に定めた幅Δφ(Δφ,Δθ)を持つ1(2)組の偏角(偏角−天頂角)座標軸平行等間隔格子で区切って,動径ρ座標軸方向に無限の領域を持った凸錐形状のメッシュに分割し,得た各メッシュ毎に必要性に応じて,該メッシュを,適当に定めたより細かなΔφ(Δφ,Δθ)の幅を持つ1(2)組の偏角φ(偏角φ,天頂角θ)座標軸平行等間隔格子でさらに分割することを下方に繰り返すことにより,不均等な大きさを持つメッシュに分割して得た多階層構造を持つメッシュ群の各メッシュmに対し,あるいは各メッシュmに一様に,必要に応じて,数列ρi(i=1,2,・・・,ρmax,ρi<ρi+1(i<ρmax))を与え,中心をOとし,半径ρiの同心円によってmを細分して得たメッシュを用いることを特徴とする図形検索システム.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002239899A JP2004054860A (ja) | 2002-07-18 | 2002-07-18 | 図形交差判定システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002239899A JP2004054860A (ja) | 2002-07-18 | 2002-07-18 | 図形交差判定システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004054860A true JP2004054860A (ja) | 2004-02-19 |
Family
ID=31943886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002239899A Pending JP2004054860A (ja) | 2002-07-18 | 2002-07-18 | 図形交差判定システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004054860A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2005123471A1 (ja) * | 2004-06-18 | 2008-04-10 | 株式会社ミツバ | ワイパブレード |
JP2009511335A (ja) * | 2005-10-10 | 2009-03-19 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | ウィンドガラスワイパアーム |
JP2009292285A (ja) * | 2008-06-04 | 2009-12-17 | Honda Motor Co Ltd | ペダル反力制御装置 |
-
2002
- 2002-07-18 JP JP2002239899A patent/JP2004054860A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2005123471A1 (ja) * | 2004-06-18 | 2008-04-10 | 株式会社ミツバ | ワイパブレード |
JP2009511335A (ja) * | 2005-10-10 | 2009-03-19 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | ウィンドガラスワイパアーム |
JP2009292285A (ja) * | 2008-06-04 | 2009-12-17 | Honda Motor Co Ltd | ペダル反力制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Minetto et al. | An optimal algorithm for 3D triangle mesh slicing | |
Ding et al. | Oriented bounding box and octree based global interference detection in 5-axis machining of free-form surfaces | |
Goodrich et al. | External-memory computational geometry | |
CN100418108C (zh) | 三维扫描系统中的图形重构方法 | |
Mi et al. | Tool orientation optimization for 5-axis machining with C-space method | |
Franklin | Efficient polyhedron intersection and union | |
Fukuchi | Higher order difference numerical analyses of a 2D Poisson equation by the interpolation finite difference method and calculation error evaluation | |
Das et al. | Computing the straight skeleton of a monotone polygon in O (n log n) time. | |
JP2004054860A (ja) | 図形交差判定システム | |
CA2314134A1 (en) | Method and systems for nesting objects | |
De Micheli et al. | Smile: a computer program for partitioning of programmed logic arrays | |
Gupta et al. | Exact representations and geometric queries for lattice structures with quador beams | |
US11328100B2 (en) | Regular grid recognition in a CAD model | |
Zhang et al. | Improving the machining dynamics performance and efficiency for complex channel part manufacturing by planning the tool orientations and feed rate sequence | |
Wiemann et al. | Data handling in large-scale surface reconstruction | |
Camata et al. | Parallel linear octree meshing with immersed surfaces | |
CN111400969B (zh) | 一种非结构直角网格加速生成方法 | |
Cermák et al. | Adaptive edge spinning algorithm for polygonization of implicit surfaces | |
Tang et al. | Fast approximate geodesic paths on triangle mesh | |
Soukal et al. | Walking algorithms for point location in TIN models | |
US6587103B1 (en) | Method and apparatus for determining coincident lines | |
Li et al. | Planar tool radius compensation for CNC systems based on NURBS interpolation | |
Gowda | Dynamic problems in computational geometry | |
Cavelan et al. | Finding Neighbors in a Forest: A b-tree for Smoothed Particle Hydrodynamics Simulations | |
Ren et al. | High performance manufacturing of complex surfaces using inverse cutting profiles and NC verification of virtual models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080507 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081014 |