Hermite Curve 以及 Bézier Curve 贝塞尔曲线

相关的详细资料可以查询wiki的百科网站,个人总结,难免出现错误,欢迎指正最后
尊重原创,请勿转载!  作者:图林根的烤肠 文章来源: www.mahong.me/archives/34

要了解Hermite以及Bézier,首先来简要介绍下三次参数曲线(Parametric cubic curves)

一个空间三位曲线方程式如下图

b1
可以转换为下图矩阵相乘的形式
b2
了解了上面这个矩阵就可以开始正文了:
首先是Hermite 曲线,它是由一些参数决定:
a)2个首位端点P1,P4及其各自的斜率参数R1与R4
b)Hermite 几何矢量(geometry vector) GH:
c)Hermite 矩阵:
b3
Hermite曲线最后的表述方式如前面介绍的三次参数曲线为:
Q(u)= U * Mh * Gh (其中的h应为大写的下标,无法打出便用小写h代替)
这里不仅有人要问,这Hermite矩阵为什么是这个样子,其中的推导过程在这偷个懒,直接拽张图片过来

b4

上图中的Q(0)与Q(1)分别为u=0与u=1用特殊法

带入上面的三次曲线方程的结果,然后对其方程式求导,带入u=0与u=1,分别求出Q(0)与Q(1)的斜率。
因为Q(u)= [P1;P4;R1;P4](这是一个4行一列的矩阵),然后会得出一个等式

b5

又因为Gh也等于[P1;P4;R1;P4];

b6

所以方程两边可以消去[P1;P4;R1;P4]得到等式
b7
再求逆矩阵便可得到Hermite矩阵,为下图红框中的矩阵b8
接下来是Bézier Curve:
这张图可以很好地介绍下Bézier Curve是一个三位空间曲线通过转换投影到2D平面的曲线
图片来源:Watt,A: 3D-Computergrafik

b9

同上面介绍的Hermite曲线一样,Bézier curve同理表述为
b10

 

其中的Pi为行向量(row-vector)
其中的推导过程就不介绍了,详情可以查询Wiki百科的Bernstein polynomia(点我连接)和 Bézier curve(点我连接)

另外推荐一篇介绍Hermite曲线的OpenGL博客,传送门点我
做人要厚道,最后附上参考资料:
3D-Repräsentation,Vorlesung Computeranimation WS 2009 © Nowak, Weigel, Kirchner, Schuller