JP2755398B2 - ソリッドモデルに対する点の内外判定処理方法 - Google Patents

ソリッドモデルに対する点の内外判定処理方法

Info

Publication number
JP2755398B2
JP2755398B2 JP25342188A JP25342188A JP2755398B2 JP 2755398 B2 JP2755398 B2 JP 2755398B2 JP 25342188 A JP25342188 A JP 25342188A JP 25342188 A JP25342188 A JP 25342188A JP 2755398 B2 JP2755398 B2 JP 2755398B2
Authority
JP
Japan
Prior art keywords
solid
point
outside
solid model
intersection
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
JP25342188A
Other languages
English (en)
Other versions
JPH02100777A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP25342188A priority Critical patent/JP2755398B2/ja
Publication of JPH02100777A publication Critical patent/JPH02100777A/ja
Application granted granted Critical
Publication of JP2755398B2 publication Critical patent/JP2755398B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔概要〕 三次元物体のソリッドモデルを扱うソリッドモデル処
理システムにおいて,ある一点がソリッドモデルの面に
よって定められる閉領域の内側にあるか外側にあるかを
判定するソリッドモデルに対する点の内外判定処理方法
に関し, ソリッドモデルに対する点の内外を判定する処理を高
速化することを目的とし, 内外判定対象となる点から任意の方向へ半直線を発生
させる処理過程と,発生させた半直線とソリッドモデル
を構成する面との交点を計算する処理過程と,交点が存
在する場合に,内外判定対象となる点に最も近い交点を
選択する処理過程と,その最も近い交点における面の方
向情報と,内外判定対象となる点との位置関係により,
点の内外を決定する処理過程とを備えるように構成す
る。
〔産業上の利用分野〕
本発明は,三次元物体のソリッドモデルを扱うソリッ
ドモデル処理システムにおいて,ある一点がソリッドモ
デルの面によって定められる閉領域の内側にあるか外側
にあるかを判定するソリッドモデルに対する点の内外判
定処理方法に関する。
ソリッドモデル処理システムでは,ある2つのソリッ
ドモデルを合成したり,その差を求めたりする集合演算
を行うことが必要となる。このような場合,ソリッドモ
デルの包含関係を調べるために,ある一点がソリッドモ
デルの内側にあるか外側にあるかを判定することが必要
となる。
〔従来の技術〕
第8図は従来技術の説明図である。
第8図に示すようなソリッドモデルSに対して,点X
が内側にあるか外側にあるかを判定する場合,従来,点
Xから任意の方向へ無限の長さを持つ半直線L1を発生さ
せ,その半直線L1とソリッドモデルSのすべての面との
交点を計算により求めて,その交点の合計の個数で,点
Xの内外を判定するようにしていた。交点の合計数が奇
数であれば内側,0または偶数であれば外側と決定する。
第8図に示す例では,半直線L1とソリッドモデルSの
すべての面との交点は,全部でX1とX2の2個存在し,こ
れは偶数個であるので,点XはソリッドモデルSの外側
にあると決定する。一方,点Yについては,任意の方向
へ半直線L2を発生させると,その半直線L2とソリッドモ
デルSとの交点は,Y1の1個であり,点Yはソリッドモ
デルSの内側にあることがわかる。
〔発明が解決しようとする課題〕
第9図は従来技術の問題点説明図である。
従来方法では,内外判定対象の点から引いた半直線
と,ソリッドモデルのすべての面との交点の個数によっ
て,点の内外を判定するようにしていた。しかし,任意
の方向に引いた半直線とソリッドモデルの面との交点
が,ソリッドモデルの稜線や頂点上になることがある。
この場合,交点の個数を正確にカウントし,内外の判定
に用いることができなくなる。
例えば,ソリッドモデルSと点Pが,第9図(イ)ま
たは(ロ)に示すような状態であるとする。点Pから引
いた半直線Lと,ソリッドモデルSの面列との交点を計
算していくと,交点P1の発生する頂点の回りの面が4枚
あるため,どちらも交点数は4となる。この値は偶数で
あるので,交点がここだけであれば,点Pはソリッドモ
デルSの外側と判定される。しかし,第9図(ロ)に示
すような場合には,点PがソリッドモデルSの中にあっ
ても,同じ結果となり,まちがった判定が行われること
になる。
そこで,ソリッドモデルの稜線または頂点上に,交点
が1つでも発生した場合には,半直線Lの方向などを変
更し,再度,交点計算を行うことで対処する。
このような方法では,半直線とソリッドモデル間の交
点が1つでも稜線や頂点上になった場合に,半直線の作
成からやり直すことが必要になる。特に複雑な形状を扱
うときには,発生する交点の数も多いことから,このや
り直しの確率が高くなり,全体的に計算機による処理時
間が長くかかるという問題がある。
本発明は上記問題点の解決を図り,ソリッドモデルに
対する点の内外を判定する処理を高速化することを目的
としている。
〔課題を解決するための手段〕
第1図は本発明の原理説明図である。
第1図において,10はCPUおよびメモリなどからなる処
理装置,11はソリッドモデルの作成・編集を行うソリッ
ドモデル処理システム,12はディスプレイ,13はキーボー
ドやポインティング・デバイスなどの入力装置,14は磁
気ディスク装置などの外部記憶装置,15はソリッドモデ
ルの形状データを記憶するソリッドデータ格納域,20〜2
3は本発明に係る処理過程を表す。
ソリッドモデル処理システム11が扱うソリッドモデル
に関するデータは,各ソリッドモデルごとに,ソリッド
データ格納域15に所定の形式で格納される。ソリッドデ
ータ格納域15では,ソリッドモデルを構成している面ご
とにデータを持ち,特にその1枚1枚の面に,表がどち
ら向きであるかを示す方向に関する情報を持つようにな
っている。これにより,物体の内部がどちら側になるか
を表現するようになっている。
例えば,第1図(ロ)に示すソリッドモデルSに対し
て,ある一点Pが内部にあるか外部にあるかを判定する
とする。
本発明では,次の処理過程20〜23によって,点Pの内
外を決定する。
まず,処理過程20では,点Pから任意の方向へ,半直
線Lを発生させる。
処理過程21では,その半直線Lと,ソリッドモデルS
を構成するすべての面F1〜F10との交点を計算する。第
1図(ロ)の例では,この計算により,交点P1,P2,P3が
求められることになる。
処理過程22では,3つの交点P1,P2,P3の中から,内外判
定対象となる点Pに最も近い点P1を選択する処理を行
う。
次に,処理過程23により,処理過程22で選択した交点
P1が存在する面F9の方向情報を参照し,内外判定対象と
なる点Pが,面F9の表側の領域にあるか裏側の領域にあ
るかを判定する。点Pが表側にある場合,点Pはソリッ
ドモデルSの外部にあると決定し,点Pが裏側にある場
合,点PはソリッドモデルSの内部にあると決定する。
第1図(ロ)に示す例では,面F9の向きにより,点Pは
ソリッドモデルSの内部にあると決定されることにな
る。
〔作用〕
従来の方法では,第1図(ロ)に示すような場合,点
Pの内外を,交点P1,P2,P3の個数によって判定するよう
にしていた。このため,交点P1〜P3の中の1つでも,ソ
リッドモデルSの稜線または頂点になると,半直線Lを
変更し,再度,交点計算をやり直す必要があった。
本発明では、交点P1〜P3の個数によって内外を決定す
るのではなく,判定対象となる点Pに最も近い交点P1に
のみ着目し,この交点P1が存在する面の向きによって,
点Pの内外を決定する。従って,他の交点P2,P3が,ソ
リッドモデルSの稜線または頂点上にあっても,点Pに
最も近い交点P1が稜線上,頂点上になければ,点Pの内
外を決定できることになる。
交点P1が稜線または頂点上にあれば,半直線Lを引き
直す必要があるが,従来に比べて,そのやり直しの確率
は小さくなる。
〔実施例〕
第2図は本発明の実施例で用いるソリッドデータの
例,第3図は本発明の一実施例に係る点の内外判定例,
第4図は本発明の一実施例処理フロー,第5図および第
6図は本発明の応用例説明図,第7図は本発明の応用例
によるソリッドの集合演算処理フローを示す。
ソリッドモデルの形状を決めるソリッドデータは,第
2図(イ),(ロ)に示すように,そのソリッドモデル
を構成する面F1,F2,…ごとにデータを持ち,その1枚1
枚の面に対して,表がどちら向きであるかの情報D1,D2,
…を持つようになっている。本発明では,この情報D1,D
2,…を利用する。
例えば,第3図(イ)に示すソリッドモデルSに対し
て,点Pが内側にあるか外側にあるかを判定するとす
る。
まず,点Pから任意の方向へ半直線Lを発生させる。
そして,ソリッドモデルSと半直線Lとの交点P1,P2,P3
を計算により求める。第3図(ロ)は,第3図(イ)の
横断面を示している。この交点の中で,内外判定対象と
なる点Pに最も近い交点はP1であるので,交点P1が存在
する面F1における方向の情報D1を調べる。これにより,
第3図(ハ)に示すように,点Pが面F1の表領域にある
ことがわかるので,点PはソリッドモデルSの外側にあ
ると決定する。
この例では,交点P3がソリッドモデルSの稜線上にあ
る。従って,従来方法では,半直線Lを変更して,再
度,交点計算をやり直す必要があるが,本発明では,点
Pに最も近い点P1が,稜線または頂点上になければ,他
の交点がどこにあっても,点Pの内外を決定することが
できる。
第4図は,この処理の流れを示している。以下の説明
における〜は,第4図に示す処理〜に対応す
る。
内外判定対象となる点から,任意の方向へ半直線を
発生させる。ここで,半直線を発生させるとは,その点
を通るある直線の式を想定することを意味する。
半直線とソリッドモデルを構成する面との交点を計
算する。
交点があるかどうか判定する。交点が1つもない場
合,処理へ移る。
交点がある場合,その中で,内外判定対象の点に最
も近い交点を選ぶ。
選んだ交点が,ソリッドモデルの頂点または稜線上
にあるかどうかを判定する。頂点または稜線上にある場
合には処理,そうでなければ処理へ移る。なお,こ
の判定では,計算誤差による範囲を考慮し,誤差範囲内
であれば,頂点または稜線上にあるものとする。
半直線の方向を変更し,処理へ制御を戻して,同
様に処理を繰り返す。
内外判定対象の点に,最も近い交点がある面の方向
情報を調べる。
その方向情報によって,内外判定対象の点が面の表
領域にあるか裏領域にあるかを判定する。
表領域にある場合,その点はソリッドモデルの外側
にあると決定する。
裏領域にある場合,その点はソリッドモデルの内側
にあると決定する。
次に,本発明の応用により,2つのソリッドモデルの包
含関係を調べる例を説明する。
ソリッドCADシステムでは,第5図(イ)に示すよう
なソリッドAと,第5図(ロ)に示すようなソリッドB
との差を求める集合演算を行うことが,しばしば必要に
なる。このとき,もしソリッドBがソリッドAの内部に
完全に包含されるとすると,集合演算の結果は第5図
(ハ)に示すようになり,ソリッドBはソリッドAの中
の空洞となる。そこで,この包含関係の有無を調べるた
めに,次のように点の内外判定を行う。なお,この内外
判定は,ソリッドAとソリッドBとの面の交差がないこ
とが判明してから実行する。
第6図に示すように,ソリッドA上の任意の一点PAを
取り出し,半直線L1を設定する。半直線L1とソリッドB
の面との交点を計算し,交点P1,P2を得る。ここで,点P
Aに最も近い交点P1を抽出し,その交点P1がある面の向
きにより,点PAがソリッドBの内側にあるか外側にある
かを判定する。
次に,ソリッドB上の点PBから,半直線L2を発生さ
せ,ソリッドAとの交点P3を求める。そして,ソリッド
Aに対する点PBの内外を判定する。
これにより,ソリッドA上の点PAは,ソリッドBの外
部にあり,ソリッドB上の点PBは,ソリッドAの内部に
あることがわかる。従って,ソリッドBは,ソリッドA
の中に包含されると判定できる。
第7図は,以上のようなソリッドの集合演算処理フロ
ー,特に差演算の処理フローを示している。以下の処理
〜のような処理の流れになる。
ソリッドAとソリッドBの間の交線を計算する。す
なわち,ソリッドAを構成する面とソリッドBを構成す
る面の間に発生する交線を計算する。
交線がある場合,処理〜を実行し,交線がない
場合,処理以降を実行する。
交線がある場合,その交線でソリッドA,Bの面を分
割する。
分割後の面で,結果に不必要なものを削除する。
必要な面を組み合わせて,結果の立体を作り,集合
演算の処理を終了する。
交線がない場合,2つのソリッドA,Bは,離れている
か,片方がもう一方に含まれているかのどちらかであ
る。そこで,ソリッドA上の一点とソリッドBとの内外
判定を行う。
ソリッドA上の点がソリッドBの内部にある場合に
は処理,そうでない場合には処理へ移る。
ソリッドA上の点がソリッドBの内部にある場合に
は,ソリッドAはソリッドBに含まれることがわかる。
そこで,ソリッドAをソリッドBの空洞とし,処理を終
了する。
点がソリッドBの内部になかった場合,ソリッドB
上の一点とソリッドAとの内外判定を行う。
ソリッドB上の点がソリッドAの内部にある場合に
は処理,そうでない場合には処理を実行する。
ソリッドB上の点がソリッドAの内部にある場合に
は,ソリッドBはソリッドAに含まれることがわかる。
そこで,ソリッドBをソリッドAの空洞とし,処理を終
了する。
点がソリッドAの内部になかった場合,ソリッドA
とソリッドBとは離れていることになる。
そこで,何もしないで処理を終了する。
以上の処理における処理および処理で,本発明に
よるソリッドモデルに対する点の内外判定処理方法を利
用することができる。他にも種々の応用が可能である。
〔発明の効果〕
以上説明したように,本発明によれば,従来のすべて
の交点が稜線・頂点上にないことという条件に比べて,
条件が緩やかになり,点に最も近い交点が,稜線・頂点
上になければ,内外を判定することができる。従って,
特に交点が多数発生する可能性のある複雑な形状を扱う
場合,交点計算等をやり直す確率が下がり,全体的に処
理時間が短縮される。また,同様の理由から処理の安定
性も向上する。
【図面の簡単な説明】
第1図は本発明の原理説明図, 第2図は本発明の実施例で用いるソリッドデータの例, 第3図は本発明の一実施例に係る点の内外判定例, 第4図は本発明の一実施例処理フロー, 第5図および第6図は本発明の応用例説明図, 第7図は本発明の応用例によるソリッドの集合演算処理
フロー, 第8図は従来技術の説明図, 第9図は従来技術の問題点説明図を示す。 図中,10は処理装置,11はソリッドモデル処理システム,1
2はディスプレイ,13は入力装置,14は外部記憶装置,15は
ソリッドデータ格納域,20〜23は処理過程,Sはソリッド
モデル,Pは内外判定対象となる点,P1〜P3は交点,F1〜F9
は面,Lは半直線を表す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ソリッドモデルの定義情報として,ソリッ
    ドモデルを構成する面の方向情報を持つソリッドモデル
    処理システムにおけるソリッドモデルに対する点の内外
    判定処理方法において, 内外判定対象となる点から任意の方向へ半直線を発生さ
    せる処理過程(20)と, 発生させた半直線とソリッドモデルを構成する面との交
    点を計算する処理過程(21)と, 交点が存在する場合に,内外判定対象となる点に最も近
    い交点を選択する処理過程(22)と, その最も近い交点における面の方向情報と,内外判定対
    象となる点との位置関係により,点の内外を決定する処
    理過程(23)と を備えたことを特徴とするソリッドモデルに対する点の
    内外判定処理方法。
JP25342188A 1988-10-07 1988-10-07 ソリッドモデルに対する点の内外判定処理方法 Expired - Fee Related JP2755398B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25342188A JP2755398B2 (ja) 1988-10-07 1988-10-07 ソリッドモデルに対する点の内外判定処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25342188A JP2755398B2 (ja) 1988-10-07 1988-10-07 ソリッドモデルに対する点の内外判定処理方法

Publications (2)

Publication Number Publication Date
JPH02100777A JPH02100777A (ja) 1990-04-12
JP2755398B2 true JP2755398B2 (ja) 1998-05-20

Family

ID=17251159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25342188A Expired - Fee Related JP2755398B2 (ja) 1988-10-07 1988-10-07 ソリッドモデルに対する点の内外判定処理方法

Country Status (1)

Country Link
JP (1) JP2755398B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9194601B2 (en) 2010-09-13 2015-11-24 Mitsubishi Electric Corporation Air conditioning control device, air conditioning control method and program

Also Published As

Publication number Publication date
JPH02100777A (ja) 1990-04-12

Similar Documents

Publication Publication Date Title
USRE48940E1 (en) Simulation of the machining of a workpiece
JP5623797B2 (ja) Plmデータベースのオブジェクトのアセンブリを表示するプロセス、プログラムおよび装置
US10719549B2 (en) Querying a database based on a parametric view function
JP5466813B2 (ja) Plmデータベース内のオブジェクトを選択する処理および本処理を実装した装置
US6337685B2 (en) Three-dimensional model generation system, three-dimensional model generation method, and recording medium storing a three-dimensional model generation program
JPS6074003A (ja) 形状創成装置
US20190244114A1 (en) Method of assembling parts of a product
JP3567015B2 (ja) Cadシステムにおいて幾何図形対象に関するブール演算を実行するための方法
US5739822A (en) Data processing system for surfacing a model
US10845779B2 (en) Designing an outer surface of a composite part
US8477133B2 (en) Method and apparatus for generating three-dimensional finite element mesh
JP2755398B2 (ja) ソリッドモデルに対する点の内外判定処理方法
Tuttle et al. Feature recognition for NC part programming
JP2662539B2 (ja) 3次元図形処理装置
JP2800708B2 (ja) Fem解析モデルのメッシュ修正方法
JP3305395B2 (ja) 図形分割装置
CN115761122B (zh) 三维辅助尺的实现方法、装置、设备和介质
Mäkinen Line-segment insertion in constrained triangulations with applications in path-planning
JP2003233631A (ja) モデル変形プログラムおよびモデル変形方法
JP2878697B2 (ja) 形状表示処理装置
CN113674296A (zh) 一种区域切割方法、装置、电子设备及存储介质
JP3334571B2 (ja) 3次元モデル作成装置および3次元モデル作成装置のプログラムが記録された記録媒体
JPH05134729A (ja) Cad/camにおける三次元像への寸法及び部品番 号の表示システム
JPH04348479A (ja) 形状モデリング方法およびその装置
Papadimitriou Finally, in computational complexity we do not attempt to evaluate the complexity of a single input or a single string; we are interested only in the com-plexity of whole problems and languages. Still, it is intuitively obvious that the bit string

Legal Events

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