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 都是一个数字。它们是四个连续控制点的 x 坐标(例如)。

你的矩阵东西只是三个矩阵的乘积:普通矩阵乘法。所以这是一个总和: t^3.(b00.p0+b01.p1+...) + t^2.(b04.p0+b05.p1+...) + 等等。这是给定值的坐标值吨。(当然,t^3 表示 t*t*t 而不是 C 中的 t XOR 3。)

在样条曲线的每一段上,t 值的范围通常为 0 到 1。然后 b 值将使得一个段的 t=1 处的值等于下一个段的 t=0 处的值(因此不依赖于第一段的第一个控制点或最后一个控制点下一个)。

于 2011-02-26T16:42:11.297 回答