ナチュラルキュービックスプライン、エルミートスプライン、ベジエスプライン、Bスプラインの違いは何ですか?
1. 序章
1970年代と1990年代の車を見ると、デザインには大きな違いが1つあります。 70年代のものは箱型で、90年代のものは曲がりくねっています。 それ以来、車はますます曲がりくねり、美的にとても魅力的になりました!
米国のガソリン価格は60年代に低かったが、ヨーロッパでは常に燃料がより高価であった。 1962年、ルノーのエンジニアであるピエールベジェと、シトロエンの数学者であるポールデカステリョウは、滑らかな曲線と表面にフィットするベジェ曲線を独自に開発し、ボディの合理化と燃費の向上を実現しました。
このチュートリアルでは、区分的多項式補間の基礎となる数学を理解し、これらのオブジェクトで実行できるいくつかの優れた機能を探ります。
2. 多項式を点またはベクトルとして考える
多項式は、すべての科学と数学における近似の基本的な手段です。 多項式の理解を確認してみましょう。 次数の多項式は、入力として実数を取り、それを別の実数にマップする関数です。ここで、。 ただし、数学の多項式は特別なオブジェクトであり、多項式空間のベクトルです。
これを少し開梱しましょう。 ベクトルを想像すると、学部の物理学の授業で幾何学的な矢印が表示されます。 そして、それは完全にクールです!
次元空間内の任意の幾何学的ベクトルは、基底ベクトルとの線形結合として記述できることがわかっています。 2つのベクトルの加算はコンポーネントごとに定義され、結果もベクトルになります。 スカラー乗法は、コンポーネントごとに、として定義されます。
せいぜい次数のすべての多項式のコレクションについて考えてください:
セット内の多項式は、D空間の幾何学的ベクトルと同型です。 任意の次数の多項式は、基底多項式との線形結合として表すことができます。 これらの基底多項式は、単位ベクトルの役割を果たします。
このように見ると、多項式は3つの成分に分解できます:、、。 高校の数学から、多項式もコンポーネントごとに追加されることがわかります。
D空間に対する点またはベクトルとは、多項式は多項式空間に対するものです。
次元空間にはさまざまな基底ベクトルを選択できます。 ベクトル、、は-spaceの基底ベクトルでもあります。 などの任意のベクトルを選択します。 これは、新しい基底ベクトルの線形結合として表すことができます。
この強力なアイデアは、多項式のセットにも引き継がれます。
、およびは、の基底多項式の別のセットです。 ここで、などの任意の多項式を選択すると、次のように線形結合として表すことができます。
3. 区分的多項式補間の場合
多項式補間の問題を確認してみましょう。 基礎となる関数が不明であるか、場合によっては高価な関数があります。 関数の値は、データポイントの有限サブセットを除いて、区間では不明です。
未知の関数または高価な関数を多項式で近似することに関心があります。
解析幾何学から、2つの点が直線を決定し、3つの点が次数の放物線を一意に決定することがわかります。 一般に、データポイントを通過する次数の一意の補間多項式があります。
対照的に、区分的多項式補間では、複数のセグメントで構成される区分的関数を作成します。 thセグメントは、点間を補間し、多項式を使用します。
3.1. ルンゲ現象
点を持つ等距離グリッド上の内挿によって決定された関数の近似を考えてみましょう。
等距離グリッドから取得された次数多項式のグラフは、のグラフとは異なり、グリッドポイント間で激しく変動します。 補間による誤差は、特に端点の近くでは大きく、中心の近くではかなり小さくなります。
区分的多項式を使用すると、等距離のデータを恐れる必要はありません。
4. バーンスタイン多項式とベジェ曲線
ベジェ曲線は、コンピュータグラフィックスと計算幾何学で全知です。 これらの曲線がどのように作成されるかの簡単な背景は次のとおりです。
ある時点から1秒以内に直線で移動するスペースシャトルについて考えてみます。 任意の時間における宇宙船の位置を計算してみましょう。 ポイントは、直線を比率で分割します。 セクション式により、点の座標は次のように与えられます。
これは、宇宙船の運動のパラメトリック方程式です。 ポイントと直線パスがどのように見えるかを制御するため、これらはコントロールポイントと呼ばれます。
と仮定すると、ポイント、、があります。 青い粒子が直線上でに向かって移動し、緑の粒子がに向かって移動することを想像してみてください。 3番目の赤い粒子が青と緑の粒子を結ぶ直線に沿って移動するとします。
赤い粒子の軌道をどのように計算できますか? セクション式を二重に適用すると、次のようになります。
しかし、先ほど見たように、、は単位ベクトルのようなものです。 すべての2次曲線は、、、およびのさまざまな線形結合を選択することで生成できます。 したがって、点、および放物線がどのように見えるかを制御します。
基本多項式:
バーンスタイン基底多項式と呼ばれます。 制御点に対応する2次曲線は、2次ベジェ曲線と呼ばれ、次の式で与えられます。
二次ベジェ曲線は点との間を補間しますが、は曲線から外れた点です。
コンピュータグラフィックス(CG)愛好家は、カーブ上のポイントなどのオフカーブポイントのコントロールポイントという用語を予約し、アンカーポイントとしてオンカーブポイントを参照します。 Adobe IllustratorなどのCGエディターでは、すべてのコントロールポイントが事前にわかっているわけではありません。 二次曲線の形状は、曲線が目的の形状になるまでペンツール(ベジェツール)を使用して制御点の周りを移動することによって制御されます。 したがって、バーンスタイン基底を使用して次数多項式を表すことは有利です。 移動は、カーブに直接かつ直感的な効果をもたらします。
TrueTypeフォントまたは車体のデザインをレンダリングする場合、いくつかのベジェ曲線またはパッチをチェーンすることにより、滑らかな曲線または表面が構築されます。
5. エルミート基底多項式とキュービックエルミート補間
エルミート補間を使用すると、2つのデータポイントとこれらの2つのポイントでの接線の傾きで任意の3次多項式を表現できます。
特定の制約下での粒子の物理的運動を分析することにより、エルミート多項式の方程式を導き出します。 パラメトリック方程式で与えられる経路を横切る粒子を想像してみましょう。ここで、は時間を示します。 この関数の一次導関数はです。
時々粒子の位置、そして知られています。 時々粒子の動きの方向、そしてまた知られています。 我々は持っています:
行列形式では、次のように書くことができます。
したがって:
その結果:
本質的に、2つのデータポイントと、およびこれらのポイントとの傾きによって決定される一意の3次曲線を見つけることができました。
6. スプライン関数
最も一般的な区分的多項式補間はスプライン関数を使用します。 数学的には、グリッド上の次数のスプライン:
ノットとも呼ばれるデータポイントの数は、サブカーブをつなぎ合わせます。 各サブカーブは、2つの連続するノットポイント間を補間します。 各サブカーブは次数多項式です。
追加の要件は、次数のスプライン全体が時間微分可能でなければならず、さらにその導関数が連続でなければならないということです。 この要件の結果については、さらに詳しく説明します。
スプラインのセグメントには、直線と放物線を使用できます。 ただし、ポリラインには鋭いコーナーがあるため、線形スプラインはノットポイントで微分できません。 二次曲線には一定の二階導関数があります。 二次曲線を使用する場合、ノットの近くの1つのセグメントの曲線は、前のセグメントの曲線と一致しません。したがって、スプラインのセグメントに最も一般的な選択肢は、三次曲線です。
6.1. キュービックスプライン補間
3次スプラインは、次数の3次多項式を使用して、連続するノット間を補間します。 3次スプライン補間は次の条件を満たす。
- 区間の各ピースまたはセグメントは3次多項式です。
- それぞれについて。
- 、 と 。
条件(3)は、スプライン全体が時間微分可能であり、これらの導関数が連続でなければならないという要件の単なる翻訳です。 大まかな概算として、連続曲線は、紙からペンを持ち上げることなく描画できる曲線であることがわかっています。 の個々のセグメントは3次多項式であるため、それ自体が連続しています。 唯一の考慮事項は、ノットポイントでの連続性です。
曲線が任意のノットポイントで連続するためには、左からアプローチするか、右からアプローチするかに関係なく、スプライン関数がに近づく必要があります。 左のピースがで、右のピースがであるとします。 これは動機付けです。 一次導関数と二次導関数についても同様の議論が続きます。なぜなら、それらを連続的にしたいからです。
6.2. キュービックスプラインの構築
サブインターバルに分割されたインターバルで3次スプライン補間を構築するには、セグメントが必要です。 条件(1)に沿って、セグメントは次の形式の3次多項式です。
(1)
定数があります。 したがって、定数の値を決定する必要があります。
の1次および2次導関数は次の式で与えられます。
だから、、、。 また、数量が頻繁に表示されるので、とします。 条件(2)と(3)を適用すると、次のようになります。
それぞれについて。 式(4)でS0lvingを実行し、この値を式(2)および(3)に代入すると、それぞれに新しい式が得られます。
最終的な関係は、最初に方程式(5)を解くことによって得られます。
(7)
次に、インデックスを減らして、。 これは与える:
(8)
これらの値を(6)から導出された方程式に代入し、インデックスを1つ減らして、線形連立方程式を作成します。
(9)
それぞれについて。 このシステムには、未知数のみが含まれます。 との値は、それぞれノットの間隔とノットポイントでの値によって与えられます。 の値が決定されたら、式(4)および(6)から残りの定数を見つけるのは簡単な作業です。
6.3. ナチュラルキュービックスプライン
前の議論から生じる未解決の質問は、未知数を含む線形方程式のシステムの解が存在するかどうか、もしそうなら、それはユニークであるかということです。
2つの自然境界条件を追加すると、次のようになります。
次に、を取得します。 これにより、ガウスの消去法を使用して解くことができる、優れた三重対角連立方程式が得られます。
簡単な数値例は、これらのアイデアを具体化するのに役立つはずです。 データポイント、、、が与えられ、関数を近似する3次スプラインを形成するとします。 したがって、行列とベクトルは次の形式になります。
結果の3次スプライン曲線は次の式で与えられます。
6.4. 異なる区分的多項式補間法の比較
それぞれの内挿法には長所と短所があります。
自然な3次スプラインセグメントは、前のセグメントからの位置、1次導関数、および2次導関数を想定しています。 したがって、曲線全体とその最初の2つの導関数は連続しています。 ただし、セグメントを変更すると、曲線全体が変更されます。 したがって、コントロールはローカルではありません。
Bスプライン曲線は、その制御点を補間する必要はありません。 自然スプラインやベジェ曲線とは異なり、各セグメントは基底関数のみの加重和です。ここで、は曲線の次数であり、ポイントにローカル制御を与えます。 したがって、連続性とローカル制御を備えた大きなモデルを作成するには、3次Bスプラインを使用する必要があります。
さまざまな区分的手法の違いを以下に要約します。
7. アプリケーション
現在、スプライン関数は、車体表面をレンダリングするためのコンピューター支援設計(CAD)ソフトウェアで広く使用されています。 複雑な表面は、手の技術をはるかに超えてモデル化できます。
ベジェ曲線は、コンピュータグラフィックスやタイポグラフィで使用されています。 キュービックベジェ曲線は、AdobePostscriptフォントのネイティブ曲線形式です。 これらの曲線は数学的に指定されているため、無限にスケーラブルです。
ベジェ曲線と同様に、ベジェサーフェスは制御点のメッシュによって定義されます。
小さなアプリケーションとして、ベジェ曲面を使用したパステルカラーのユタティーポットの表現を次に示します。
ユタティーポットは、コンピュータグラフィックス業界のアイコンです。 これは、ベジェ曲線を使用してモデル化された最初のコンピュータグラフィックスオブジェクトの1つでした。 ユタティーポットのコントロールポイントおよびベジェパッチは公開されています。
8. 結論
この記事では、区分的補間のいくつかの基本的な方法を学びました。 二次ベジェ曲線は、2つのデータポイントと1つのコントロールポイントによってパラメーター化されます。 キュービックエルミート曲線は、2つの端点と端点の接線勾配によってパラメーター化されます。
データポイントのグリッド上の次数のスプライン関数にはセグメントがあり、各セグメントは次数の多項式であり、その1次導関数は連続です。 自然3次スプラインは次数のスプラインであり、スプラインが最初と最後のデータポイントの近くで直線であるという境界条件があります。 を満たします。