二、参数曲线、曲面


1.曲线、曲面的显/隐示表达

(1)曲线:

  • 显示表达:
    { y = f ( x ) z = g ( x ) \left\{ \begin{array}{} y=f(x) \\ z=g(x) \\ \end{array} \right. {y=f(x)z=g(x)
  • 隐示表达:
    { f ( x , y , z ) = 0 g ( x , y , z ) = 0 \left\{ \begin{array}{} f(x,y,z)=0 \\ g(x,y,z)=0 \\ \end{array} \right. {f(x,y,z)=0g(x,y,z)=0

(2)曲面:

  • 隐示表达:
    f ( x , y , z ) = 0 f(x,y,z)=0 f(x,y,z)=0

2. 曲线、曲面的参数表示

  • 曲线:(t为参数,且 t ∈ [ a , b ] t\in [a,b] t[a,b],每一个确定的t值可以确定一个曲线的点,为了将区间规范成 t ∈ [ 0 , 1 ] t\in [0,1] t[0,1],可变换参数 t ′ = ( t − a ) / ( b − a ) t'=(t-a)/(b-a) t=(ta)/(ba)) 。
    { x = x ( t ′ ) y = y ( t ′ ) z = z ( t ′ ) \left\{ \begin{array}{} x=x(t') \\ y=y(t') \\ z=z(t') \end{array} \right. x=x(t)y=y(t)z=z(t)
  • 矢量形式:
    P = P ( t ) , t ∈ [ 0 , 1 ] , P = [ x , y , z ] T P=P(t),t\in[0,1],P=[x,y,z]^T P=P(t),t[0,1],P=[x,y,z]T
    eg1.直线段 P 1 , P 2 P_1,P_2 P1,P2的参数方程: P = P 1 + ( P 2 − P 1 ) t , t ∈ [ 0 , 1 ] P=P_1+(P_2-P_1)t,t\in[0,1] P=P1+(P2P1)t,t[0,1]
    eg2.圆的参数方程:
    { x = x 0 + R c o s θ y = y 0 + R s i n θ \left\{ \begin{array}{} x=x_0+Rcos\theta \\ y=y_0+Rsin\theta \\ \end{array} \right. {x=x0+Rcosθy=y0+Rsinθ
  • 将坐标变量表示成两个参数u和v的形式,则可以得到曲面的参数方程:
    { x = x ( u , v ) y = y ( u , v ) z = z ( u , v ) , u ∈ [ 0 , 1 ] , v ∈ [ 0 , 1 ] \left\{ \begin{array}{} x=x(u,v) \\ y=y(u,v) \\ z=z(u,v) \end{array} \right.,u\in[0,1],v\in[0,1] x=x(uv)y=y(uv)z=z(uv),u[0,1],v[0,1]
    也可写作:
    P = P ( u , v ) , u ∈ [ 0 , 1 ] , v ∈ [ 0 , 1 ] P=P(u,v),u\in[0,1],v\in[0,1] P=P(u,v),u[0,1],v[0,1]
    曲面面片的四个角为 P ( 0 , 1 ) , P ( 1 , 0 ) , P ( 1 , 1 ) , P ( 0 , 0 ) P(0,1),P(1,0),P(1,1),P(0,0) P(0,1),P(1,0),P(1,1),P(0,0),四条边界线为: P ( 0 , v ) , P ( u , 0 ) , P ( u , 1 ) , P ( 1 , v ) P(0,v),P(u,0),P(u,1),P(1,v) P(0,v),P(u,0),P(u,1),P(1,v).

2.常用参数曲线

2.1 空间曲线

  • 对于平面二次曲线,其方程:
    f ( x , y ) = a x 2 + 2 b x y + c y 2 + 2 d x + 2 e y + f = 0 f(x,y) = ax^2+2bxy+cy^2+2dx+2ey+f=0 f(x,y)=ax2+2bxy+cy2+2dx+2ey+f=0.
    Δ = ∣ a b b c ∣ \Delta=\left|\begin{array}{} a & b\\ b & c \end{array}\right| Δ= abbc ,若 Δ > 0 \Delta>0 Δ>0, f ( x , y ) f(x,y) f(x,y)为椭圆;若 Δ = 0 \Delta=0 Δ=0, f ( x , y ) f(x,y) f(x,y)为抛物线;若 Δ < 0 \Delta<0 Δ<0, f ( x , y ) f(x,y) f(x,y)为双曲线。
    平面二次曲线的矩阵形式可写为:
    f ( x , y ) = P Q P T = 0 f(x,y) = PQP^T=0 f(x,y)=PQPT=0
    其中 P = [ x , y , 1 ] , Q = [ a b d b c e d e f ] P=[x,y,1],Q=\left[ \begin{array}{} a& b & d\\ b& c& e\\ d& e& f\\ \end{array} \right] P=[x,y,1],Q= abdbcedef

2.2 多项式参数曲线

(1)n次曲线的一般表示形式为:
{ x ( t ) = a n x t n + . . . + a 1 x t + a 0 x y ( t ) = a n y t n + . . . + a 1 y t + a 0 y z ( t ) = a n z t n + . . . + a 1 z t + a 0 z \left\{ \begin{array}{} x(t) = a_{nx}t^n+...+a_{1x}t+a_{0x} \\ y(t) = a_{ny}t^n+...+a_{1y}t+a_{0y} \\ z(t) = a_{nz}t^n+...+a_{1z}t+a_{0z} \\ \end{array} \right. x(t)=anxtn+...+a1xt+a0xy(t)=anytn+...+a1yt+a0yz(t)=anztn+...+a1zt+a0z
矢量形式:
P ( t ) = [ x ( t ) y ( t ) z ( t ) ] = [ t n , . . . , t , 1 ] [ a n x a n y a n z . . . a 1 x a 1 y a 1 z a 0 x a 0 y a 0 z ] = T ⋅ A P(t)=\left[ \begin{array}{c} x(t)\\ y(t)\\ z(t) \end{array} \right]= \left[ t^n,...,t,1\right] \left[ \begin{array}{} a_{nx} & a_{ny} & a_{nz} \\ . & . &.\\ a_{1x} & a_{1y} & a_{1z}\\ a_{0x} & a_{0y} & a_{0z}\\ \end{array} \right] = T \cdot A P(t)= x(t)y(t)z(t) =[tn,...,t,1] anx.a1xa0xany.a1ya0yanz.a1za0z =TA
也可写作 P ( t ) = T ⋅ M ⋅ B P(t)=T \cdot M \cdot B P(t)=TMB,T为t次项,M为系数,B为端点(带入点)列。

2.3 Bezier 曲线

(1)Define:
P ( t ) = ∑ i = 0 n P i B i , n ( t ) , 0 ≤ t ≤ 1 P(t)=\sum\limits_{i=0}^{n}{P_iB_{i,n}(t)},0\le t\le1 P(t)=i=0nPiBi,n(t),0t1
B i , n ( t ) = n ! i ! ( n − i ) ! t i ( 1 − t ) n − i = C n i t i ( 1 − t ) n − i , i = 0 , 1 , . . . , n B_{i,n}(t)=\frac{n!}{i!(n-i)!}t^i(1-t)^{n-i}=C_{n}^{i}t^i(1-t)^{n-i},i=0,1,...,n Bi,n(t)=i!(ni)!n!ti(1t)ni=Cniti(1t)ni,i=0,1,...,n
其中, P i P_i Pi为该曲线的控制顶点, B i , n ( t ) B_{i,n}(t) Bi,n(t)是Bernstein基函数,各点位置的调和函数。3次bezier曲线如下图
在这里插入图片描述
(2)Bernstein基函数性质

  • 非负
  • 权性,二项式和为1。 ∑ i = 0 n B i , n ( t ) = 1 \sum\limits_{i=0}^{n}{B_{i,n}(t)}=1 i=0nBi,n(t)=1
  • 对称。 B i , n ( t ) = B n − i , n ( 1 − t ) B_{i,n}(t)=B_{n-i,n}(1-t) Bi,n(t)=Bni,n(1t)
  • 递推。 B i , n ( t ) = ( 1 − t ) B i , n − 1 ( t ) + t B i − 1 , n − 1 ( t ) B_{i,n}(t)=(1-t)B_{i,n-1}(t)+tB_{i-1,n-1}(t) Bi,n(t)=(1t)Bi,n1(t)+tBi1,n1(t)
  • 可导。

(3)Bezier曲线计算

  • 可由参数多项式曲线计算(Ref above)。
    (a)一次Bezier:
    在这里插入图片描述
    (b)二次:
    在这里插入图片描述

  • 使用基于Bernstein基函数递推特性的De Casteljau算法。
    递推特性
    在这里插入图片描述

对于三次Bezier曲线的计算,过程如下图
在这里插入图片描述
思路: P 0 1 为 P 0 和 P 1 P_0^1为P_0和P_1 P01P0P1 t k t_k tk分位点,即 P 0 1 = t P 0 + ( 1 − t ) P 1 P_0^1=tP_0+(1-t)P_1 P01=tP0+(1t)P1。同理可依次按顺序求出 P 0 1 , P 1 1 , P 2 1 P_0^1,P_1^1,P_2^1 P01,P11,P21,再依次往下一层计算。最后求得 P ( t k ) = P 0 3 , t = t 1 , t 2 , . . . , t n , t ∈ [ 0 , 1 ] P(t_k)=P_0^3,t=t_1,t_2,...,t_n,t \in[0,1] P(tk)=P03,t=t1,t2,...,tn,t[0,1]
在这里插入图片描述

  • 缺点:
    1.特征多边形的顶点个数决定Bezier曲线的阶数。
    2.Bezier曲线不能做局部的修改,改变任意一个特征点都会导致整个曲线的变化。
  • 改进:
    使用B样条基函数代替Bernstein基函数:即B样条曲线。

2.4 B样条曲线

(1)Define:
P ( t ) = ∑ i = 0 n P i N i , k ( t ) , 0 ≤ t ≤ 1 P(t)=\sum\limits_{i=0}^{n}{P_iN_{i,k}(t)},0\le t\le1 P(t)=i=0nPiNi,k(t),0t1 k ∈ [ 2 , n + 1 ] 且为整数 , k − 1 为次数, n + 1 为控制点个数 k\in[2,n+1]且为整数,k-1为次数,n+1为控制点个数 k[2,n+1]且为整数,k1为次数,n+1为控制点个数
N i , k ( t ) = t − t i t i + k − 1 − t i N i , k − 1 ( t ) + t i + k − t t i + k − t k + 1 N i + 1 , k − 1 ( t ) , t ∈ [ t k , t n + 1 ] N_{i,k}(t)=\frac{t-t_i}{t_{i+k-1}-t_i}N_{i,k-1}(t)+\frac{t_{i+k}-t}{t_{i+k}-t_{k+1}}N_{i+1,k-1}(t),t\in[t_k,t_{n+1}] Ni,k(t)=ti+k1tittiNi,k1(t)+ti+ktk+1ti+ktNi+1,k1(t),t[tk,tn+1]
N i , 1 ( t ) = { 1 , t ∈ [ t i , t i + 1 ] 0 , e l s e ,规定 0 0 = 0 N_{i,1}(t)=\left \{ \begin{matrix}{} 1,& t \in[t_i,t_{i+1}]\\ 0,& else \\ \end{matrix} \right.,规定 \frac{0}{0}=0 Ni,1(t)={1,0,t[ti,ti+1]else,规定00=0
其中, P i P_i Pi为该曲线的控制顶点, N i , k ( t ) N_{i,k}(t) Ni,k(t)是Bernstein基函数,i为第i个矢量点,k为k个矢量点,k个矢量点对应的曲线阶数为k-1。

  • 其中 t i t_i ti称为节点, T = [ t 0 , t 1 , . . . , t n + k + 1 ] T=[t_0,t_1,...,t_{n+k+1}] T=[t0,t1,...,tn+k+1]构成k次B样条函数的矢量结点,n为n+1个控制点,k为次参数, k ∈ [ 2 , n + 1 ] 且为整数 k\in[2,n+1]且为整数 k[2,n+1]且为整数.节点沿着参数轴等距分布时,为均匀B样条函数;当节点沿着参数轴非均匀分布时,为非均匀分布B样条函数。
  • N i , k ( t ) N_{i,k}(t) Ni,k(t)在每个非零区间 [ t i , t i + 1 ] [t_i,t_i+1] [ti,ti+1]上都是次数不高于k的多项式,而在整个参数轴上为分段多项式。
  • 分段多项式在端点处具有连续性,且k-1次样条曲线只被相邻的k个点所控制
  • 递推关系,举例:

(2) 一次均匀B样条 第 i 段一次B样条曲线方程: P i , 2 ( t ) = P i N 0 , 2 ( t ) + P i + 1 N 1 , 2 ( t ) = [ N 0 , 2 ( t ) , N 1 , 2 ( t ) ] [ P i P i + 1 ] = [ t , 1 ] [ − 1 1 1 0 ] [ P i P i + 1 ] , t ∈ [ 0 , 1 ] P_{i,2}(t)=P_iN_{0,2}(t)+ P_{i+1}N_{1,2}(t)=[N_{0,2}(t), N_{1,2}(t)]\left[ \begin{array}{} P_i\\ P_{i+1} \end{array} \right]= [t ,1]\left[ \begin{array}{} -1& 1\\ 1&0 \end{array} \right]\left[ \begin{array}{} P_i\\ P_{i+1} \end{array} \right],t\in[0,1] Pi,2(t)=PiN02(t)+Pi+1N12(t)=[N02(t),N12(t)][PiPi+1]=[t,1][1110][PiPi+1],t[0,1]
以均匀二次B样条曲线的例子展示其求解过程的两种方法
(3)1. 均匀二次(公式推导法)
(Step1) 根据B样条曲线公式:
P ( t ) = ∑ i = 0 n P i N i , k ( t ) , 0 ≤ t ≤ 1 P(t)=\sum\limits_{i=0}^{n}{P_iN_{i,k}(t)},0\le t\le1 P(t)=i=0nPiNi,k(t),0t1
写出二次B样条曲线(样条曲线的每一段):
P ( t ) = P 0 N 0 , 3 ( t ) + P 1 N 1 , 3 ( t ) + P 2 N 2 , 3 ( t ) + P 3 N 3 , 3 ( t ) , 0 ≤ t ≤ 1 P(t)=P_0N_{0,3}(t)+P_1N_{1,3}(t)+P_2N_{2,3}(t)+P_3N_{3,3}(t),0\le t\le1 P(t)=P0N0,3(t)+P1N1,3(t)+P2N2,3(t)+P3N3,3(t),0t1
且根据递推性 N i , k ( t ) = t − t i t i + k − 1 − t i N i , k − 1 ( t ) + t i + k − t t i + k − t k + 1 N i + 1 , k − 1 ( t ) , t ∈ [ t k , t n + 1 ] N_{i,k}(t)=\frac{t-t_i}{t_{i+k-1}-t_i}N_{i,k-1}(t)+\frac{t_{i+k}-t}{t_{i+k}-t_{k+1}}N_{i+1,k-1}(t),t\in[t_k,t_{n+1}] Ni,k(t)=ti+k1tittiNi,k1(t)+ti+ktk+1ti+ktNi+1,k1(t),t[tk,tn+1]
明显我们需要求出 N 0 , 3 ( t ) , N 1 , 3 ( t ) , N 2 , 3 ( t ) , N 3 , 3 ( t ) 和 N 0 , 2 ( t ) , N 1 , 2 ( t ) , N 2 , 2 ( t ) , N 3 , 2 ( t ) 和 N 0 , 1 ( t ) , N 1 , 1 ( t ) , N 2 , 1 ( t ) , N 3 , 1 ( t ) , N 4 , 1 ( t ) . . . N_{0,3}(t),N_{1,3}(t),N_{2,3}(t),N_{3,3}(t)和N_{0,2}(t),N_{1,2}(t),N_{2,2}(t),N_{3,2}(t)和N_{0,1}(t),N_{1,1}(t),N_{2,1}(t),N_{3,1}(t),N_{4,1}(t)... N0,3(t),N1,3(t),N2,3(t),N3,3(t)N0,2(t),N1,2(t),N2,2(t),N3,2(t)N0,1(t),N1,1(t),N2,1(t),N3,1(t)N4,1(t)...
其中 N i , 1 ( t ) = { 1 , t ∈ [ t i , t i + 1 ] 0 , e l s e N_{i,1}(t)=\left \{ \begin{matrix}{} 1,& t \in[t_i,t_{i+1}]\\ 0,& else \\ \end{matrix} \right. Ni,1(t)={1,0,t[ti,ti+1]else
这里的 N i , 1 ( t ) N_{i,1}(t) Ni,1(t)为分段函数。
(Step 2) 对于 T = t 0 , t 1 , . . . , t i T=t_0,t_1,...,t_i T=t0,t1,...,ti,的分段的确定,T的个数为n+k+1 = 7, 满足n=k=3(这里的取值为人为设定),n+1为控制点个数(这里为二阶,每个分段曲线的控制点个数为3,n+1=3),k+1为B样条曲线的阶数。
一般来说 t ∈ [ 0 , 1 ] t\in[0,1] t[0,1], t i t_i ti的取值应等距取在[0,1],但为了计算方便,我们可以均匀取值为 T = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ] T=[0,1,2,3,4,5,6] T=[0,1,2,3,4,5,6],最后在推导出最终的公式时,我们直接令 t ∈ [ 0 , 6 ] t\in[0,6] t[0,6]就好。
在步骤1,2确定好了公式,定义域和递推边界后,我们只需对公式化简计算就可以得到 P ( t ) P(t) P(t)
然后求出不同的t对应的坐标即可。对于该问题我们可以化简得到:
N 0 , 3 ( t ) = { 1 2 t 2 , 0 ≤ t < 1 1 2 t ( 2 − t ) + 1 2 ( t − 1 ) ( 3 − t ) , 1 ≤ t < 2 1 2 ( 3 − t ) 2 , 2 ≤ t < 3 N_{0,3}(t)=\left\{ \begin{array}{} \frac{1}{2}t^2, & 0\le t<1 \\ \frac{1}{2}t(2-t)+\frac{1}{2}(t-1)(3-t), & 1\le t<2 \\ \frac{1}{2}(3-t)^2, & 2\le t<3 \\ \end{array} \right. N0,3(t)= 21t2,21t(2t)+21(t1)(3t),21(3t)2,0t<11t<22t<3
同时因为 N i , k ( t ) N_{i,k}(t) Ni,k(t)是具有周期性的,即 N i , k ( t ) = N i + 1 , k ( t + Δ t ) N_{i,k}(t)=N_{i+1,k}(t+\Delta t) Ni,k(t)=Ni+1,k(t+Δt)。所以可以得出 N 1 , 3 ( t ) , N 2 , 3 ( t ) , N 3 , 3 ( t ) N_{1,3}(t),N_{2,3}(t),N_{3,3}(t) N1,3(t),N2,3(t),N3,3(t)。最后代入 P ( t ) = ∑ i = 0 3 P i N i , 3 ( t ) , 0 ≤ t ≤ 6 P(t)=\sum\limits_{i=0}^{3}{P_iN_{i,3}(t)},0\le t\le6 P(t)=i=03PiNi,3(t),0t6,可以求出P关于t的坐标序列。
(3)2. 均匀三次(利用边界条件方法)

对于三次曲线来说我们,我们需要4个控制点 P 0 , P 1 , P 2 , P 3 P_0,P_1,P_2,P_3 P0,P1,P2,P3,对应的边界条件有:
起始控制点的对应取值: P ( 0 ) = 1 / 6 ⋅ ( P 0 + 4 P 1 + P 2 ) ⋯ 式( a ) P(0)=1/6\cdot(P_0+4P_1+P_2) \cdots 式(a) P(0)=1/6(P0+4P1+P2)式(a
终止控制点的对应取值:
P ( 1 ) = 1 / 6 ⋅ ( P 1 + 4 P 2 + P 3 ) ⋯ 式( b ) P(1)=1/6\cdot(P_1+4P_2+P_3)\cdots式(b) P(1)=1/6(P1+4P2+P3)式(b
端点处的导数等于相邻控制点的连线斜率:
P ′ ( 0 ) = 1 / 2 ⋅ ( P 2 − P 0 ) ⋯ 式( c ) P'(0)=1/2\cdot(P_2-P_0)\cdots式(c) P(0)=1/2(P2P0)式(c
P ′ ( 1 ) = 1 / 2 ⋅ ( P 3 − P 1 ) ⋯ 式( d ) P'(1)=1/2\cdot(P_3-P_1)\cdots式(d) P(1)=1/2(P3P1)式(d
所以P(t)可以写为矩阵形式:
P ( t ) = [ t 3 , t 2 , t , 1 ] M B [ P 0 P 1 P 2 P 3 ] P(t)=[t^3, t^2, t ,1]M_B\left[ \begin{array}{} P_0\\ P_1\\ P_2\\ P_3 \end{array} \right] P(t)=[t3,t2,t,1]MB P0P1P2P3
其中( M B M_B MB的求解见最后):
M B = 1 6 [ − 1 3 − 3 1 3 − 6 3 0 − 3 0 3 0 1 4 1 0 ] M_B=\frac{1}{6} \left[ \begin{array}{} -1& 3 & -3 & 1\\ 3& -6 & 3 & 0\\ -3 & 0 & 3 & 0\\ 1 & 4 & 1 & 0 \end{array} \right] MB=61 1331360433311000
代入 t ∈ [ 0 , 1 ] t\in[0,1] t[0,1]后可得该四个控制点的B样条曲线。
对于如下图所示的4个P点,代入上述矩阵计算4次(每次都有不同的输入顺序,如: P 0 , P 1 , P 2 , P 3 P_0, P_1, P_2, P_3 P0,P1,P2,P3或者 P 1 , P 2 , P 3 , P 0 P_1,P_2,P_3,P_0 P1,P2,P3,P0),一次可以求得一段曲线,可求得一个封闭的B样条曲线。
在这里插入图片描述


补: M B M_B MB矩阵求解:
对应三次参数多项式,我们都可以写为:
P ( t ) = a t 3 + b t 2 + c t + d = [ t 3 , t 2 , t , 1 ] ⋅ [ a b c d ] , t ∈ [ 0 , 1 ] ⋯ 式( 1 ) P(t) = at^3+bt^2+ct+d=[t^3,t^2,t,1] \cdot \left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right],t\in[0,1] \cdots式(1) P(t)=at3+bt2+ct+d=[t3,t2,t,1] abcd ,t[0,1]式(1)
其导数为:
P ′ ( t ) = [ 3 t 2 , 2 t , 1 , 0 ] ⋅ [ a b c d ] , t ∈ [ 0 , 1 ] ⋯ 式( 2 ) P'(t) =[3t^2,2t,1,0] \cdot \left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right],t\in[0,1]\cdots式(2) P(t)=[3t2,2t,1,0] abcd ,t[0,1]式(2)
将边界条件上式(a),(b),( c), (d) .代入式(1)(2),可得:
P ( 0 ) = [ 0 , 0 , 0 , 1 ] [ a b c d ] = 1 6 [ 1 , 4 , 1 , 0 ] [ P 0 P 1 P 2 P 3 ] P(0)=[0,0,0,1]\left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right]=\frac{1}{6}[1,4,1,0]\left [ \begin{array}{} P_0\\ P_1\\ P_2\\ P_3 \end{array} \right] P(0)=[0,0,0,1] abcd =61[1,4,1,0] P0P1P2P3
P ( 1 ) = [ 1 , 1 , 1 , 1 ] [ a b c d ] = 1 6 [ 0 , 1 , 1 , 1 ] [ P 0 P 1 P 2 P 3 ] P(1)=[1,1,1,1]\left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right]=\frac{1}{6}[0,1,1,1]\left [ \begin{array}{} P_0\\ P_1\\ P_2\\ P_3 \end{array} \right] P(1)=[1,1,1,1] abcd =61[0,1,1,1] P0P1P2P3
P ′ ( 0 ) = [ 0 , 0 , 1 , 0 ] [ a b c d ] = 1 2 [ − 1 , 0 , 1 , 0 ] [ P 0 P 1 P 2 P 3 ] P'(0)=[0,0,1,0]\left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right]=\frac{1}{2}[-1,0,1,0]\left [ \begin{array}{} P_0\\ P_1\\ P_2\\ P_3 \end{array} \right] P(0)=[0,0,1,0] abcd =21[1,0,1,0] P0P1P2P3
P ′ ( 1 ) = [ 3 , 2 , 1 , 0 ] [ a b c d ] = 1 2 [ 0 , − 1 , 0 , 1 ] [ P 0 P 1 P 2 P 3 ] P'(1)=[3,2,1,0]\left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right]=\frac{1}{2}[0,-1,0,1]\left [ \begin{array}{} P_0\\ P_1\\ P_2\\ P_3 \end{array} \right] P(1)=[3,2,1,0] abcd =21[0,1,0,1] P0P1P2P3
可将上式整理为一个矩阵计算:

[ 0 0 0 1 1 1 1 1 0 0 1 0 3 2 1 0 ] [ a b c d ] = 1 6 [ 1 4 1 0 0 1 1 1 − 3 0 3 0 0 − 3 0 3 ] [ P 0 P 1 P 2 P 3 ] \left [ \begin{array}{} 0&0&0&1\\ 1&1&1&1\\ 0&0&1&0\\ 3&2&1&0\\ \end{array} \right]\left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right]=\frac{1}{6}\left [ \begin{array}{} 1&4&1&0\\ 0&1&1&1\\ -3&0&3&0\\ 0&-3&0&3\\ \end{array} \right]\left [ \begin{array}{} P_0\\ P_1\\ P_2\\ P_3 \end{array} \right] 0103010201111100 abcd =61 1030410311300103 P0P1P2P3
所以可以求得:

[ a b c d ] = M B ⋅ [ P 0 P 1 P 2 P 3 ] \left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right]=M_B \cdot \left [ \begin{array}{} P_0\\ P_1\\ P_2\\ P_3 \end{array} \right] abcd =MB P0P1P2P3
P ( t ) = [ t 3 , t 2 , t , 1 ] ⋅ [ a b c d ] = [ t 3 , t 2 , t , 1 ] ⋅ M B [ P 0 P 1 P 2 P 3 ] P(t)=[t^3,t^2,t,1] \cdot \left [ \begin{array}{} a\\ b\\ c\\ d \end{array} \right]=[t^3, t^2, t ,1]\cdot M_B\left[ \begin{array}{} P_0\\ P_1\\ P_2\\ P_3 \end{array} \right] P(t)=[t3,t2,t,1] abcd =[t3,t2,t,1]MB P0P1P2P3

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值