(57)【要約】補間処理は、Ｂ−Ｓｐｌｉｎｅ曲線・曲面や細分割曲面等の制御点で表される曲線・曲面を用いて補間点を補間する際に、点群を構成する補間点の位置情報と、各補間点に設定された単位方向ベクトルのベクトル情報を用いて、制御点を移動させる移動ベクトルを算出し、この移動ベクトルの移動方向に移動量だけ制御点を移動させる。補間点を補間する曲線・曲面の生成と制御点の移動の工程を繰り返すことによって、曲線・曲面を点群の位置および単位方向ベクトルについてフィッティングさせる新たな制御点位置を求める。点群の位置情報と法線情報を用いた補間処理において、制御点の増加を抑制して処理データのデータ量を低減し、また、接線ベクトルの大きさの指定を不要とする。
2009057517.tif 000002
【特許請求の範囲】
【請求項１】
制御点を用いて表される曲線または曲面によって点群を補間する補間処理方法において、
前記点群は、補間点の位置情報と、当該補間点における曲線または曲面の方向および曲率を定める単位方向ベクトルのベクトル情報とを有し、
前記補間処理は、制御点により定義される前記曲線あるいは前記曲面において、
前記補間点の位置情報に基づいて、補間点から前記曲線上または前記曲面上に下ろした垂線の足を第１の点として求める幾何アルゴリズムの演算を行う第一の補間工程と、
前記ベクトル情報に基づいて、単位方向ベクトルと垂直に交わる前記曲線の接線または前記曲面の接平面との接点を第２の点として求める幾何アルゴリズムの演算を行う第二の補間工程と、
前記第１の点から前記補間点に向かうベクトル、前記第２の点から前記補間点に向かうベクトル、前記第２の点から前記第１の点に向かうベクトルを移動ベクトルとして求め、前記曲線または前記曲面を定義する制御点の位置を前記移動ベクトルから選択した何れか一つの移動ベクトルを用いて移動し、移動後の位置を新たな曲線または曲面の制御点の位置として定める幾何アルゴリズムの演算を行う第三の補間工程とを含み、
前記各補間工程を行う演算処理を、前記幾何アルゴリズムを組み込んだ演算手段により行うことを特徴とする、補間処理方法。
【請求項２】
前記単位方向ベクトルは、前記補間点を補間する曲線又は曲面上において当該補間点での法線ベクトルであることを特徴とする、請求項１に記載の補間処理方法。
【請求項３】
前記演算処理で得た制御点に基づいて新たな曲線又は曲面を求め、補間点と求めた曲線又は曲面との距離としきい値とを比較し、前記距離がしきい値を満たす、又はしきい値よりも小さくなるまで、前記第一の補間工程と第二の補間工程と第三の補間工程を繰り返すことを特徴とする、請求項１又は２に記載の補間処理方法。
【請求項４】
前記演算処理で得た制御点に基づいて新たな曲線又は曲面を求め、各補間点に設定された単位方向ベクトルと、前記第一の補間工程で求めた垂線の足となる第１の点における曲線または曲面の法線ベクトルとの角度差としきい値とを比較し、前記角度差がしきい値を満たす、又はしきい値よりも小さくなるまで、前記第一の補間工程と第二の補間工程と第三の補間工程を繰り返すことを特徴とする、請求項１又は２に記載の補間処理方法。
【請求項５】
第１回目に行う第一の補間工程、第二の補間工程及び第三の補間工程において、
前記点群の補間点を初期制御点とし、前記各幾何アルゴリズムの演算を行い、
第２回目以降に行う第一の補間工程、第二の補間工程及び第三の補間工程において、
補間工程で得た制御点の位置を新たな制御点の位置とし、前記幾何アルゴリズムの演算を行うことを特徴とする、請求項１から請求項４のいずれか一つに記載の補間処理方法。
【請求項６】
前記曲線はＢ−Ｓｐｌｉｎｅ曲線であり、前記曲面はＢ−Ｓｐｌｉｎｅ曲面あるいは細分割曲面であることを特徴とする、請求項１から請求項５のいずれか一つに記載の補間処理方法。
【請求項７】
制御点を用いて表される曲線または曲面によって点群を補間する補間処理装置において、
前記点群は、補間点の位置情報と、当該補間点において曲線または曲面の方向および曲率を定める単位方向ベクトルのベクトル情報とを有し、
制御点により定義される前記曲線あるいは前記曲面において、
前記補間点の位置情報に基づいて、補間点から曲線上または曲面上に下ろした垂線の足を第１の点として求める幾何アルゴリズムによって第一の補間工程を行う第一の幾何演算手段と、
前記ベクトル情報に基づいて、単位方向ベクトルと垂直に交わる前記曲線の接線または前記曲面の接平面との接点を第２の点として求める幾何アルゴリズムによって第二の補間工程を行う第二の幾何演算手段と、
前記第１の点から前記補間点に向かうベクトル、前記第２の点から前記補間点に向かうベクトル、前記第２の点から前記第１の点に向かうベクトルを移動ベクトルとして求め、曲線または曲面を定義する制御点の位置を前記何れか一つの移動ベクトルを用いて移動し、移動後の位置を新たな曲線または曲面の制御点の位置として定める幾何アルゴリズムによって第三の補間工程を行う第三の幾何演算手段とを備え、
前記第一の幾何演算手段、第二の幾何演算手段及び第三の幾何演算手段は、各幾何アルゴリズムをソフトウェアで実行するためのＣＰＵ及び記憶装置、又は各幾何アルゴリズムをハードウエアで実行するための回路を備えることを特徴とする、補間処理装置。
【請求項８】
前記単位方向ベクトルは、前記補間点を補間する曲線又は曲面上において当該補間点での法線ベクトルであることを特徴とする、請求項７に記載の補間処理装置。
【請求項９】
前記演算処理で得た制御点に基づいて曲線又は曲面を求め、補間点と前記求めた曲線又は曲面との距離としきい値とを比較する比較手段と、
前記比較結果に基づいて、前記距離がしきい値を満たす、又はしきい値よりも小さくなるまで、前記第一の幾何演算手段と第二の幾何演算手段と第三の幾何演算手段とを繰り返して行わせるプログラム又は回路構成を有した制御手段を備えることを特徴とする、請求項７又は８に記載の補間処理装置。
【請求項１０】
前記演算処理で得た制御点に基づいて曲線又は曲面を求め、各補間点に与えた法線ベクトルと、前記求めた垂線の足となる点における曲線または曲面の法線ベクトルとの角度差としきい値とを比較する比較手段と、
前記角度差がしきい値を満たす、又はしきい値よりも小さくなるまで、前記第一の幾何演算手段と第二の幾何演算手段と第三の幾何演算手段を繰り返して行わせるプログラム又は回路構成を有した制御手段を備えることを特徴とする、請求項７又は８に記載の補間処理装置。
【請求項１１】
前記第一の幾何演算手段、第二の幾何演算手段及び第三の幾何演算手段は、
第１回目に行う演算において、前記点群を初期制御点とし前記幾何アルゴリズムの演算を行い、
第２回目以降に行う演算において、前記第１回目の演算で得た制御点位置を新たな制御点位置とし、前記幾何アルゴリズムの演算を行うことを特徴とする、請求項７から請求項１０のいずれか一つに記載された補間処理装置。
【請求項１２】
前記曲線はＢ−Ｓｐｌｉｎｅ曲線であり、前記曲面はＢ−Ｓｐｌｉｎｅ曲面あるいは細分割曲面であることを特徴とする、請求項７から請求項１１のいずれか一つに記載の補間処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、点群データを補間・近似して曲線あるいは曲面を生成するフィッティング処理方法、フィッティング処理装置、およびこのフィッティング処理をＣＰＵに実行させるプログラムに関する。
【背景技術】
【０００２】
自由曲面は、船、自動車、飛行機等、様々な工業製品のボディに用いられており、機能性と美しさの両方を兼ね備えるものであり、家庭電気製品や多くの消費材の外観など意匠的に美しい形状のデザイン設計に用いられる。【０００３】
近年、３Ｄレーザスキャナによって高密度の点群データを高速かつ容易に収集することができるようになり、物体形状を高精度で測定できることが可能と成っている。例えば、３Ｄモデリングの分野においては、デザイナが手作業で作成したモックアップモデルを３Ｄレーザスキャナで計測し、コンピュータに取り込んだ点群データやポリゴンデータをもとに製品として生産するために必要な曲面データなどのＣＡＤデータを作成していくという、いわゆる形状のリバースエンジニアリングの手法が行われている。【０００４】
一般に、３ＤモデルはポリゴンモデルまたはＮＵＲＢＳやＢ−Ｓｐｌｉｎｅなどの曲面パッチによりコンピュータ上で表現される。【０００５】
ＣＡＤ／ＣＡＭにおいて点群の位置情報からＢ−Ｓｐｌｉｎｅ、ＮＵＲＢＳ、細分割等の曲線・曲面曲を補間・近似する方法が知られている（非特許文献１、特許文献１）。この補間・近似において、各点の位置情報に加えて法線情報を付加することによって設計の自由度を上げ、オフセット曲線・曲面の近似精度を向上させることが可能である。
【非特許文献１】Les Piegel, Wayne Tiller “The NURBS Book”P373〜P376 Springer-Verlag Berlin Heidenberg 1995 and 1997
【特許文献１】特開２００４−１９２２０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
法線を含む補間では、制御点の個数が点群の位置のみを補正する場合と比較して増加する。例えば、制御点の点数は、曲線の場合には補間点数の約２倍、曲面の場合には補間点数の約３倍となる。【０００７】
さらに、法線を指定するために用いる接線ベクトルにおいて、方向に係わる情報に加えて大きさの情報についても各補間点で指定する必要がある。この接線ベクトルの大きさの指定は、各補間点での接線ベクトルの大きさの指定と、指定した大きさによって得られる曲線あるいは曲面の補間結果の評価とを人手によって繰り返すことによって行うため、補間処理の多大な時間と負担を要する。【０００８】
したがって、点群の位置情報に加えて法線情報を付加することによって行う補間処理では、制御点の増加や、接線ベクトルにおける方向と大きさの指定等によって、設定を要するデータ数が増加するという問題がある。このデータ数の増加は、演算処理の処理時間の増加を招く他、人が行う処理も多大となるという問題がある。【０００９】
また、制御点が増加すると、曲線に不要な振動が生じる場合がある。【００１０】
そこで、本発明は前記した従来の問題点を解決し、点群の位置情報と法線情報を用いた補間処理において、処理データのデータ量を低減することを目的とする。【００１１】
さらに詳細には、点群の位置情報と法線情報を用いた補間処理において、制御点の増加を抑制することを目的とし、また、接線ベクトルの大きさの指定を不要とすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、フィッティング対象となる点群が与えられた状態から、この点群を補間する曲線あるいは曲面を求めるものである。はじめに、フィッティング対象となる点群を初期制御点群とし、この制御点群の制御点を用いて曲線、あるいは曲面を生成する。この制御点で表される曲線は、Ｂ−Ｓｐｌｉｎｅ曲線を適用することができ、また、制御点で表される曲面は、Ｂ−Ｓｐｌｉｎｅ曲面や細分割曲面を適用することができる。【００１３】
次に、同じ点群を補間点として、曲線、あるいは曲面の生成時に得られた制御点を移動させることによって、生成した曲線又は曲面を用いて補間点を補間するものである。以下、曲線あるいは曲面を曲線・曲面と表記して説明する。【００１４】
本発明による補間処理では、生成した曲線・曲面を用いて補間点を補間する際に、点群を構成する補間点の位置情報と、各補間点に設定された単位方向ベクトルのベクトル情報を用いて、制御点を移動させる移動ベクトルを算出し、この移動ベクトルの移動方向に移動量だけ制御点を移動させる。【００１５】
上記した、補間点を補間する曲線・曲面の生成と制御点の移動の工程を繰り返すことによって、曲線・曲面を点群の位置および単位方向ベクトルについてフィッティングさせる新たな制御点位置を求める。【００１６】
本発明は、各点群から最短距離となる曲線・曲面上の点を求める第一の工程と、設定された単位方向ベクトルと曲線・曲面上の接線が垂直となる接線を有する点を求める第二の工程、第二の工程で求めた点から各点群へ向かうベクトルを求め、このベクトル分だけ各制御点を移動させる第三の工程を、補間点に定められた位置と方向について位置誤差と角度誤差が所定した大きさよりも小さくなるまで繰り返す。【００１７】
位置誤差については、点群と曲線・曲面との距離が、しきい値を満たすまで、またそれよりも小さくなるまで繰り返すことで減少させる。また、角度誤差については、曲線・曲面上の点であって、点群から最短距離となる点における法線ベクトルと、補間点に設定された単位方向ベクトルとの角度差が、しきい値を満たすまで、またそれよりも小さくなるまで繰り返すことで減少させる。これによって、点群にフィッティングする曲線・曲面を生成する。【００１８】
本発明は、補間処理方法の態様と補間処理装置の態様とを有する。【００１９】
補間処理方法の態様は、制御点で定義される曲線または曲面によって点群を補間する補間処理方法であって、点群は、補間点の位置情報と、この補間点における曲線または曲面の方向を定める単位方向ベクトルのベクトル情報とを有する。【００２０】
補間処理は、制御点により定義される曲線・曲面において、補間点の位置情報に基づいて、補間点から曲線・曲面上に下ろした垂線の足を第１の点として求める幾何アルゴリズムの演算を行う第一の補間工程と、ベクトル情報に基づいて、単位方向ベクトルと垂直に交わる曲線の接線または曲面の接平面との接点を第２の点として求める幾何アルゴリズムの演算を行う第二の補間工程と、第１の点から補間点に向かうベクトル、第２の点から前記補間点に向かうベクトル、第２の点から第１の点に向かうベクトルを移動ベクトルとして求め、曲線または曲面を定義する制御点の位置を前記した３つの移動ベクトルから選択した移動ベクトルを用いて移動し、移動後の位置を新たな曲線または曲面の制御点の位置として定める幾何アルゴリズムの演算を行う第三の補間工程とを含んでいる。これら各補間工程を行う演算処理は、幾何アルゴリズムを組み込んだ演算手段により行われる。【００２１】
また、補間処理装置の態様では、制御点で定義される曲線または曲面によって点群を補間する補間処理装置であって、点群は、補間点の位置情報と、この補間点において曲線または曲面の方向および曲率を定める単位方向ベクトルのベクトル情報とを有する。【００２２】
補間処理装置、補間処理を行う構成として第一〜第三の幾何演算手段を備える。【００２３】
第一の幾何演算手段は、制御点により定義される曲線あるいは曲面において、補間点の位置情報に基づいて、補間点から曲線上または曲面上に下ろした垂線の足を第１の点として求める幾何アルゴリズムによって第一の補間工程を行う。【００２４】
第二の幾何演算手段は、ベクトル情報に基づいて、単位方向ベクトルと垂直に交わる曲線の接線または曲面の接平面との接点を第２の点として求める幾何アルゴリズムによって第二の補間工程を行う。【００２５】
第三の幾何演算手段は、第１の点から補間点に向かうベクトル、第２の点から補間点に向かうベクトル、第２の点から第１の点に向かうベクトルを移動ベクトルとして求め、曲線または曲面を定義する制御点の位置を何れか一つの移動ベクトルを用いて移動し、移動後の位置を新たな曲線または曲面の制御点の位置として定める幾何アルゴリズムによって第三の補間工程を行う。【００２６】
ここで、第一の幾何演算手段、第二の幾何演算手段及び第三の幾何演算手段は、各幾何アルゴリズムをソフトウェアで実行するためのＣＰＵ及び記憶装置、又は各幾何アルゴリズムをハードウェアで実行するための回路を備える構成とすることができる。【００２７】
本発明において、曲線・曲面の方向や曲率を定める単位方向ベクトルは、方向のみの情報を有し、大きさについては情報を有していない。また、この単位方向ベクトルは、補間点を補間する曲線又は曲面上における補間点での法線ベクトルとする他、法線ベクトルから所定の角度関係を有した方向ベクトルとしてもよい。【００２８】
補間処理の終了は、曲線・曲面が補間点を十分に補間したと判断される時点まで繰り返す。この繰り返しによる収斂は、距離と角度差を指標として行うことができる。【００２９】
距離を指標として繰り返しを行う場合には、演算処理で得た制御点に基づいて新たな曲線・曲面を求め、補間点と求めた曲線又は曲面との距離としきい値とを比較し、この距離がしきい値を満たすまで、又はしきい値よりも小さくなるまで、第一の補間工程と第二の補間工程と第三の補間工程を繰り返す。【００３０】
また、角度を指標として繰り返しを行う場合には、演算処理で得た制御点に基づいて新たな曲線・曲面を求め、各補間点に設定された単位方向ベクトルと、第一の補間工程で求めた垂線の足となる第１の点における曲線または曲面の法線ベクトルとが形成する角度差とを求め、この両ベクトルの角度差としきい値とを比較し、角度差がしきい値を満たすまで、又はしきい値よりも小さくなるまで、第一の補間工程と第二の補間工程と第三の補間工程を繰り返す。【００３１】
上記した距離を指標とする収斂と、角度差を指標とする収斂は、それぞれ単独で行う他に、両方を組み合わせて行っても良い。【００３２】
また、本発明の補間処理では、はじめに点群が与えられた状態で開始する場合には、第１回目に行う各補間工程では、与えられた点群の補間点を初期制御点として曲線・曲面を生成し、各幾何アルゴリズムの演算を行うことで制御点を生成する。次に、第２回目以降で行う補間工程では、補間工程で得た制御点の位置を新たな制御点の位置として、各幾何アルゴリズムの演算を行うことで制御点を修正し、これを繰り返す。【００３３】
本発明による補間処理は、局所的に各制御点を扱うことになるため、線形システム自体を必要としない上に、幾何学的なプロセスのみで点群にフィッティングする曲線・曲面を生成することができる。そのため、本発明の補間処理によれば、従来の手法にくらべ曲線・曲面を定義する制御点の数を、曲線では二分の一、曲面では三分の一に減少させることができる。【００３４】
また、本発明による補間処理では、補間点に設定する単位方向ベクトルはベクトル情報として方向のみを含み、大きさについては不要である。従来の接線ベクトルを用いた処理では、曲線又は曲面上の各点において接線ベクトルの大きさの変更を、曲線又は曲面の形状を目視で観察しながら逐次行ってフィッティングを行う必要があり、多くの労力と時間を有していたが、本発明によれば、プロセスの開始から終了までの間で人の介入なしに曲線・曲面のフィッティングを行うことができる。なお、ここでフィッティングとは補間と近似の両方を含むものとする。
【発明の効果】
【００３５】
以上説明したように、本発明によれば、点群の位置情報と法線情報を用いた補間処理において、制御点の増加を抑制し、処理データのデータ量を低減することができる。【００３６】
また、点群の位置情報と法線情報を用いた補間処理において、接線ベクトルの大きさの指定を不要とし、自動的な補間を容易とすることができる。【００３７】
また、制御点の増加に伴って生じていた、補間の際の不必要な振動を抑えることができる。
【図面の簡単な説明】
【００３８】
【図１】本発明の補間処理の概略を説明するための概略図である。
【図２】本発明の補間処理の概略を説明するためのフローチャートである。
【図３】本発明の補間処理の第一、第二の補間工程を説明するための図である。
【図４】本発明の補間処理の第三の補間工程を説明するための図である。
【図５】本発明の補間処理装置の概略構成図である。
【図６】本発明の二次元の点群より曲線を生成する場合を説明するためのフローチャートである。
【図７】本発明の二次元の点群より曲線を生成する場合を説明するための制御点と曲線との概略図である。
【図８】本発明の二次元の点群より曲線を生成する場合を説明するための制御点と曲線との概略図である。
【図９】本発明の二次元の点群より曲線を生成する場合を説明するための制御点と曲線との概略図である。
【図１０】本発明の二次元の点群を補間する曲線例を示す図である。
【図１１】本発明による補間結果と従来法による補間結果を比較する図である。
【図１２】本発明による補間結果と従来法による補間結果を比較する図である。
【図１３】三次元の点群より曲面を生成する場合を説明するためのフローチャートである。
【符号の説明】
【００３９】
１…入力手段
２…記憶手段
２ａ…データ記憶部
２ｂ…演算ツールプログラム記憶部
２ｃ…演算処理プログラム記憶部
２ｄ…一次記憶部
２ｅ…演算結果記憶部
３…演算手段
４…表示手段
５…出力手段
【発明を実施するための最良の形態】
【００４０】
以下、本発明の実施の形態について、図を参照しながら詳細に説明する。なお、以下では、制御点によって定義される曲線・曲面として、主にＢ−Ｓｐｌｉｎｅ曲線・曲面について説明するが、本発明は、Ｂ−Ｓｐｌｉｎｅ曲線・曲面に限られるものではなく、制御点を用いて表現される細分割曲面等の曲線・曲面についても同様に適用することができる。【００４１】
図１は本発明の補間処理を説明するための概略図であり、図２は本発明の補間処理を説明するためのフローチャートであり、図３、図４は、本発明の補間処理を説明するための図である。また、図５は本発明の補間処理装置の概略構成図である。【００４２】
図１、図２、図３、図４は、位置情報および単位方向ベクトルのベクトル情報を含む点群Ｑが与えられ、この点群ＱからＢ−Ｓｐｌｉｎｅ曲線を求める手順を概略的に示している。なお、以下では、単位方向ベクトルとして法線ベクトルの例について説明する。単位方向ベクトルが法線ベクトル以外のベクトルである場合には、法線ベクトルに対して所定に角度関係を設定することで、その方向を定めることができる。【００４３】
また、ここでは、補間対象となる点群を単に点群と呼び、入力で各点群に与える法線ベクトルを単に法線ベクトルと呼ぶ。【００４４】
なお、ここでは主に曲線について説明するが、曲面においても同様に扱うことができる。【００４５】
以下、図１の概略図と図２のフローチャートを用いて、与えられた点群ＱからＢ−Ｓｐｌｉｎｅ曲線・曲面を生成する手順を説明する。【００４６】
はじめに、与えられた点群Ｑを初期制御点Ｐ0とする。点群Ｑは、各点の位置情報と、各点に設定された方向情報とを含んでいる。方向情報は、点群を補間する曲線又は曲面の方向や曲率を定めるものであり、単位方向ベクトルで表すことができる。単位方向ベクトルは、方向のみの情報を有し、大きさの情報は有していない。単位方向ベクトルは、例えば、その点における法線ベクトルとする他に、この法線ベクトルに対して所定の角度関係を有したベクトルとしてもよい。以下では、単位方向ベクトルとして法線ベクトルの例について説明する。図１中で（S1）で示す箇所の左方は、点群Ｑとその点における法線ベクトルＮ＊（図中Ｎの上に矢印として表記）を示し、右方は、この点群Ｑを初期制御点とし、これらの初期制御点を直線で繋いだときの形状を示している（Ｓ１）。【００４７】
第１回目のＢ−Ｓｐｌｉｎｅ曲線・曲面の生成では、制御点が設定されていないため、与えられた点群を初期制御点とし、この初期制御点をもとにＢ−Ｓｐｌiｎｅ曲線Ｃ0を生成する。図１中において、（S2）を付した矢印は、初期制御点を繋いで形成された形状からＢ−Ｓｐｌｉｎｅ曲線・曲面を生成する状態を示している（Ｓ２）。【００４８】
次に、補間処理によって制御点を移動し、補間点をより忠実に補間するＢ−Ｓｐｌｉｎｅ曲線・曲面を形成する。【００４９】
この補間処理では、Ｂ−Ｓｐｌｉｎｅ曲線・曲面上の点と補間点との関係から移動ベクトルを求め、求めた移動ベクトルを用いて制御点の位置を移動することで行う。より詳細には、後述するように３つの補間工程（Ｓ３ａ）〜（Ｓ３ｃ）によって行う。図１中において、（S3）を付した矢印は、補間工程によって新たな制御点を求めた状態を示している（Ｓ３）。【００５０】
Ｓ３の補間処理によって制御点の位置を移動した後、移動した制御点に基づいてＢ−Ｓｐｌｉｎｅ曲線Ｃnを生成する。図１中において、（S4）を付した矢印は、移動後の制御点を用いてＢ−Ｓｐｌｉｎｅ曲線・曲面を生成する状態を示している。（Ｓ４）。【００５１】
生成したＢ−Ｓｐｌｉｎｅ曲線・曲面と点群Ｑとを比較し、Ｂ−Ｓｐｌｉｎｅ曲線・曲面が点群Ｑを良好に補間するまでＳ３の補間処理を繰り返す。このＳ３の補間処理の繰り返しは、点群Ｑの各点と、Ｂ−Ｓｐｌｉｎｅ曲線・曲面上で当該点群Ｑと対応する点との間の距離誤差や、点群Ｑの各点に付与された法線ベクトルと、Ｂ−Ｓｐｌｉｎｅ曲線・曲面上で当該点群Ｑの対応する点での法線の角度差が収束するまで行う。この収束は距離誤差、法線の角度差がしきい値を満たすまでＳ３の行程を繰り返すことで行う。【００５２】
上記したＢ−Ｓｐｌｉｎｅ曲線・曲面の収束は、点間の距離誤差を収束条件と法線間の角度差を収束条件の両収束条件を用いて行う他に、何れか一方の収束条件を用いて行っても良い（Ｓ５）。【００５３】
以下、上記したＳ３の補間処理について説明する。Ｓ３の補間処理は三つの補間工程Ｓ３ａとＳ３ｂとＳ３ｃを備える。【００５４】
第一の補間工程Ｓ３ａでは、補間点からＢ−Ｓｐｌｉｎｅ曲線・曲面上へ垂線を下ろしたときの垂線の足を求める。この垂線の足は、Ｂ−Ｓｐｌｉｎｅ曲線・曲面上において補間点からの距離が最短となる最短距離点として定めることができる。【００５５】
第二の補間工程Ｓ３ｂでは、各補間点に与えられた法線ベクトルとＢ−Ｓｐｌｉｎｅ曲線・曲面上の接線あるいは接平面が垂直に交わるとき、そのような接線あるいは接平面を有する曲線・曲面上の接点を求める。【００５６】
第三の補間工程Ｓ３ｃでは、第一の補間工程および第二の補間工程で求めたＢ−Ｓｐｌｉｎｅ曲線・曲面上の点と補間点との間で形成されるベクトルを求め、求めたベクトルを移動ベクトルとして制御点の位置を移動させて新たな制御点を設定する。【００５７】
以下、Ｓ３の補間処理について、図３、４を用いて説明する。【００５８】
図３（ａ）は第一の補間工程Ｓ３ａの工程を説明するための図であり、図３（ｂ）は第二の補間工程Ｓ３ｂの工程を説明するための図であり、図４は第三の補間工程Ｓ３ｃの工程を説明するための図である。【００５９】
また、図３、４では、シフト前の制御点をＰa、シフト後の制御点をＰbで示し、曲線Ｃn上で求めた近傍点をＦnで示している。また、法線ベクトルをＮ＊（図中Ｎの上に矢印として表記）として示し、法線ベクトルＮ＊と垂直に交わる接線を有する曲線Ｃn上の点をＧnで示す。また、以下では、Ｂ−Ｓｐｌｉｎｅ曲線を用いて説明する。【００６０】
図３（ａ）に示す第一の補間工程Ｓ３ａにおいて、第一回目の補間工程では、制御点Ｐaは与えられた点群の補間点Ｑと同じ位置の点であり、第二回目以降の補間工程では、前回の補間工程によって位置がシフトされた制御点である。【００６１】
第一の補間工程Ｓ３ａでは、制御点により定義されるＢ−Ｓｐｌｉｎｅ曲線Ｃnにおいて、補間点Ｑの位置情報に基づいて、補間点ＱからＢ−Ｓｐｌｉｎｅ曲線Ｃn上に下ろした垂線の足を第１の点Ｆnを幾何アルゴリズムの演算処理によって求める。【００６２】
次に、図３（ｂ）に示す第二の補間工程Ｓ３ｂにおいて、法線ベクトルＮ＊は各点群Ｑに与えられている。【００６３】
第二の補間工程Ｓ３ｂでは、法線ベクトルＮ＊と垂直に交わる接線を有する曲線上の接点をＦnの近傍で求め、第２の点Ｇnとする。曲面の場合には、法線ベクトルと垂直に交わる曲面の接平面との接点を第２の点Ｇnとして、幾何アルゴリズムの演算によって求める。【００６４】
図４は第三の補間工程Ｓ３ｃで行う制御点の移動形態の３例を示している。【００６５】
第三の補間工程Ｓ３ｃでは、第一の補間工程で求めた第１のＦnと、第二の補間工程で求めた第２の点Ｇnと、補間点Ｑとの間で形成されるベクトルを求め、求めたベクトルを移動ベクトルとして制御点の位置を移動させ新たな制御点を設定する。【００６６】
図４（ａ）は、第２の点Ｇnから補間点Ｑに向かうベクトルを移動ベクトルとして制御点Ｐを移動させる移動形態を示し、図４（ｂ）は、第２の点Ｇnから第１の点Ｆnに向かうベクトルを移動ベクトルとして制御点Ｐを移動させる移動形態を示し、図４（ｃ）は、第１の点Ｆnから補間点Ｑに向かうベクトルを移動ベクトルとして制御点Ｐを移動させる移動形態を示している。【００６７】
第三の補間工程Ｓ３ｃでは、これら各移動形態の移動ベクトルの何れかを用いて制御点を移動させることで新たな制御点を求める。この第三の補間工程は幾何アルゴリズムの演算によって実行することができ、この演算処理は幾何アルゴリズムを組み込んだ演算手段により行うことができる。【００６８】
次に、制御点Ｐaの位置をシフトして新たな位置に制御点Ｐbを求める第三の補間工程において、図４（ａ）に示す移動形態では、第二の補間工程Ｓ３ｂの工程で求めた第２の点Ｇnから対応する補間点Ｑへ向かうベクトルＡ（図中の破線で示す）を求め、このベクトルＡを移動ベクトルとして制御点Ｐaを移動し、新たな制御点Ｐbを求める。【００６９】
図４（ｂ）に示す移動形態では、第二の補間工程Ｓ３ｂの工程で求めた第２の点Ｇnから第一の補間処理Ｓ３ａの工程で求めた第１の点Ｆnへ向かうベクトルＢ（図中の破線で示す）を求め、このベクトルＢを移動ベクトルとして制御点Ｐaを移動し、新たな制御点Ｐbを求める。【００７０】
図４（ｃ）に示す移動形態では、第一の補間工程Ｓ３ａの工程で求めた第１の点Ｆnから対応する補間点Ｑへ向かうベクトルＣ（図中の破線で示す）を求め、このベクトルＣを移動ベクトルとして制御点Ｐaを移動し、新たな制御点Ｐbを求める。【００７１】
これら３つの移動形態から一つを選択して制御点を移動し、新たな制御点の位置を定める。この制御点移動位置の選択は、以下のようにして行うことができる。【００７２】
図４（ａ）で示すように、第２の点Ｇnから対応する補間点Ｑへ向かうベクトル分だけ移動させた位置にシフトする補間処理を繰り返した際に、補間点Ｑとの曲線Ｃnとの距離誤差が小さくなると、法線ベクトルの角度差が制御点Ｐaを移動しても小さくならない場合がある。【００７３】
このような状態になった場合に、図４（ｂ）で示すように、第２の点Ｇnから第１の点Ｆnへ向かうベクトル分だけ制御点Ｐaを移動させた位置にシフトすることで、角度差を小さくすることができる。【００７４】
また、逆に、角度差が十分小さくなり、距離誤差が制御点Ｐをシフトさせても小さくならない場合には、制御点Ｐを第１の点Ｆnから補間点Ｑへ向かうベクトル分だけ移動させた位置にシフトすることで、距離誤差を小さくする。これら各移動形態は、状況に合わせて選択することができる。【００７５】
補間処理Ｓ３はこの第一の補間工程Ｓ３ａと第二の補間工程Ｓ３ｂと第三の補間工程Ｓ３ｃを繰り返して行われる。この第三の工程で得られた制御点Ｐbを用いることで前記したＳ４の工程によりＢ−Ｓｐｌｉｎｅ曲線・曲面が生成される。【００７６】
Ｓ５の工程では、生成したＢ−Ｓｐｌｉｎｅ曲線・曲面と点群の距離ならびに法線ベクトルを比較し、対応する点間の距離誤差、対応する法線ベクトルの角度差、が収束するまでＳ３の補間工程を繰り返す。この収束は、距離誤差と法線ベクトルの角度差がそれぞれあらかじめ設定しておいたしきい値を満たすまで、又はしきい値よりも小さくなるまで繰り返す。【００７７】
補間処理によって距離誤差ならびに法線ベクトルの角度差が収束したときに得られるＢ−Ｓｐｌｉｎｅ曲線・曲面は、補間点の位置を補間するとともに、補間点での法線ベクトルが、設定された法線ベクトルと同様となる曲線・曲面となる。【００７８】
図５は、本発明の補間処理のソフトウェアを記憶したプログラムをコンピュータで実行させる場合の一構成例を示している。【００７９】
入力手段１は、点群Ｑ、法線ベクトルＮ＊のデータを入力し、記憶手段２中のデータ記憶部２ａに記憶する。記憶手段２は、データ記憶部２ａの他に、微分幾何学演算を行う演算ツールのプログラムを記憶する演算ツールプログラム記憶部２ｂ、補間処理の微分幾何学演算の他、Ｂ−ｓｐｌｉｎｅ曲線・曲面生成処理等の演算処理のプログラムを記憶する演算処理プログラム記憶部２ｃ、途中演算結果等を一時的に記憶する一次記憶部２ｄ、補間処理等によって得られた曲面の演算結果を記憶する演算結果記憶部２ｅ等を備える。【００８０】
演算手段３は、データ記憶部２ａに記憶された点群Ｑのデータを用い、演算処理プログラム記憶部２ｃに記憶されるプログラムによる演算手順に従うと共に、このプログラムに指定される演算ツールのプログラムを演算ツールプログラム記憶部２ｂから逐次読み出して演算処理を行う。【００８１】
演算結果記憶部２ｅに記憶された演算結果は、読み出して表示手段４に表示したり、出力手段５に出力することができる。出力手段５は、演算結果を記録媒体に記録する記録装置、例えば加工装置等の、演算結果を用いて所定動作を実行する外部装置とすることができる。【００８２】
なお、上記、ソフトウェア処理を行う構成は、専用のソフトウェア処理装置や、通常のパーソナルコンピュータに適用することができる。【００８３】
また、上記構成において、記憶手段を含む演算手段で実施される機能を回路で構成することでハードウェアにより実施することもできる。【００８４】
次に、本発明の補間処理の詳細について、二次元の点群(位置、法線情報を含む)からＢ−Ｓｐｌｉｎｅ曲線を生成する場合と、三次元の点群(位置、法線情報を含む)からＢ−Ｓｐｌｉｎｅ曲面を生成する場合について説明する。【００８５】
以下、はじめに、二次元の点群(位置、法線情報を含む)からＢ−Ｓｐｌｉｎｅ曲線を生成する場合を、図６のフローチャート、図７〜９の制御点と曲線の関係を説明する概略図、図１０〜１２の曲線補間の例の図を用いて説明し、次に、三次元の点群(位置、法線情報を含む)からＢ−Ｓｐｌｉｎｅ曲面を生成する場合を、図１３のフローチャートを用いて説明する。【００８６】
はじめに、二次元の点群(位置、法線情報を含む)からＢ−Ｓｐｌｉｎｅ曲線を生成する場合について説明する。なお、以下のフローチャートは一例であり、本発明の第一の補間工程及び第二の補間工程及び第三の補間工程を実施する工程及び手順であれば他のフローで構成してもよい。【００８７】
二次元の点群データ（位置、法線ベクトル）を取得し（Ｓ１１）、点群の位置をＱiとて記憶し、法線ベクトルをＮ＊として記憶する（Ｓ１２）。図７（ａ）はＳ１２の状態を示している。得られた補間点Ｑiを初期制御点Ｐ0iとして記憶する（Ｓ１３）。【００８８】
制御点Ｐk-1iからＢ−Ｓｐｌｉｎｅ曲線Ｃk-1を生成する。ここで、上付き文字Ｋは補間処理の回数を示す。第１回目では、制御点Ｐが設定されていないため、与えられた補間点補間点Ｑiを初期制御点Ｐ0iとし、この初期制御点Ｐ0iを用いてＢ−Ｓｐｌｉｎｅ曲線・曲面を生成する。図７（ｂ）は初期制御点Ｐ0iを用いてＢ−Ｓｐｌｉｎｅ曲線・曲面を生成した状態を示している（Ｓ１４）。【００８９】
以下、Ｓ１５，Ｓ１６に示す第一の補間工程とＳ１７、Ｓ１８に示す第二の補間工程とＳ２１〜Ｓ２３に示す第三の補間工程の中からいずれかの工程を繰り返すことにより点群を位置ならびに法線ベクトルについて補間するＢ−Ｓｐｌｉｎｅ曲線Ｃを生成する。【００９０】
第一の補間工程において、補間点Ｑから曲線Ｃ上に垂線を降ろし、この垂線の足を求め、求めた第１の点Ｆkiとする。ここで、垂線を下ろす曲線Ｃは、初回ではＳ１３の工程で得た制御点Ｐ0から生成される曲線Ｃ0であり、二回目以降はＳ２１〜Ｓ２３のいずれかの工程でシフトされた制御点Ｐkiによって生成される曲線ＣＫである（Ｓ１５）。【００９１】
補間点ＱiとＳ１４で求めた垂線の足である第１の点Ｆkiとの距離//Ｑi−Ｆki//（＝Δｄ）を求める。垂線および距離を求める演算は、微分幾何学演算により求めることができる。図７（ｃ）は、初回の第一の補間工程のＳ１５、Ｓ１６の状態を示している（Ｓ１６）。【００９２】
次に、第二の補間工程において、各補間点Ｑに与えられた法線ベクトルＮi＊と垂線の足の第１のＦkiにおける曲線Ｃの法線ベクトルの角度差Δθを求め（Ｓ１７）、法線ベクトルＮi＊と垂直に交わる接線と接する曲線上の接点を第２のＧkiとして求める。角度差および法線ベクトルと垂直に交わる接線と接する曲線上の点は、微分幾何学演算により求めることができる。図７の（ｄ）は初回の補間工程のＳ１８の状態を示している（Ｓ１８）。【００９３】
次に、第三の補間工程において、Ｓ１６で求めた距離ΔｄとＳ１８で求めた角度差ΔθからＳ２２〜Ｓ２４の三つの補正工程の内から一つを選択して実行する。【００９４】
補間点と曲線の距離誤差Δｄ、および法線ベクトルの角度差Δθは共にしきい値を満たさない場合には（Ｓ１９、Ｓ２１）、Ｓ１８で求めた曲線上の第２の点Ｇkiから補間点Ｑiに向かうベクトルＡの方向および大きさの分だけ、現在の曲線を定義している制御点Ｐk-1iの位置をシフトし、シフトした位置を新たな制御点Ｐkiの位置とする。図８（ａ）はこの補正工程による移動状態を示している（Ｓ２２）。【００９５】
補間点と曲線の距離誤差Δｄはしきい値を満たすが（Ｓ１９）、法線ベクトルの角度差Δθがしきい値を満たさない場合には（Ｓ２０）、Ｓ１８で求めた曲線上の第２の点ＧkiからＳ１５で求めた垂線の足の第１の点Ｆkiへ向かうベクトルＢの方向および大きさの分だけ、現在の曲線を定義している制御点Ｐk-1iの位置をシフトし、シフトした位置を新たな制御点Ｐkiの位置とする。図８（ｂ）はこの補正工程による移動状態を示している（Ｓ２４）。【００９６】
補間点と曲線の距離誤差Δｄはしきい値を満たさない（Ｓ１９）が、法線ベクトルの角度差Δθはしきい値を満たす場合には（Ｓ２１）、Ｓ１５で求めた垂線の足である第１の点Ｆkiから補間点Ｑiへ向かうベクトルＣの方向および大きさの分だけ、現在の曲線を定義している制御点Ｐk-1iの位置をシフトし、シフトした位置を新たな制御点Ｐkiの位置とする。図８（ｃ）はこの補正工程による移動状態を示している（Ｓ２３）。【００９７】
制御点をシフトする演算は、幾何学的演算によって求めることができる。図８（ａ）は初回の補間処理におけるＳ２１の状態を示している。図８（ｂ）は初回の補間処理におけるＳ２２の状態を示し、図８（ｃ）は初回の補間処理におけるＳ２３の状態を示している。【００９８】
また、図９（ａ），（ｃ）は二回目以降の補間処理のＳ１４によってＢ−Ｓｐｌｉｎｅ曲線Ｃ（１），Ｃ（２）を生成した状態を示している。また、図９（ｂ）は二回目以降の補間処理のＳ２１によって制御点Ｐ（１）を制御点Ｐ（２）に移動させた状態を示している。【００９９】
Ｓ１４で求めた曲線Ｃが補間点Ｑiとの距離誤差Δｄ、法線ベクトルＮi＊と垂線の足の第１の点Ｆkiにおける曲線Ｃの法線ベクトルの角度差Δθ、がそれぞれのしきい値を満たすまでＳ１４〜Ｓ２３までの工程を繰り返す。距離誤差Δｄ、角度差Δθのしきい値は、それぞれ点群を補間する曲線に対して許容できる許容距離誤差、および法線の角度差に対して許容できる許容法線ベクトル角度差に相当する。【０１００】
したがって、Ｓ１９、Ｓ２０、Ｓ２１の比較工程において距離、法線ベクトルの角度差がしきい値を満たすことを確認することで、曲線Ｃは点群を与えた位置ならびに法線ベクトルについて許容誤差範囲内で補間するものとする。【０１０１】
図１０は、二次元（平面）の曲線補間の一例であり、Bowditch曲線とTrochoid曲線から点群とその点における法線ベクトルを抽出し、点群の位置ならびに法線ベクトルについて補間したものである。図１０（ａ），（ｃ）には、補間対象となる点群の各点と、線分で示した法線ベクトルを示している。図１０（ｂ）（ｄ）には、本発明によりそれぞれ点群を位置ならびに法線ベクトルについて三次のＢ−Ｓｐｌｉｎｅ曲線で補間した結果を示している。【０１０２】
本発明の手法における計算結果を表１に、点の位置のみについて従来の手法（非特許文献１）で補間した結果を表２に示す。ここで、距離誤差については各モデルにおけるbounding boxの対角線を基準として％で示す。距離誤差について結果を見るとほぼゼロになっていることがわかる。角度差についてみると本発明の手法を用いた場合では、最大角度差がBowditch曲線で  0.024°程度、Trochoid曲線は0.005°程度となっているのに対し、従来法の場合、Bowditch曲線では2.0°程度、Trochoid曲線では0.14°程度であった。本発明による方が最大角度差を小さく抑えていることがわかる。なお、表２において＊印は計算時間が0.01秒未満であったことを示している。【０１０３】
【表１】
2009057517.tif 000003
【０１０４】
【表２】
2009057517.tif 000004
【０１０５】
次に、Trochoid曲線について、図１１（ａ）に本発明による補間を行った曲線の曲率線図を、図１１（ｂ）に従来の手法（非特許文献１）で補間を行ったものを、図１１（ｃ）に従来の手法（エルミート補間）で補間を行ったものを示している。【０１０６】
従来の手法（非特許文献１）は補間点に対し制御点を曲線で約二倍、曲面で約三倍にする必要があり、制御点が多くなるために曲線が不必要な振動を起こしている（図１１（ｂ））。その点、本発明による補間では、制御点は補間点とほぼ同数であるためそのような不必要な振動を抑えることができる（図１１（ａ））。【０１０７】
また、従来法では、各点での接線ベクトルの大きさを入力する必要があったが、本発明ではそのような必要はなく、人の介入なしに補間処理の一切をおこなうことができ、処理の自動化ができる。【０１０８】
図１２（ａ）に、図１１（ａ）に示した本発明による補間を行った曲線の曲率線図の一部を拡大したものを示し、図１２（ｂ）に、図１１（ｃ）で示した従来の手法（エルミート補間）で補間を行った曲線の曲率線図の一部を拡大したものを示す。【０１０９】
本発明による補間は三次のＢ−Ｓｐｌｉｎｅ曲線を用いており、三次のＢ−Ｓｐｌｉｎｅ曲線はＣ2連続まで保障されるため曲率が連続になっている（図１２（ａ））（ここで、Ｃ2とは曲率連続性を示し、上記曲線をあらわすＣと区別する）。従来の手法（エルミート補間）は曲率の連続を保証していないために、図中の丸で囲んだ箇所で示すように、曲線の所々で曲率が不連続になっている（図１２（ｂ））。【０１１０】
上記したように本発明による補間は従来方法に比べ曲率が連続で滑らかなな曲線を生成することができる。【０１１１】
次に、三次元の点群(位置、法線情報を含む)よりＢ−Ｓｐｌｉｎｅ曲面を生成する場合について、図１３のフローチャートを用いて説明する。なお、以下の図１３に示すフローチャートは一例であり、本発明の第一の補間処理及び第二の補間処理及び第三の補間処理を実施する工程及び手順であれば他のフローで構成してもよい。【０１１２】
点群から位置をＱ、法線ベクトルをＮ＊として記憶する（Ｓ３１、Ｓ３２）。得られた補間点Ｑiを初期制御点Ｐ0iとして記憶する（Ｓ３３）。制御点Ｐk-1iからＢ−Ｓｐｌｉｎｅ曲面Ｓk-1を生成する。ここで、上付き文字Ｋは補間処理の回数を示している。【０１１３】
以下、Ｓ３５，Ｓ３６に示す第一の補間処理とＳ３７、Ｓ３８に示す第二の補間処理とＳ４２〜Ｓ４４に示す第三の補間処理の中からいずれかの工程を繰り返すことにより点群を位置ならびに法線ベクトルについて補間するＢ−Ｓｐｌｉｎｅ曲面Ｓを生成する。【０１１４】
第一の補間処理において、補間点から曲面Ｓ上に垂線を降ろし垂線の足となる第１の点Ｆkiを求める。なお、曲面Ｓは、初回の補間処理ではＳ３３の工程で得た制御点Ｐ0から生成される曲面Ｓ0であり、二回目以降の補間処理ではＳ４１〜Ｓ４３のいずれかの工程でシフトされた制御点Ｐkiから生成される曲面Ｓkである（Ｓ３５）。補間点Ｑiと垂線の足の第１のＦkiとの距離//Ｑi−Ｆki//（＝Δｄ）を求める（Ｓ３６）。垂線および距離を求める演算は、微分幾何学演算により求めることができる。【０１１５】
次に、第二の補間処理において、各補間点に与えられた法線ベクトルＮi＊と垂線の足の第１の点Ｆkiにおける曲面Ｓの法線ベクトルの角度差Δθを求める（Ｓ３７）。法線ベクトルＮi＊と垂直に交わる接平面と接する曲面上の接点Ｇkiを第２の点として求める（Ｓ３８）。角度差Δθ、および法線ベクトルと垂直に交わる接平面と接する曲面上の点は、微分幾何学演算により求めることができる。【０１１６】
次に、第三の補間処理において、Ｓ３６で求めた距離誤差ΔｄとＳ３８で求めた角度差ΔθからＳ４１〜Ｓ４３の三つの工程の内から一つを選択し実行する。補間点Ｑと曲線との距離誤差Δｄ、法線ベクトル角度差Δθが共にしきい値を満たさない場合には（Ｓ３９，Ｓ４１）、Ｓ１８で求めた曲面上の点Ｇkiから補間点Ｑiに向かうベクトル分だけ、現在の曲面を定義している制御点Ｐk-1iの位置をシフトし、シフトした位置を新たな制御点Ｐkiの位置とする（Ｓ４２）。【０１１７】
補間点Ｑと曲面の距離誤差Δｄはしきい値を満たすが（Ｓ３９）、法線ベクトルの角度差Δθはしきい値を満たさない場合には（Ｓ４０）、Ｓ３８で求めた曲面上の点ＧkiからＳ３５で求めた垂線の足の第１の点Ｆkiへ向かうベクトル分だけ、現在の曲面を定義している制御点Ｐk-1iの位置をシフトし、シフトした位置を新たな制御点Ｐkiの位置とする（Ｓ４４）。【０１１８】
補間点Ｑと曲面の距離誤差Δｄはしきい値を満たさないが（Ｓ３９）、法線ベクトルの角度差はしきい値を満たす場合（Ｓ４１）、Ｓ３５で求めた垂線の足の点Ｆkiから補間点Ｑiへ向かうベクトル分だけ、現在の曲面を定義している制御点Ｐk-1iの位置をシフトし、シフトした位置を新たな制御点Ｐkiの位置とする（Ｓ４３）。制御点をシフトする演算は、幾何学的演算によって求めることができる。【０１１９】
Ｓ３４で求めた曲面Ｓが補間点Ｑiとの距離誤差Δｄ、法線ベクトルＮi＊と垂線の足の第１の点Ｆkiにおける曲面Ｓの法線ベクトルの角度差Δθ、がそれぞれのしきい値を満たすまでＳ３４〜Ｓ４４までの工程を繰り返す。距離誤差、角度差のしきい値は、それぞれ点群を補間する曲面に対する距離誤差に対して許容できる許容距離誤差、法線の角度差に対して許容できる許容法線ベクトル角度差に相当する。【０１２０】
したがって、Ｓ３９、Ｓ４０、Ｓ４１の比較工程において距離誤差、法線ベクトルの角度差がしきい値を満たすことを確認することで、曲面Ｓは点群を与えた位置ならびに法線ベクトルについて許容誤差範囲内で補間するものとする。【０１２１】
本発明の一適用例としてオフセット曲線・曲面への適用がある。本発明を利用することにより、オフセット曲線・曲面をＢ−Ｓｐｌｉｎｅ曲線・曲面で表現する場合の精度向上が図ることができる。【０１２２】
オフセット曲線・曲面とは、ある曲線・曲面を法線方向へ一定の距離シフトした曲線・曲面である。一般的に市販されているＣＡＤ／ＣＡＭソフトウェアには必ずプルダウンメニューとしてオフセット機能が装備されており、現実にＮＣ切削加工などで入力したＣＡＤ/ＣＡＭデータから工具半径を考慮した工具中心の軌跡すなわちツールパスを求めるときに、ＣＡＤ／ＣＡＭデータ上の曲線・曲面のオフセット曲線・曲面が用いられる。ここで、一般にオフセット曲線・曲面は多項式で表現できないため、区分多項式で表現されるＢ−Ｓｐｌｉｎｅ曲線・曲面では直接表現することができない。この場合、オフセット曲線・曲面を一定の点群としてサンプリングを行い、得られた点群をＢ−Ｓｐｌｉｎｅ曲線・曲面で補間するという作業が必要である。このとき、オフセット曲線・曲面はその性質上容易にサンプリングした点での法線が取り出せるので、位置のみではなく法線ベクトルについてもＢ−Ｓｐｌｉｎｅ曲線・曲面で補間することで、よりオフセット曲線・曲面に近いＢ−Ｓｐｌｉｎｅ曲線・曲面を得ることや、必要なサンプリング点を減少させることができる。この法線を含めたＢ−Ｓｐｌｉｎｅ曲線・曲面の補間を行うときに、本発明を用いることで不必要な振動の少ない高品質の曲線が得られ、ＣＡＤ/ＣＡＭソフト上のオフセット機能の精度の向上が図られる。また、接線ベクトルの大きさを必要としないので、人の介入なく自動で補間処理を行うことができる。【０１２３】
別の適用例として、ＣＡＤ/ＣＡＭ上でモデリングを行うときに、位置のほかその位置における法線を指定する機能の実装に導入することがあげられる。現在ＣＡＤ/ＣＡＭモデルを作成するプロセスでは、位置指定のみを行うのが一般的である。よって、位置情報のみを操作してデザインや仕様の変更を行う必要がある。ここで、位置のみならず法線に対して曲線・曲面を補間することができれば、法線情報を指定する機能を付加することができ、操作可能なパラメータを増やすことができるため、設計の自由度をあげることができる。【０１２４】
本発明を用いることで、人の介入なく自動で補間処理を行うことができ、また、曲線・曲面を曲率連続で不必要な振動の少ない高品質なものとすることができる。
【産業上の利用可能性】
【０１２５】
本発明は、ＣＡＤ・ＣＡＭモデリングの分野、ＮＣ加工等に適用することができる。
【図２】
2009057517.tif 000005
【図３】
2009057517.tif 000006
【図４】
2009057517.tif 000007
【図５】
2009057517.tif 000008
【図６】
2009057517.tif 000009
【図７】
2009057517.tif 000010
【図８】
2009057517.tif 000011
【図９】
2009057517.tif 000012
【図１２】
2009057517.tif 000013
【図１３】
2009057517.tif 000014
【図１】
2009057517.tif 000015
【図１０】
2009057517.tif 000016
【図１１】
2009057517.tif 000017
【国際調査報告】
2009057517.tif 000018
2009057517.tif 000019