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

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

Info

Publication number
JP3039387B2
JP3039387B2 JP8207345A JP20734596A JP3039387B2 JP 3039387 B2 JP3039387 B2 JP 3039387B2 JP 8207345 A JP8207345 A JP 8207345A JP 20734596 A JP20734596 A JP 20734596A JP 3039387 B2 JP3039387 B2 JP 3039387B2
Authority
JP
Japan
Prior art keywords
point
dimensional
projection
intersection
spline curve
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
JP8207345A
Other languages
English (en)
Other versions
JPH1049652A (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.)
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)

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)

    (57)【特許請求の範囲】
  1. 【請求項1】 3次元CADにおけるB−スプライン曲
    線と直線との交点を算出するための装置であって、 前記直線の向きを法線ベクトルに持つ平面を投影面とし
    てデータ記憶部に格納する投影面算出手段と、 交点算出の対象となるB−スプライン曲線および前記直
    線の始点を前記データ記憶部に格納された投影面に投影
    変換して得られたデータのうち2次元データのみを取り
    出し、2次元B−スプライン曲線および投影点として前
    記データ記憶部に格納する投影変換手段と、 前記データ記憶部から前記2次元B−スプライン曲線お
    よび投影点を取り出して、射影点計算を行い射影点に対
    応するパラメータ値を前記データ記憶部に記憶する射影
    点計算手段と、 前記データ記憶部から前記パラメータ値を読み出し、当
    パラメータ値を元の3次元B−スプライン曲線の式に
    代入してその交点を求める交点算出手段を備えたことを
    特徴とする3次元CADにおけるB−スプライン曲線と
    直線との交点算出装置。
  2. 【請求項2】 前記射影点計算手段は、開始パラメータ
    と終了パラメータの間の区間で二分法を用いて、前記2
    次元B−スプライン曲線上の通過点と前記投影点との距
    離が精度誤差以内の場合に、当該通過点に対応するパラ
    メータ値を前記データ記憶部に記憶することを特徴とす
    る請求項1記載の3次元CADにおけるB−スプライン
    曲線と直線との交点算出装置。
  3. 【請求項3】 前記射影点計算手段は、前記通過点と前
    記投影点との距離が精度誤差より大きい場合であって
    も、前記通過点における接線ベクトルのノルム値が精度
    誤差より大きく、かつ、前記通過点から前記投影点への
    方向ベクトルと前記接線ベクトルとの内積の絶対値が精
    度誤差以内であれば、当該通過点に対応するパラメータ
    値を前記データ記憶部に記憶することを特徴とする請求
    項2記載の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 JPH1049652A (ja) 1998-02-20
JP3039387B2 true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8682946B1 (en) * 2011-05-26 2014-03-25 Kla-Tencor Corporation Robust peak finder for sampled data
EP2600315B1 (en) * 2011-11-29 2019-04-10 Dassault Systèmes Creating a surface from a plurality of 3D curves

Also Published As

Publication number Publication date
JPH1049652A (ja) 1998-02-20

Similar Documents

Publication Publication Date Title
US5363479A (en) System and method for rendering bezier splines
US8537158B2 (en) Parallel triangle tessellation
US20040090437A1 (en) Curved surface image processing apparatus and curved surface image processing method
US5317682A (en) Parametric curve evaluation method and apparatus for a computer graphics display system
WO2005066852A1 (ja) 三次元cadデータの近似および表示方法、その方法を実行するシステム
JPH06110992A (ja) Cadシステムにおける形状変形入力操作方法
EP0349182B1 (en) Method and apparatus for approximating polygonal line to curve
JP3039387B2 (ja) 3次元cadにおけるb−スプライン曲線と直線との交点算出装置
US7280108B2 (en) Bicubic surface rendering
CN102156773A (zh) 综合了形状和物理性能的实体数据的存储方法
US5633994A (en) Computer aided modeling technique for 3D free-form objects and apparatus thereof
JP2005149245A (ja) Cadシステム、曲面解析装置、曲面再生装置、その方法及びそのプログラム
JP3066060B2 (ja) ベゼー曲線区間の多角形近似方式
JPH06274149A (ja) アウトラインフォントの幅変更処理方法および装置
JP2538645B2 (ja) 曲線の折線近似装置
US20030117399A1 (en) Image processing apparatus and method, storage medium, and program
US20030189570A1 (en) Bicubic surface rendering
JP2570954B2 (ja) 3次元スプラインの次元変換時の直線形状判定方法
JPH05324921A (ja) 曲線形成方法および装置
JP3787748B2 (ja) 数値解析用メッシュ作成装置
EP0425174A2 (en) Parametric curve evaluation for a computer graphics display system
EP0549189B1 (en) Solid model generation by span method using dividing cubes
JP2786098B2 (ja) 図形拡大編集方法
JP3433486B2 (ja) 幾何偏差の算出装置
JPH0773343A (ja) 曲面データ生成方法およびアニメ−ション制作方法

Legal Events

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