埃尔米特曲线 Hermite Curve

博客围绕埃尔米特曲线展开,先通过给定曲线两个端点的位置矢量和切线矢量来描述曲线,接着设曲线方程,经一系列推导,包括求解系数矩阵、利用矩阵运算等步骤,最终得出构成埃尔米特曲线的基本曲线方程。

Introduction

给定曲线的两个端点的位置矢量P(0)P(0)P(0), P(1)P(1)P(1) )和切线矢量P′(0)P'(0)P(0), P′(1)P'(1)P(1) )来描述曲线:

Proof

设方程为:
P(t)=at3+bt2+ct+d(0) P(t) = at^{3} + bt^{2} + ct +d \tag{0} P(t)=at3+bt2+ct+d(0)
则:
P′(t)=3at2+2bt+c(1) P'(t) = 3at^{2} + 2bt + c \tag{1} P(t)=3at2+2bt+c(1)
则可得:
{P(0)=dP(1)=a+b+c+dP′(0)=cP(1)=3a+2b+c(2) \begin{cases} & P(0) = d \\ & P(1) = a + b + c + d \\ & P'(0) = c \\ & P(1) = 3a + 2b + c \end{cases} \tag{2} P(0)=dP(1)=a+b+c+dP(0)=cP(1)=3a+2b+c(2)
令:
h0=P(0)h1=P(1)h2=P′(0)h3=P′(1)(3) h_{0} = P(0) \\ h_{1} = P(1) \\ h_{2} = P'(0) \\ h_{3} = P'(1) \tag{3} h0=P(0)h1=P(1)h2=P(0)h3=P(1)(3)
则有:
[h0h1h2h3]=[0001111100103210][abcd](4) \left[ \begin{matrix} h_{0} \\ h_{1} \\ h_{2} \\ h_{3} \end{matrix} \right]= \left[ \begin{matrix} 0 & 0 & 0 & 1 \\ 1 & 1 & 1 & 1 \\ 0 & 0 & 1 & 0 \\ 3 & 2 & 1 & 0 \end{matrix} \right] \left[ \begin{matrix} a \\ b \\ c \\ d \end{matrix} \right] \tag{4} h0h1h2h3=0103010201111100abcd(4)
⇒[abcd]=[h0h1h2h3][2−211−33−2−100101000](5) \Rightarrow \left[ \begin{matrix} a \\ b \\ c \\ d \end{matrix} \right]= \left[ \begin{matrix} h_{0} \\ h_{1} \\ h_{2} \\ h_{3} \end{matrix} \right] \left[ \begin{matrix} 2 & -2 & 1 & 1 \\ -3 & 3 & -2 & -1 \\ 0 & 0 & 1 & 0 \\ 1 & 0 & 0 & 0 \end{matrix} \right] \tag{5} abcd=h0h1h2h32301230012101100(5)
又:
P(t)=[abcd][t3t2t1](6) P(t) = \left[ \begin{matrix} a & b & c & d \end{matrix} \right] \left[ \begin{matrix} t^{3} \\ t^{2} \\ t \\ 1 \end{matrix} \right] \tag{6} P(t)=[abcd]t3t2t1(6)
则由 (4) (5) (6) 可得:
P(t)=[abcd][0103010201111100][2−301−23001−2101−100][t3t2t1](7) P(t) = \left[ \begin{matrix} a & b & c & d \end{matrix} \right] \left[ \begin{matrix} 0 & 1 & 0 & 3 \\ 0 & 1 & 0 & 2 \\ 0 & 1 & 1 & 1 \\ 1 & 1 & 0 & 0 \end{matrix} \right] \left[ \begin{matrix} 2 & -3 & 0 & 1 \\ -2 & 3 & 0 & 0 \\ 1 & -2 & 1 & 0 \\ 1 & -1 & 0 & 0 \end{matrix} \right] \left[ \begin{matrix} t^{3} \\ t^{2} \\ t \\ 1 \end{matrix} \right] \tag{7} P(t)=[abcd]00011111001032102211332100101000t3t2t1(7)
其中,中间两个矩阵互为逆矩阵,乘积为单位矩阵。又由 (5) 可得:
P(t)=[h0h1h2h3][2−301−23001−2101−100][t3t2t1](8) P(t) = \left[ \begin{matrix} h_{0} & h_{1} & h_{2} & h_{3} \end{matrix} \right] \left[ \begin{matrix} 2 & -3 & 0 & 1 \\ -2 & 3 & 0 & 0 \\ 1 & -2 & 1 & 0 \\ 1 & -1 & 0 & 0 \end{matrix} \right] \left[ \begin{matrix} t^{3} \\ t^{2} \\ t \\ 1 \end{matrix} \right] \tag{8} P(t)=[h0h1h2h3]2211332100101000t3t2t1(8)
再令:
[H0(t)H1(t)H2(t)H3(t)]=[2−301−23001−2101−100][t3t2t1](9) \left[ \begin{matrix} H_{0}(t) \\ H_{1}(t) \\ H_{2}(t) \\ H_{3}(t) \end{matrix} \right]= \left[ \begin{matrix} 2 & -3 & 0 & 1 \\ -2 & 3 & 0 & 0 \\ 1 & -2 & 1 & 0 \\ 1 & -1 & 0 & 0 \end{matrix} \right] \left[ \begin{matrix} t^{3} \\ t^{2} \\ t \\ 1 \end{matrix} \right] \tag{9} H0(t)H1(t)H2(t)H3(t)=2211332100101000t3t2t1(9)
最终可得:
[abcd][t3t2t1]=[h0h1h2h3][H0(t)H1(t)H2(t)H3(t)](10) \left[ \begin{matrix} a & b & c & d \end{matrix} \right] \left[ \begin{matrix} t^{3} \\ t^{2} \\ t \\ 1 \end{matrix} \right]= \left[ \begin{matrix} h_{0} & h_{1} & h_{2} & h_{3} \end{matrix} \right] \left[ \begin{matrix} H_{0}(t) \\ H_{1}(t) \\ H_{2}(t) \\ H_{3}(t) \end{matrix} \right] \tag{10} [abcd]t3t2t1=[h0h1h2h3]H0(t)H1(t)H2(t)H3(t)(10)
即:
P(t)=∑i=03hiHi(t)(11) P(t) = \sum_{i = 0}^{3}h_{i}H_{i}(t) \tag{11} P(t)=i=03hiHi(t)(11)
Hi(t)H_{i}(t)Hi(t) 即为构成埃尔米特曲线的基本曲线方程。这四个基本曲线方程如下:

埃尔米特曲线:
其中箭头为切线方向
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值