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⎦⎥⎥⎤=⎣⎢⎢⎡0103010201111100⎦⎥⎥⎤⎣⎢⎢⎡abcd⎦⎥⎥⎤(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⎦⎥⎥⎤=⎣⎢⎢⎡h0h1h2h3⎦⎥⎥⎤⎣⎢⎢⎡2−301−23001−2101−100⎦⎥⎥⎤(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]⎣⎢⎢⎡0001111100103210⎦⎥⎥⎤⎣⎢⎢⎡2−211−33−2−100101000⎦⎥⎥⎤⎣⎢⎢⎡t3t2t1⎦⎥⎥⎤(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]⎣⎢⎢⎡2−211−33−2−100101000⎦⎥⎥⎤⎣⎢⎢⎡t3t2t1⎦⎥⎥⎤(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)⎦⎥⎥⎤=⎣⎢⎢⎡2−211−33−2−100101000⎦⎥⎥⎤⎣⎢⎢⎡t3t2t1⎦⎥⎥⎤(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=0∑3hiHi(t)(11)
Hi(t)H_{i}(t)Hi(t) 即为构成埃尔米特曲线的基本曲线方程。这四个基本曲线方程如下:
博客围绕埃尔米特曲线展开,先通过给定曲线两个端点的位置矢量和切线矢量来描述曲线,接着设曲线方程,经一系列推导,包括求解系数矩阵、利用矩阵运算等步骤,最终得出构成埃尔米特曲线的基本曲线方程。
360

被折叠的 条评论
为什么被折叠?



