0

1)P0からPNまでのスプライン制御点がたくさんあります。
2)スプライン基底行列があります。

2つの制御点インデックスと値が与えられた場合、補間された位置を取得するために基底行列を適用するにはどうすればよいですか?

今、私は次のフォームを見続けます:

                [b00, b01, b02, b03] [p0]
                [b04, b05, b06, b07] [p1]
[t^3, t^2, t, 1][b08, b09, b10, b11].[p2]
                [b12, b13, b14, b15] [p3]

したがって、p0などが私のコントロールポイントであると想定しています。また、これはコンポーネント(つまり、x、y、z)ごとであると想定しています。ただし、t値で何をしているのか完全にはわかりません。

誰かが私のためにこれを説明できますか?私はおそらくばかです:)

私はC++を使用していて、数学のクラスがたくさんあるので、数学を拡張したくありません。何が起こっているのかを理解する方がはるかに便利です。

4

1 に答える 1

1

はい、それはコンポーネントごとなので、各pは単一の数値です。これらは、4つの連続するコントロールポイントのx座標(たとえば)です。

あなたの行列は、通常の行列乗算という3つの行列の積にすぎません。つまり、合計です:t ^ 3.(b00.p0 + b01.p1 + ...)+ t ^ 2.(b04.p0 + b05.p1 + ...)+など。これが、指定された値での座標値です。 tの。(もちろん、t ^ 3は、Cのようにt XOR 3ではなく、t * t * tを意味します。)

tの値の範囲は、通常、スプラインの各セグメントで0から1になります。その場合、b値は、あるセグメントのt = 1の値が、次のセグメントのt = 0の値と等しくなるようになります(したがって、最初のセグメントの最初の制御点、または最後の制御点に依存しません)。次の)。

于 2011-02-26T16:42:11.297 に答える