どのように求心キャットマル-Romのスプラインに動作しますか?
質問
キャットマルに関する最も詳細な情報を持っていると思われるこのサイトに、から-ROMスプラインは、4ポイントはスプラインを作成するために必要とされているようです。しかし、それは点P0、P3はP1とP2の間の値にどのように影響するかを言及していない。
私が持っているもう一つの問題は、どのように継続的なスプラインを作成しているのですか?それは、P1、P2は、P4 = P2(つまり、私たちはP0、P1、P2、P3、P4、P5、P6、...、pNのを持っていると仮定すると、あることによってP5 P4に連続してポイントを定義するのと同じくらい簡単になります)。
より一般的な質問は、1つのキャットマル - ロムスプライン上の接線を求めるだろうかありますか?それは、位置が、これらの入力値を与える座標与えられ、(0.011、0.01で言う)スプライン上の2点を取り、ピタゴラスに基づいて接線を取得関与する必要はありますか?
解決
式2を見てください - それは、コントロールポイントがラインにどのような影響を与えるかについて説明します。あなたはポイントP0
とP3
がP1
からP2
に曲線に沿ってポイントをプロットするための方程式に入る見ることができます。式はP1
を与えることをあなたはまた、表示されますときt == 0
とP2
ときt == 1
ます。
この例で方程式を一般化することができます。あなたがポイントR0
、R1
、... RN
を持っているなら、あなたはRK
、RK + 1
、P0 = RK - 1
とP1 = RK
と式2を使用してP2 = RK + 1
とP3 = RK + 2
の間に点をプロットすることができます。
あなたがR0
とR1
ためで立つために余分な制御点を追加しない限りRN - 1
するRN
またはR - 1
からするRN + 1
からプロットすることはできません。一般的なアイデアは、あなたが自分でスプラインを計算するために、すべてのパラメータを与えるために列の先頭と末尾に追加したいものは何でもポイント選ぶことができるということです。
あなたはそれらの間の制御点のいずれかをドロップすることにより、2つのスプラインに参加できます。 、R0
、あなたがR1
、RN
、...、S0
とS1
を持っていると言う... SM
彼らはR0
、R1
、...、RN - 1
、S1
、S2
、... SM
に参加することができます。
の任意の点における接線を計算するだけで式(2)の導関数を取る。
他のヒント
href="http://en.wikipedia.org/wiki/Cubic_Hermite_spline"はWikipediaの記事をrel="noreferrer">
特定キャットマル-Romの形態では、中間点での接線ベクトルは、隣接する制御点の位置によって決定されます。このように、複数の点を通るC1連続スプラインを作成するためには、最初と最後の制御点に制御点と接線ベクトルのセットを供給するのに十分です。 P0とPNにおける接線ベクトルのP0 - - 私は、標準的な動作は、P1を使用することだと思います。PNのPN-1 Wikipediaの記事によると、制御点Pnので接線を計算するために、あなたはこの式を使用します: また、これはあなたの最初の質問に答えます。 4制御点、P1、P2、P3、P4の組のために、P2とP3の間の値を補間すると、すべての4つの制御点を形成する情報を必要とします。 P2とP3自体が補間セグメントが通過しなければならないエンドポイントを定義します。 P1およびP3は、補間セグメントが点P2に有することになる接線ベクトルを決定します。 P4とP2は、セグメントは、点P3で有することになる接線ベクトルを決定します。制御点P2とP3の影響、それらの間の補間セグメントの形状における接線ベクトルT(n) = (P(n - 1) + P(n + 1)) / 2