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
Application number
JP7128138A
Other languages
English (en)
Other versions
JP4095120B2 (ja
Inventor
Masaru Kageura
勝 影浦
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP12813895A priority Critical patent/JP4095120B2/ja
Publication of JPH08320938A publication Critical patent/JPH08320938A/ja
Application granted granted Critical
Publication of JP4095120B2 publication Critical patent/JP4095120B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】 3次元上の領域において、ある一点がその領
域内にあるか否かを判定すること。 【構成】 判定したい点が、N次元の面に乗っているか
を判定するステップと、前記判定したい点が上記領域の
境界を構成する稜線に乗っているかを判定するステップ
と、前記判定したい点を通り領域と交点を持つ切断面を
求めるステップと、前記切断面と領域の乗っている面と
の交線を求めるステップと、切断面と領域の境界を構成
する稜線の交点を求めるステップと、前記交線上に乗っ
ていて、領域外にある点を求めるステップと、判定した
い点と領域外にある点の数が偶数か奇数かを判定するス
テップとにより実現する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、CAD等にn次元の
領域における点の内外判定方法に関するものである。
【0002】
【従来の技術】2次元の平面上における領域内の内外判
定としては、領域が多角形の場合、図3のように判定し
ようとする点と多角形の頂点の列を結ぶベクトルの作る
角の総和を求めて、0であれば外部の点、±πであれば
内部の点と判定する方法や、図4のように判定したい点
から半無限直線を引き、境界を構成しようとする各稜線
との交点の個数を数え、偶数なら外部の点、奇数なら内
部の点と判定する方法が知られている。
【0003】
【発明が解決しようとしている課題】従来、CAD等で
計算機を使って、2次曲面や自由曲面等を含む3次元の
面上の領域において内外判定を行なう時、計算機が厳密
な計算を行なえないため、計算機による誤差によって、
内外判定の結果が正しく得られないことがあり、安定な
内外判定を行なうことが難しく、3次元のCADのモデ
リング等において、3次元の領域における一点の内外判
定を利用した図形処理が多用されるため、安定的に、3
次元の図形処理を行なうことが難しいという問題点があ
った。
【0004】また、3次元の内外判定の場合、2次元の
場合と違い、領域の乗っている面の種類、領域の境界を
構成する稜線の種類に関わらず、同一の手段で統一的に
内外判定行なうことが難しいという課題があった。
【0005】
【課題を解決するための手段】判定したい点が、N次元
の面に乗っているかを判定するステップと、前記判定し
たい点が上記領域の境界を構成する稜線に乗っているか
を判定するステップと、前記判定したい点を通り領域と
交点を持つ切断面を求めるステップと、前記切断面と領
域の乗っている面との交線を求めるステップと、切断面
と領域の境界を構成する稜線の交点を求めるステップ
と、前記交線上に乗っていて、領域外にある点を求める
ステップと、判定したい点と領域外にある点の数が偶数
か奇数かを判定するステップとを有することにより領域
内のある点の内外を判定するものである。
【0006】
【実施例】図1は、本発明の実施例の動作の流れを説明
するフローチャートである。
【0007】図2は、本発明を利用する図形処理装置の
ブロック図であり、バス1(制御線、データ線およびア
ドレス線を含む)には、中央処理装置(CPU)2、リ
ード・オンリ・メモリ(ROM)3、ランダム・アクセ
ス・メモリ(RAM)4、入力インターフェース5を介
して入力装置6、CRTインターフェース7を介してC
RT8、外部記憶装置インターフェース9を介して、磁
気ディスク、磁気テープ等の外部記憶装置10が接続さ
れている。いる。ROM3に記憶されたプログラムに応
じ、RAM4を一時記憶装置として種々の処理及び制
御、例えば図形入力制御、図形表示、ピック処理、隠面
処理、内外判定等を行なう。入力装置6はキーボード、
タブレット、マウス等であり、図形データの入力を行な
うが、この図形データはホスト・コンピュータから受け
てもよい。CRT8は必要に応じて複数のビット・マッ
プ・プレーン等を含んでおり図形を表示する。
【0008】次に、図1及び図5,図6,図7,図8を
参照して本発明の好適な実施例を説明するが、以下に述
べる処理及び判断はCPU2がROM3に記憶された図
1に示す手順のプログラムに従って行なう。
【0009】(領域の定義)本実施例では、図5のよう
な平面および円筒面、円錐面、球等の2次曲面およびト
ーラス、Bezier曲面、NURBS(Non Un
iformed Rational B−splin
e)曲面等の自由曲線などの幾何形状を持つ面上にあ
り、線分および円弧、楕円弧、放射線、双曲線等の2次
曲線、Bezier曲面、NURBS(Non Uni
formed Rational B−spline)
曲線等の幾何形状を持つ稜線からなる境界によって囲ま
れた領域内に、ある空間上の点がその領域内にあるかど
うかを判定するものである。
【0010】ここで図6のように境界は稜線の集まりか
らなる外周ループと内周ループよりなり、外周ループは
領域の最外周を表現するループで、内周ループは領域に
おける穴を表現するループである。外周ループは、反時
計回りを正方向とし、内周ループは時計回りを正方向と
し、その順番に稜線がならんでいるものとする。よって
稜線上をループの正方向に進んでいったとき左側に領域
の実体があるものとする。
【0011】以下に図1の本実施例の流れを示すフロー
チャートのステップS1〜S13の順番にしたがって内
外判定の処理が図2のブロックの中で実行される説明を
行なう。
【0012】(S1:ON−SURFACE判定)本実
施例では、判定する点が領域の乗っている面上にまず乗
っているか判定する。判定する点と領域の乗っている面
との距離が、定められた長さに関する幾何的許容誤差ε
以内だとON−SURFACE、そうでなければOFF
−SURFACEと判定する。S2においてOFF−S
URFACEのときはS13において領域外と判定して
処理を終了する。
【0013】(S3:与点が境界上にあるかどうかの判
定)上記の処理の後与点が境界上にあるかどうかを判定
をする。判定は境界を構成する各稜線と与点との距離を
算出し、いずれかの稜線と与点との距離が定められた長
さに関する幾何的許容誤差ε以内にあれば与点は境界上
にあると判定され処理を終了する。この処理により計算
誤差による微妙な領域外の内外判定のエラーをあらかじ
め防ぐことができる。
【0014】(S5:与点を通り領域の境界と確実に交
点を持つ切断面の算出)ここでは、切断面として平面を
考える。領域の境界と確実に交点を持つ切断面の算出す
るため、領域の境界を構成する任意の稜線の中点を算出
する。また別の一点を乱数を使って発生させる。与点、
任意の稜線の中点、乱数を使った一点が同一直線になら
んでいなかったら3点を通る平面を切断面とする。同一
直線にならんでいたならばなくなるまで乱数を使って、
点を求める。後述するように、内外判定にはここで求め
た切断面と領域との交線と境界との交点の数を使うので
図7のように微妙な計算誤差により判定結果がわかれる
ケースがある。ここで乱数を使い切断平面を求めること
によって上記のような微妙な位置関係になる確率が低く
なる。さらにこの切断平面を求める処理以下を奇数回行
ない、多い方の判定結果を採用することにより正しい判
定結果を得られる確率が非常に高くなる。
【0015】(S6:切断面と領域の乗っている面との
交線の算出)上記で求めた切断平面と領域の乗っている
面との交線Cを算出する。
【0016】(S7:切断面と領域の境界との交点を算
出)上記で求めた切断面と境界を構成する各稜線との交
点を求めて、境界との交点を算出する。ここで算出され
た交点は、上記で算出された交線上に乗っている。
【0017】(S8:交線C上に乗っている領域外の点
を算出)交線C上に乗っている領域外の点を求める。本
実施例では以下のような手順にしたがって求める。
【0018】まず上記で求めた切断面と境界との交点の
うち任意の一点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上に乗って
いる領域外の点である。
【0019】(S9:与点、切断面と領域の境界との交
点、領域外の点の交線上にならんでいる順番を認識)与
点、切断面と領域の境界との交点、領域外の点の交線上
にならんでいる順番にソートする。ソートは以下の方法
による。
【0020】まず交線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
【0021】(S10:領域の内外判定)上記で認識し
た点の順番にそって、与点と領域外の点Poutとの間
の領域の交点の数をカウントする。その交点の数に応じ
て 奇数ならば 領域内 偶数ならば 領域外 と判定する。
【0022】(他の実施例)領域ののっている面の種
類、境界を構成する稜線の種類を変更しても同様の方法
で、内外判定を行なえる。
【0023】
【発明の効果】以上説明したように、3次元上の領域に
おける一点の内外判定を行なうことにより3次元のCA
Dのモデリング等における、3次元の領域における一点
の内外判定を利用した図形処理を安定的に行なうことが
できるという効果がある。
【図面の簡単な説明】
【図1】本発明の好適な一実施例を示す流れ図。
【図2】図に示す制御手段が実行されるブロック図。
【図3】本発明を説明する図。
【図4】本発明を説明する図。
【図5】本発明を説明する図。
【図6】本発明を説明する図。
【図7】本発明を説明する図。
【図8】本発明を説明する図。
【符号の説明】
1 バス 2 中央処理装置

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 判定したい点が、N次元の面に乗ってい
    るかを判定するステップと、 前記判定したい点が上記領域の境界を構成する稜線に乗
    っているかを判定するステップと、 前記判定したい点を通り領域と交点を持つ切断面を求め
    るステップと、 前記切断面と領域の乗っている面との交線を求めるステ
    ップと、 切断面と領域の境界を構成する稜線の交点を求めるステ
    ップと、 前記交線上に乗っていて、領域外にある点を求めるステ
    ップと、 判定したい点と領域外にある点の数が偶数か奇数かを判
    定するステップとを有する領域内における内外判定方
    法。
  2. 【請求項2】 判定したい点が偶数であれば領域内と判
    定するステップを有する請求項1の領域内における内外
    判定方法。
  3. 【請求項3】 判定したい点が奇数であれば、領域外と
    判定するステップとを有する請求項1の領域内における
    内外判定方法。
  4. 【請求項4】 判定したい点が偶数であれば領域外と判
    定するステップと、 判定したい点が奇数であれば、領域内と判定するステッ
    プとを有する請求項1の領域内における内外判定方法。
  5. 【請求項5】 前記判定したい点が境界を構成する稜線
    に乗っていれば、境界上にあると判定するステップとを
    有する請求項1の領域内における内外判定方法。
  6. 【請求項6】 判定したい点及び領域外の点及び切断面
    と領域の境界を構成する稜線の交点を切断面と領域の乗
    っている面との交線上において並んでいる順番を認識す
    るステップとを有する請求項1の領域内における内外判
    定方法。
JP12813895A 1995-05-26 1995-05-26 領域内における内外判定方法、及び装置 Expired - Fee Related JP4095120B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5278002B2 (ja) * 2009-01-30 2013-09-04 ダイキン工業株式会社 情報処理装置及び方法、プログラム並びに記録媒体

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