JPH08320938A - 領域内における内外判定方法 - Google Patents
領域内における内外判定方法Info
- Publication number
- JPH08320938A JPH08320938A JP7128138A JP12813895A JPH08320938A JP H08320938 A JPH08320938 A JP H08320938A JP 7128138 A JP7128138 A JP 7128138A JP 12813895 A JP12813895 A JP 12813895A JP H08320938 A JPH08320938 A JP H08320938A
- Authority
- JP
- Japan
- Prior art keywords
- area
- point
- intersection
- outside
- boundary
- 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.)
- Granted
Links
Landscapes
- Image Generation (AREA)
Abstract
域内にあるか否かを判定すること。 【構成】 判定したい点が、N次元の面に乗っているか
を判定するステップと、前記判定したい点が上記領域の
境界を構成する稜線に乗っているかを判定するステップ
と、前記判定したい点を通り領域と交点を持つ切断面を
求めるステップと、前記切断面と領域の乗っている面と
の交線を求めるステップと、切断面と領域の境界を構成
する稜線の交点を求めるステップと、前記交線上に乗っ
ていて、領域外にある点を求めるステップと、判定した
い点と領域外にある点の数が偶数か奇数かを判定するス
テップとにより実現する。
Description
領域における点の内外判定方法に関するものである。
定としては、領域が多角形の場合、図3のように判定し
ようとする点と多角形の頂点の列を結ぶベクトルの作る
角の総和を求めて、0であれば外部の点、±πであれば
内部の点と判定する方法や、図4のように判定したい点
から半無限直線を引き、境界を構成しようとする各稜線
との交点の個数を数え、偶数なら外部の点、奇数なら内
部の点と判定する方法が知られている。
計算機を使って、2次曲面や自由曲面等を含む3次元の
面上の領域において内外判定を行なう時、計算機が厳密
な計算を行なえないため、計算機による誤差によって、
内外判定の結果が正しく得られないことがあり、安定な
内外判定を行なうことが難しく、3次元のCADのモデ
リング等において、3次元の領域における一点の内外判
定を利用した図形処理が多用されるため、安定的に、3
次元の図形処理を行なうことが難しいという問題点があ
った。
場合と違い、領域の乗っている面の種類、領域の境界を
構成する稜線の種類に関わらず、同一の手段で統一的に
内外判定行なうことが難しいという課題があった。
の面に乗っているかを判定するステップと、前記判定し
たい点が上記領域の境界を構成する稜線に乗っているか
を判定するステップと、前記判定したい点を通り領域と
交点を持つ切断面を求めるステップと、前記切断面と領
域の乗っている面との交線を求めるステップと、切断面
と領域の境界を構成する稜線の交点を求めるステップ
と、前記交線上に乗っていて、領域外にある点を求める
ステップと、判定したい点と領域外にある点の数が偶数
か奇数かを判定するステップとを有することにより領域
内のある点の内外を判定するものである。
するフローチャートである。
ブロック図であり、バス1(制御線、データ線およびア
ドレス線を含む)には、中央処理装置(CPU)2、リ
ード・オンリ・メモリ(ROM)3、ランダム・アクセ
ス・メモリ(RAM)4、入力インターフェース5を介
して入力装置6、CRTインターフェース7を介してC
RT8、外部記憶装置インターフェース9を介して、磁
気ディスク、磁気テープ等の外部記憶装置10が接続さ
れている。いる。ROM3に記憶されたプログラムに応
じ、RAM4を一時記憶装置として種々の処理及び制
御、例えば図形入力制御、図形表示、ピック処理、隠面
処理、内外判定等を行なう。入力装置6はキーボード、
タブレット、マウス等であり、図形データの入力を行な
うが、この図形データはホスト・コンピュータから受け
てもよい。CRT8は必要に応じて複数のビット・マッ
プ・プレーン等を含んでおり図形を表示する。
参照して本発明の好適な実施例を説明するが、以下に述
べる処理及び判断はCPU2がROM3に記憶された図
1に示す手順のプログラムに従って行なう。
な平面および円筒面、円錐面、球等の2次曲面およびト
ーラス、Bezier曲面、NURBS(Non Un
iformed Rational B−splin
e)曲面等の自由曲線などの幾何形状を持つ面上にあ
り、線分および円弧、楕円弧、放射線、双曲線等の2次
曲線、Bezier曲面、NURBS(Non Uni
formed Rational B−spline)
曲線等の幾何形状を持つ稜線からなる境界によって囲ま
れた領域内に、ある空間上の点がその領域内にあるかど
うかを判定するものである。
らなる外周ループと内周ループよりなり、外周ループは
領域の最外周を表現するループで、内周ループは領域に
おける穴を表現するループである。外周ループは、反時
計回りを正方向とし、内周ループは時計回りを正方向と
し、その順番に稜線がならんでいるものとする。よって
稜線上をループの正方向に進んでいったとき左側に領域
の実体があるものとする。
チャートのステップS1〜S13の順番にしたがって内
外判定の処理が図2のブロックの中で実行される説明を
行なう。
施例では、判定する点が領域の乗っている面上にまず乗
っているか判定する。判定する点と領域の乗っている面
との距離が、定められた長さに関する幾何的許容誤差ε
以内だとON−SURFACE、そうでなければOFF
−SURFACEと判定する。S2においてOFF−S
URFACEのときはS13において領域外と判定して
処理を終了する。
定)上記の処理の後与点が境界上にあるかどうかを判定
をする。判定は境界を構成する各稜線と与点との距離を
算出し、いずれかの稜線と与点との距離が定められた長
さに関する幾何的許容誤差ε以内にあれば与点は境界上
にあると判定され処理を終了する。この処理により計算
誤差による微妙な領域外の内外判定のエラーをあらかじ
め防ぐことができる。
点を持つ切断面の算出)ここでは、切断面として平面を
考える。領域の境界と確実に交点を持つ切断面の算出す
るため、領域の境界を構成する任意の稜線の中点を算出
する。また別の一点を乱数を使って発生させる。与点、
任意の稜線の中点、乱数を使った一点が同一直線になら
んでいなかったら3点を通る平面を切断面とする。同一
直線にならんでいたならばなくなるまで乱数を使って、
点を求める。後述するように、内外判定にはここで求め
た切断面と領域との交線と境界との交点の数を使うので
図7のように微妙な計算誤差により判定結果がわかれる
ケースがある。ここで乱数を使い切断平面を求めること
によって上記のような微妙な位置関係になる確率が低く
なる。さらにこの切断平面を求める処理以下を奇数回行
ない、多い方の判定結果を採用することにより正しい判
定結果を得られる確率が非常に高くなる。
交線の算出)上記で求めた切断平面と領域の乗っている
面との交線Cを算出する。
出)上記で求めた切断面と境界を構成する各稜線との交
点を求めて、境界との交点を算出する。ここで算出され
た交点は、上記で算出された交線上に乗っている。
を算出)交線C上に乗っている領域外の点を求める。本
実施例では以下のような手順にしたがって求める。
うち任意の一点P0を取り出す。また、その点ののって
いる稜線をE0とする。ここでP0における領域の乗っ
ている面の法線ベクトルをn0とする。また点P0にお
けるE0の接線の単位方向ベクトルで、E0におけるE
0の所属しているループの回り向きと同方向のベクトル
をTEとする。また点P0における交線Cの接線の方向
ベクトルで、大きさが定められた長さに関する幾何的許
容誤差εよりも十分に小さい大きさepsdを持つベク
トルをTC1、TC2とする。(図8参照)ここで、 n1=TC1×TE (1) n2=TC2×TE (2) θ1=(n0とn1のなす角) (0≦θ1≦π) (3) θ2=(n0とn2のなす角) (0≦θ2≦π) (4) ここでθi(i=1,2)<π/2のときTC=TCi
とする。このとき、 Pout0=P0+TC (5) とする。またPout0から交線Cに下ろした垂線の足
をPoutとする。Poutが求める交線C上に乗って
いる領域外の点である。
点、領域外の点の交線上にならんでいる順番を認識)与
点、切断面と領域の境界との交点、領域外の点の交線上
にならんでいる順番にソートする。ソートは以下の方法
による。
る。ここでパラメトリック表現としては、パラメータが
交線Cの進む方向にしたがって単調に増減する必要があ
る。このようなパラメータ表現を取ることによりパラメ
ータの大きさ順にならべることによって、交線上になら
んでいる順番を得ることができる。ここでパラメータ表
現の例としては、直線の場合、 P=P0+tV(−∞≦t≦∞) (6) P0:直線上の任意の一点 V:直線の方向ベクトル t:パラメータ 円の場合、 P=C+r(ucost+vcost) (0≦t≦2π) (7) C:円の中心 r:円の半径 u:基準ベクトル1(円と同じ平面上の単位ベクトル) v:基準ベクトル2(円と同じ平面上の単位ベクトル) ただしu・v=0 t:パラメータ 楕円の場合 P=C+acost+bsint (0≦t≦2π) (8) C:楕円の中心 a:長軸ベクトル b:短軸ベクトル ただしa・b=0 t:パラメータ 双曲線の場合 P=C+asect+btant (0≦t≦2π) (9) C:基準位置ベクトル a:基準ベクトル1 b:基準ベクトル2 t:パラメータ 放物線の場合 P=C+p・t^2u+2ptv (0≦t≦π) (10) C:基準位置のベクトル p:焦点距離 u:基準単位軸方向ベクトル1 v:基準単位軸方向ベクトル2 t:パラメータ ただしu・v=0
た点の順番にそって、与点と領域外の点Poutとの間
の領域の交点の数をカウントする。その交点の数に応じ
て 奇数ならば 領域内 偶数ならば 領域外 と判定する。
類、境界を構成する稜線の種類を変更しても同様の方法
で、内外判定を行なえる。
おける一点の内外判定を行なうことにより3次元のCA
Dのモデリング等における、3次元の領域における一点
の内外判定を利用した図形処理を安定的に行なうことが
できるという効果がある。
Claims (6)
- 【請求項1】 判定したい点が、N次元の面に乗ってい
るかを判定するステップと、 前記判定したい点が上記領域の境界を構成する稜線に乗
っているかを判定するステップと、 前記判定したい点を通り領域と交点を持つ切断面を求め
るステップと、 前記切断面と領域の乗っている面との交線を求めるステ
ップと、 切断面と領域の境界を構成する稜線の交点を求めるステ
ップと、 前記交線上に乗っていて、領域外にある点を求めるステ
ップと、 判定したい点と領域外にある点の数が偶数か奇数かを判
定するステップとを有する領域内における内外判定方
法。 - 【請求項2】 判定したい点が偶数であれば領域内と判
定するステップを有する請求項1の領域内における内外
判定方法。 - 【請求項3】 判定したい点が奇数であれば、領域外と
判定するステップとを有する請求項1の領域内における
内外判定方法。 - 【請求項4】 判定したい点が偶数であれば領域外と判
定するステップと、 判定したい点が奇数であれば、領域内と判定するステッ
プとを有する請求項1の領域内における内外判定方法。 - 【請求項5】 前記判定したい点が境界を構成する稜線
に乗っていれば、境界上にあると判定するステップとを
有する請求項1の領域内における内外判定方法。 - 【請求項6】 判定したい点及び領域外の点及び切断面
と領域の境界を構成する稜線の交点を切断面と領域の乗
っている面との交線上において並んでいる順番を認識す
るステップとを有する請求項1の領域内における内外判
定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12813895A JP4095120B2 (ja) | 1995-05-26 | 1995-05-26 | 領域内における内外判定方法、及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12813895A JP4095120B2 (ja) | 1995-05-26 | 1995-05-26 | 領域内における内外判定方法、及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08320938A true JPH08320938A (ja) | 1996-12-03 |
JP4095120B2 JP4095120B2 (ja) | 2008-06-04 |
Family
ID=14977347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12813895A Expired - Fee Related JP4095120B2 (ja) | 1995-05-26 | 1995-05-26 | 領域内における内外判定方法、及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4095120B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5278002B2 (ja) * | 2009-01-30 | 2013-09-04 | ダイキン工業株式会社 | 情報処理装置及び方法、プログラム並びに記録媒体 |
-
1995
- 1995-05-26 JP JP12813895A patent/JP4095120B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4095120B2 (ja) | 2008-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6504541B1 (en) | Warping geometric objects | |
US6812924B2 (en) | Apparatus and method for obtaining shape data of analytic surface approximate expression | |
CN114266800B (zh) | 一种平面图形的多矩形包围盒生成方法及系统 | |
US20090213119A1 (en) | Remeshing method and apparatus for restoring sharp features of mesh made smooth enough | |
JP2718401B2 (ja) | 線対称図形整形装置及び任意の数の対称軸の全てについて線対称な図形を生成する方法 | |
Liu et al. | An efficient iso-scallop tool path generation method for three-axis scattered point cloud machining | |
JPH11144091A (ja) | 多面衝突検出システム及び方法 | |
JP3526605B2 (ja) | 3次元的な物体の変形方法及びモデリングシステム | |
CN111251335B (zh) | 基于包围盒算法的高精度机械臂碰撞检测方法 | |
US5506948A (en) | Topology maintaining geometric data correcting method and system employing same | |
JP4095120B2 (ja) | 領域内における内外判定方法、及び装置 | |
JP3679436B2 (ja) | 3次元上領域における領域内外の点の抽出方法及び装置、及び同一曲線上の点の並び順判定方法及び装置 | |
EP0680017A2 (en) | System and method of automatically creating supplemental segments in two-dimensional drawings | |
JP4093440B2 (ja) | 閉領域の包含関係判定方法およびこの方法を実施するためのプログラムを記録した記録媒体 | |
EP3623968A1 (en) | Automated block generation in cad | |
US6243097B1 (en) | Bounding volume for 3D graphic primitives | |
EP4357958A2 (en) | System and methods for automatic repair of missing mate references | |
US9053286B1 (en) | Verification of fractured mask data | |
US20240126941A1 (en) | System and Methods for Automatic Repair of Missing Mate References for Tessellated Data | |
CN113744404B (zh) | 三维模型的对比处理方法及系统 | |
CN115937295B (zh) | 一种基于集合思想的气泡形状类型判别方法 | |
JP2001159809A (ja) | マスクパターン設計装置、マスクパターン設計方法およびマスクパターン設計プログラムを格納したコンピュータ読取り可能な記録媒体 | |
JP2007164231A (ja) | 半導体設計支援装置 | |
Lai et al. | A cell subdivision strategy for r‐nearest neighbors computation | |
JPH11339067A (ja) | 図形処理方法及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040824 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041020 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041116 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041207 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20041213 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080307 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120314 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130314 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140314 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |