1)我有一堆样条控制点,范围从P0到PN 2)我有一个样条基矩阵。
如果给定2个控制点索引和t值,如何应用基矩阵来获得插值位置?
现在我一直看到以下表格:
[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 ++,并且有很多数学课程,所以我宁愿不把数学扩展出来。了解正在发生的事情会更有用。
答案 0 :(得分:1)
是的,它是每个组件,所以每个p都是一个数字。它们是四个连续控制点的x坐标(例如)。
你的矩阵事物只是三个矩阵的乘积:普通矩阵乘法。所以这是一个总和:t ^ 3.(b00.p0 + b01.p1 + ...)+ t ^ 2.(b04.p0 + b05.p1 + ...)+等等这是你给定值的坐标值of。 (当然,(t ^ 3表示t * t * t而不是C中的X XOR 3。)
在样条曲线的每个段上,t的值范围通常为0到1。那么b值将使得一个段的t = 1处的值等于下一个段的t = 0处的值(因此不依赖于第一段的第一控制点或最后一个控制点)下一个)。