JPH1049652A - 3次元cadにおけるb−スプライン曲線と直線との交点算出方法 - Google Patents

3次元cadにおけるb−スプライン曲線と直線との交点算出方法

Info

Publication number
JPH1049652A
JPH1049652A JP8207345A JP20734596A JPH1049652A JP H1049652 A JPH1049652 A JP H1049652A JP 8207345 A JP8207345 A JP 8207345A JP 20734596 A JP20734596 A JP 20734596A JP H1049652 A JPH1049652 A JP H1049652A
Authority
JP
Japan
Prior art keywords
dimensional
intersection
straight line
spline curve
point
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
JP8207345A
Other languages
English (en)
Other versions
JP3039387B2 (ja
Inventor
Hiroyuki Takahashi
裕幸 高橋
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP8207345A priority Critical patent/JP3039387B2/ja
Publication of JPH1049652A publication Critical patent/JPH1049652A/ja
Application granted granted Critical
Publication of JP3039387B2 publication Critical patent/JP3039387B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】 3次元B−スプラインと3次元の直線の交点
計算を行う際のデータ量をなるべく少なくし,かつ交点
の見落としを防ぐ。 【解決手段】 交点計算の対象になっている3次元直線
の始点を通り,直線の方向ベクトルを法線ベクトルに持
つ面を定義して,その面に交点を求める対象のB−スプ
ラインと直線を投影変換して,その変換要素の2次元の
データだけを取り出す。次に取り出した2次元の点とス
プラインの間で射影点計算を二分法を用いて行い,その
パラメーターを得る。そして,そのパラメーターを元の
B−スプラインに代入して,通過点座標値を得る。これ
が求める交点座標値となる。この手段により実質的な計
算を2次元に次元低下することが出来る。また,ニュー
トン・ラプソン法の代わりに二分法を用いることによ
り,ニュートン法特有の現象による交点の見落としも防
ぐことが出来る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は,3次元CADのよ
うな図形処理機能に関するもののうち,特に3次元B−
スプライン曲線と3次元直線との間の交点を算出する方
法に関するものである。
【0002】
【従来の技術】B−スプライン曲線は,CADシステム
において自由曲線の表現に広く用いられている。B−ス
プライン曲線上の点をP=(x,y,z)とすると,曲
線上の点は,tを1次元のパラメータとして以下の数1
式で表される。
【0003】
【数1】 上記数1式において,Ni (t)は,4階のB−スプラ
イン関数,Qi は,制御点と呼ばれこの制御点を頂点と
するポリゴンによって曲線の形状が定められる。制御点
数は,n+1である。また,各制御点Qi に対応したパ
ラメータの列{ti :0≦j≦n+3}をノットベクト
ルと呼ぶ。次の数2式で示される区間tにおいて,スプ
ライン関数Ni (t)は,tについての3次関数であ
る。
【0004】
【数2】 このように表される3次元B−スプライン曲線と直線の
交点は,次のような手順で求められる。
【0005】まず,直線の方向ベクトルを(a,b,
c),通過点の一つを(α,β,γ)とすると,直線の
方程式は以下の数3式のように表される。
【0006】
【数3】 即ち,上記数3式を書き換えると次の数4式のように示
される。
【0007】
【数4】 B−スプライン関数は,下記数5式に示される区間tに
おいて3次関数であることから,上記数4式は,下記数
6式のように表わされる。
【0008】
【数5】
【0009】
【数6】 ここで,上記数6式中,px ,py ,pz ,qx
y ,qz ,rx ,ry ,rz ,sx ,sy ,sz は定
数である。
【0010】これらを直線の式に代入して,tについて
の連立3次方程式を立てるか,tとuについての2変数
方程式を立てて,それらの方程式をニュートン・ラプソ
ン法により求める。この手順を全てのtの区間において
繰り返し行うことにより,B−スプライン曲線と直線の
交点を求めることが出来る。
【0011】
【発明が解決しようとする課題】しかしながら,上記方
法について,以下の問題点がある。
【0012】第1の問題点は,上記従来の技術において
交点を求めようとしても,場合によって求まらない場合
がある。というのはニュートン・ラプソン法固有の以下
,の性質によるものである。
【0013】ニュートン・ラプソン法において,3次
以上の方程式の解を求めようとした場合に数値の組み合
わせによっては解の振動現象により求める解に収束しな
いことがある。この現象は,カオス現象の一種として一
般に知られている。
【0014】ニュートン・ラプソン法で重根を持つ方
程式を解いた場合に,その重根自体を高精度で求めるの
が難しい場合がある。上記の交点計算でこのような重根
を持つケースは,B−スプライン曲線と直線が接する場
合または接してはいないが浅い角度でB−スプライン曲
線と直線が交差している場合が該当する。
【0015】第2の問題点は,扱うデータの個数が多い
ことである。というのは,扱っている方程式が連立3次
方程式もしくは2変数方程式という複雑な方程式を立て
て解くので,それぞれの方程式の係数値,微係数値や各
要素のデータを計算し,格納しなければならないからで
ある。そのため,これを処理する装置やプログラムも煩
雑な処理を行わせなければならない。
【0016】そこで,本発明の一技術的課題は,交点を
見落とすことのないアルゴリズムを採用することによっ
て計算結果の信頼性を向上した3次元CADにおけるB
−スプライン曲線と直線の交点算出方法を提供すること
にある。
【0017】また,本発明のもう一つの技術的課題は,
計算対象の次数低下による全般的なデータ量の削減によ
る交点計算時の記憶領域の節減と処理の簡易化を図った
3次元CADにおけるB−スプライン曲線と直線の交点
算出方法を提供することにある。
【0018】
【課題を解決するための手段】本発明では,交点を求め
る対象となるB−スプライン曲線と直線と直交する平面
上に投影変換し,その平面上に投影されたB−スプライ
ン曲線と直線をそれぞれ2次元B−スプライン曲線と点
とみなして,前記点の前記B−スプライン曲線への射影
点を二分法を用いて求める。そして,求めた射影点のう
ち曲線上の点となっているものを取り出し,2次元B−
スプライン曲線上での対応するパラメータ値を元の3次
元B−スプライン曲線の式に代入してその交点を求める
ようにしたことを特徴としている。
【0019】
【発明の実施の形態】以下,本発明の実施の形態につい
て図面を参照して説明する。
【0020】図1は本発明の実施の形態による3次元C
ADにおけるB−スプライン曲線と直線との交点算出方
法を実施するための装置(以下,交点算出装置と呼ぶ)
を示す図である。図1に示すように,交点算出装置10
は,要素形状表示部1,オペレーター入力部2,データ
記憶部3,モデルデータ格納部4,及び本発明の処理を
行う演算処理部5とを備えている。具体的には,以下の
仮想2次元要素として構成する手段と3次元B−スプラ
イン曲線と直線の交点を定める手段の2つの手段からな
る。
【0021】まず,仮想2次元要素として構成する手段
では,交点を求めようとする直線の始点を通り,法線ベ
クトルとして直線の方向ベクトルを持つ平面の方程式を
定める。さらに,空間上の点をその平面に投影する変換
行列を求める。交点を求めようとするB−スプライン曲
線の各制御点を求めた変換行列を用いて平面上の点に変
換する。そして,その変換点座標値のうち,xとyだけ
を取り出したものと,元の3次元B−スプライン曲線の
ノットベクトルを組み合わせてこの平面上における仮想
の2次元B−スプライン曲線とする。また,直線の始点
のうち,x,yだけを取り出したものをこの平面上の仮
想2次元点として交点対象要素を平面上の仮想2次元要
素として構成する。
【0022】また,3次元B−スプライン曲線と直線の
交点を定める手段では,仮想2次元点の仮想2次元スプ
ラインへの射影点を2分法により求めて,そのうち,射
影点と2次元スプラインの距離が一定誤差以内のものを
抽出し,その点の仮想2次元スプライン上でのパラメー
ターを求める。このパラメーターを元の3次元B−スプ
ライン曲線の式に代入して曲線上の座標値を得る。この
座標値を求める3次元B−スプライン曲線と直線の交点
を定める。
【0023】本発明では,要素データの変換手段で,交
点対象の3次元B−スプライン曲線と直線データの中か
ら,真に交点計算で用いるものだけを2次元の形に加工
して取り出している。その結果として,2次元スプライ
ン曲線と2次元点だけが計算対象のため,3次元同士の
要素を取り扱うのに比べ,扱うデータの個数を減らすこ
とが出来ている。
【0024】スプライン曲線への2次元点への射影点計
算を行い,その結果を基にして交点を算出する手段で
は,ニュートン・ラプソン法の代わりに二分法を用いて
交点を求めているので,ニュートン・ラプソン法を使う
のに比べて交点を見落とすことが少なく,信頼性を向上
させている。
【0025】図2は図1の交点算出装置の処理手段を更
に具体的に示したものであり,モデルデータの読み込み
および形状の表示手段(ステップA),オペレーターに
よる交点計算要素の選択手段(ステップB),選択され
た要素データの取り出し手段(ステップC),投影面算
出手段(ステップD),選択要素の次元変換手段(ステ
ップE),射影点パラメーター算出手段(ステップ
F),交点の算出と表示手段(ステップG)から構成さ
れる。
【0026】次に,本発明の実施の形態の交点算出装置
の動作について,説明する。図2に示すように,まずス
テップAで,要素形状表示部1は,例えばアプリケーシ
ョンプログラムにより,モデルデータ格納部4からデー
タを読み込んで,モデル形状を表示する。ステップB
で,オペレーター入力部2は,オペレーターが要素形状
表示部1に表示されているモデルの中からどの要素デー
タを交点計算の対象として選ばれたかの情報を演算処理
部5に伝える。ステップCでは,オペレーター入力部2
からの入力情報に基づいてモデルデータ格納部4からオ
ペレーターが選んだ要素のデータを取り出して格納す
る。ステップDでは,データ記憶部3の直線データを用
いて,直線の始点を通り直線の方向ベクトルを法線ベク
トルに持つ面の方程式を算出して,これを投影面とし
て,データ記憶部3に格納する。ステップEでは,オペ
レーターが交点計算対象として選択した要素データを取
り出して,投影面に投影変換する。そして,その変換デ
ータのうち,2次元データのみを取り出してデータ記憶
部3に格納する。ステップFでは,データ記憶部3から
2次元に次元低下した要素を取り出して,射影点計算を
行い射影点に対応するパラメーター値をデータ記憶部3
に格納する。ステップGはデータ記憶部3から元の3次
元B−スプラインデータを取り出して,ステップFで求
めたパラメーターをデータ記憶部3から呼び込んで代入
して交点を算出して要素形状表示部1に結果を表示して
処理を終了する。
【0027】図3は本発明の実施の形態による3次元C
ADシステムの構成を示す外観図である。図3におい
て,本発明を実行するための入出力演算装置10は,3
次元のB−スプライン曲線と直線の交点計算等の演算
や,各デバイス装置に演算結果を知らせる役割を果たす
CPUとしてのエンジニアリングワークステーション
(以下,EWSと記す)11と,3次元CADのモデル
データである曲線や直線等の要素を表示するCRTディ
スプレイ12,画面上の曲線の要素指示をオペレーター
が行うのに用いるマウス13を備えている。ここで,E
WS11は,図1において,要素形状表示部1,演算処
理部5,及びデータ記憶部3の組み合わせに対応する。
また,CRTディスプレイ12は要素形状表示部1に対
応し,マウス13はオペレーター入力部2に対応する。
【0028】図4〜図7は,入出力演算装置10で実行
される処理フローを示したものである。また,図8は図
4の動作のイメージを表す図である。
【0029】本発明の実施の形態による3次元B−スプ
ライン曲線と直線の交点計算の動作について,図4〜図
7を参照して説明する。
【0030】図4〜7のフローに示すように,オペレー
ターは,例えば図8の(A)のようなCRTディスプレ
イ2に表示されている交点計算の対象となる3次元B−
スプラインSと3次元直線lをマウス2を用いて指示す
る。ステップS1で3次元B−スプラインの基本データ
(制御点情報,ノットベクトル)および直線の基本デー
タ(始点,方向ベクトル)を入力し,あらかじめ確保し
ていた変数領域に格納する。なお,B−スプラインと直
線の基本データは,次の数7式で表されるものとする。
【0031】
【数7】 次に,図8の(B)に示すように,ステップS2で基本
データとして格納してある直線の始点と方向ベクトルを
用いて,B−スプラインと直線を投影する投影面データ
Hを以下のように定める。
【0032】直線の始点(x0 ,y0 ,z0 ),方向ベ
クトルを(a,b,c)とすると,投影面の方程式は,
次の数8式と定められる。
【0033】
【数8】 さらに,図8の(C)に示すように,ステップS3で3
次元要素を投影面上に投影変換するための変換行列Aを
定める。ステップS4でスプラインの基本データのうち
制御点データと直線の基本データのうち始点データを変
換行列Aを用いて投影面H上の点に変換する。
【0034】次に,ステップS5で変換された制御点の
うち,2次元の(x,y)要素データだけを取り出した
新制御点と元のノットベクトルを組み合わせてスプライ
ンS′,直線の始点の変換データのうち2次元の(x,
y)要素データだけを取り出したものを点P′とする。
【0035】すなわち,次の数9式のように定義され
る。
【0036】
【数9】 ステップS6でスプラインS′への点P′の射影点計算
を行い,射影点と点P′の距離があらかじめ定めてある
精度誤差定数ε以下のものについて,その射影点のスプ
ラインS′におけるパラメータ値を取り出し変数領域に
格納する。ステップS7で変数の領域に格納した射影点
のパラメータ値を以下の数10式のtに代入して,3次
元座標値を得る。
【0037】
【数10】 ここに,Ni (t)は,4階のB−スプライン関数,Q
i は,制御点である。ここで得られた通過点座標値P
(t)が求める交点座標値である。
【0038】図5は,ステップS6の射影点計算の手順
を詳細に示したものである。
【0039】ステップS8で2次元スプラインS′およ
び点データP′を入力し,ステップ9で,B−スプライ
ン曲線のノットベクトルを用いて,パラメータsを以下
の数11式のように定義する。
【0040】
【数11】 ステップS10で,ループカウンタを0にする。次に,
ステップS11で開始パラメータにs3m+k,終了パラメ
ータにs3m+k+1をセットする。次に,ステップS12
で,u=(開始パラメーター+終了パラメーター)÷2
とし,ステップS13でパラメータuにおける通過点座
標値R,接線ベクトルZを求める。ここで動作は図6の
フローに移り,ステップS14で点P′と通過点Rとを
結ぶ方向ベクトルをv,点P′と通過点Rとの点間距離
をdとする。次に,ステップS15で距離dを評価して
精度誤差ε以内であったら,ステップS16でこのパラ
メータuを射影点パラメータとして登録して処理ループ
を抜ける。一方,精度誤差εより大きい場合は,ステッ
プS17で接線ベクトルZのノルム値を評価し,精度誤
差ε以内ならば射影点としては登録せず,処理ループを
抜ける。精度誤差εより大きい場合は,ステップS18
で,方向ベクトルvと接線ベクトルZとの内積δを求め
る。次に,ステップS19で内積δの絶対値を評価し,
内積δの絶対値が精度誤差ε以内ならば,ステップS2
0でパラメータuを射影点パラメータとして登録し,処
理ループを抜ける。
【0041】次に,内積δの絶対値が精度誤差εより大
きい場合の動作を図7に示す。
【0042】まず,ステップS21で開始パラメータと
終了パラメータの差の絶対値を評価し,絶対値が精度誤
差ε以内ならば,ステップS22でパラメーターuを射
影点パラメーターとして登録し,処理ループを抜ける。
一方,差の絶対値が精度誤差εより大きい場合は,ステ
ップ23で内積値δの符号を評価する。内積δが0以上
の場合には,ステップS24でパラメータuを開始パラ
メーターとし,ループカウンタに1を加えてステップS
12に戻る。内積値δが負の場合は,ステップS25で
パラメータuを終了パラメータとし,ループカウンタに
1を加え,ステップS12に戻る。
【0043】以下,ステップS12〜ステップS25の
処理をループカウンターが,「50」になるまて繰り返
す。このステップS9〜ステップS20の処理を,m=
0,1,2,…,n−3,k=0,1,2について行う
ことで射影点パラメータuを求めることが出来る。
【0044】
【発明の効果】以上説明したように,本発明によれば,
ニュートン・ラプソン法を使わないことにより,ニュー
トン・ラプソン法特有の現象である多次数方程式の求解
におけるカオス現象や,重根が求めにくい現象を回避す
る事が出来,交点計算の部分でニュートン・ラプソン法
の代わりに二分法を採用することにより,交点の見落と
しを少なくすることが出来る。
【0045】また,本発明において,投影面への変換に
より,実質的な計算対象を3次元→2次元へと次元低下
させ,交点計算の主要な部分でのデータ量の削減をする
ことができる3次元CADにおけるB−スプライン曲線
と直線との交点算出方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態の3次元CADにおけるB
−スプライン曲線と直線との交点算出装置の構成を示す
ブロック図である。
【図2】本発明の実施の形態の動作を示すフローチャー
トである。
【図3】本発明の実施の形態による3次元CADシステ
ムの具体的構成を示す外観図である。
【図4】本発明の実施の形態による交点算出装置の動作
の全体を示すフローチャートである。
【図5】本発明の実施の形態による交点算出装置の動作
のうち,射影点計算の動作を詳細に示す最初の図であ
る。
【図6】本発明の実施の形態による交点算出装置の動作
のうち,射影点計算の動作を詳細に示す二番目の図であ
る。
【図7】本発明の実施の形態による交点算出装置の動作
のうち,射影点計算の動作を詳細に示す三番目の図であ
る。
【図8】本発明の実施の形態による交点算出装置の動作
の状態を示すイメージ図である。
【符号の説明】
1 要素形状表示部 2 オペレータ入力部 3 データ記憶部 4 モデルデータ格納部 5 演算処理部 10 交点算出装置(入出力演算装置) 11 エンジニアリングワークステーション 12 CRTディスプレイ 13 マウス

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 3次元CADにおけるB−スプライン曲
    線と直線との交点を算出する方法において,交点算出の
    対象となるB−スプライン曲線に対して直線の向きを法
    線ベクトルに持つ平面に投影変換を施すことで,2次元
    のB−スプライン曲線の射影点計算へと実際の計算を簡
    易化することを特徴とする3次元CADにおけるB−ス
    プライン曲線と直線との交点算出方法。
  2. 【請求項2】 請求項1記載の3次元CADにおけるB
    −スプライン曲線と直線との交点算出方法において,前
    記平面上に投影されたB−スプライン曲線と直線とを夫
    々2次元B−スプライン曲線と点とみなして,前記点の
    前記2次元B−スプライン曲線への投影点を求め,前記
    投影点のうち曲線上の点となっているものを取り出し,
    2次元B−スプライン曲線上での対応するパラメータ値
    を元の3次元B−スプライン曲線の式に代入してその交
    点を求めるようにしたことを特徴とする3次元CADに
    おけるB−スプライン曲線と直線との交点算出方法。
  3. 【請求項3】 請求項2記載の3次元CADにおけるB
    −スプライン曲線と直線との交点算出方法において,前
    記投射点は,二分法を用いて求められることを特徴とす
    る3次元CADにおけるB−スプライン曲線と直線との
    交点算出方法。
JP8207345A 1996-08-06 1996-08-06 3次元cadにおけるb−スプライン曲線と直線との交点算出装置 Expired - Fee Related JP3039387B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8207345A JP3039387B2 (ja) 1996-08-06 1996-08-06 3次元cadにおけるb−スプライン曲線と直線との交点算出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8207345A JP3039387B2 (ja) 1996-08-06 1996-08-06 3次元cadにおけるb−スプライン曲線と直線との交点算出装置

Publications (2)

Publication Number Publication Date
JPH1049652A true JPH1049652A (ja) 1998-02-20
JP3039387B2 JP3039387B2 (ja) 2000-05-08

Family

ID=16538206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8207345A Expired - Fee Related JP3039387B2 (ja) 1996-08-06 1996-08-06 3次元cadにおけるb−スプライン曲線と直線との交点算出装置

Country Status (1)

Country Link
JP (1) JP3039387B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013012184A (ja) * 2011-05-26 2013-01-17 Kla-Tencor Corp 標本データ用のロバストなピークファインダー
JP2013114694A (ja) * 2011-11-29 2013-06-10 Dassault Systemes 複数の3d曲線からの表面の生成

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013012184A (ja) * 2011-05-26 2013-01-17 Kla-Tencor Corp 標本データ用のロバストなピークファインダー
JP2013114694A (ja) * 2011-11-29 2013-06-10 Dassault Systemes 複数の3d曲線からの表面の生成

Also Published As

Publication number Publication date
JP3039387B2 (ja) 2000-05-08

Similar Documents

Publication Publication Date Title
EP1004988B1 (en) Method, apparatus and computer program product for generating perspective corrected data from warped information
US7212205B2 (en) Curved surface image processing apparatus and curved surface image processing method
US5363479A (en) System and method for rendering bezier splines
US8537158B2 (en) Parallel triangle tessellation
US4888583A (en) Method and apparatus for rendering an image from data arranged in a constructive solid geometry format
US6563501B2 (en) Bicubic surface rendering
JPH06110992A (ja) Cadシステムにおける形状変形入力操作方法
EP1675068A1 (en) Evolutionary optimisation and free form deformation
US20040085312A1 (en) Method and apparatus for triangle tessellation
US7982732B2 (en) Evolutionary design optimization using extended direct manipulation of free form deformations
EP0349182B1 (en) Method and apparatus for approximating polygonal line to curve
JP3039387B2 (ja) 3次元cadにおけるb−スプライン曲線と直線との交点算出装置
JP4526121B2 (ja) 三角形と線分の交点計算方法とそのプログラム
US7280108B2 (en) Bicubic surface rendering
JP2677273B2 (ja) 3次ベジェ曲線の折線近似装置
EP0660228A1 (en) A membership function data preparation method and an apparatus thereof and an adaptation degree operation method and an apparatus thereof
JP2538645B2 (ja) 曲線の折線近似装置
JP3066060B2 (ja) ベゼー曲線区間の多角形近似方式
US20030189570A1 (en) Bicubic surface rendering
JP2570954B2 (ja) 3次元スプラインの次元変換時の直線形状判定方法
JPS62263564A (ja) 座標格子作成支援方法及びその装置
JP2786098B2 (ja) 図形拡大編集方法
JPH06231261A (ja) 折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システム
JPH11203489A (ja) ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体
JPH0581385A (ja) 有限要素モデルのチエツク方法

Legal Events

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