曲线曲面的拟合
最后更新时间:
Bernstein多项式
概念
形如:(QAQ)\(B_{i,n}(t)=C_{n}^{i}t^i(1-t)^{n-i},0\leq t \leq1\)的多项式,成为Bernstein多项式。
其实就是(QAQ)\(1=(t+1-t)^n\)的二项式展开式中的一项。
性质
- 单位分解性 (QAQ)\(\sum_{i=0}^{n}B_{i,n}(t)=\sum_{i=0}^{n}C_{n}^{i}t^i(1-t)^{n-i}=(t+1-t)^n\equiv 1\)
- 非负性 (QAQ)\(B_{i,n}(t)\geq 0,\forall t\ \ 0\leq t \leq1\)
- 端点特性 (QAQ)\(B_{0,n}(0)=B_{n,n}(1)=1\) 对其他的有 (QAQ)\(B_{i,n}^{(k)}(0)=0,对0<i<n,k=0,1,\cdots,i-1\) (QAQ)\(B_{i,n}^{(k)}(1)=0,对0<i<n,k=0,1,\cdots,n-i-1\)
- 极大值 (QAQ)\(B_{i,n}(t)\)在(QAQ)\(t=\frac{i}{n}\)处达到(QAQ)\([0,1]\)上的最大值
- 递推性质 (QAQ)\(B_{i,n}(t)=tB_{i-1,n-1}(t)-(1-t)B_{i,n-1}(t)\)
- 对称性 (QAQ)\(B_{i,n}(t)=B_{n-i,n}(1-t)\)
- 导数 (QAQ)\(B_{i,n}^{'}(t)=n(B_{i-1,n-1}(t)-B_{i,n-1}(t))\)
- Bernstein多项式可构成多项式空间的一组基(选作基的好处) 相比幂基,Bernstein多项式作为基在端点处有更好的性质,并且基中的每一个项都是相同次数的。 用Bernstein多项式的单位分解性可以得到:幂基到B基的转换。
Bezier曲线
定义:给定有序点列(QAQ)\(\{P_i\},i=0,1,\cdots,n\)相应的n次Bezier曲线定义为: (QAQ)\(P(t)=\sum_{i=0}^{n}P_iB_{i,n}(t)\)(这是一个参数方程曲线,P可以是n维空间中的点)
几何系数(QAQ)\(\{P_i\}\)称为此Bezier曲线的控制点。控制点依次连接构成的多边形称为控制多边形。
bezier曲线的几何特性
bezier曲线总是插值首末控制点 (QAQ)\(P(0)=P_0,P(1)=P_n\)
首末点处切天方向分别平行与邻近控制点确定的直线 即分别与(QAQ)\(P_1-P_0,P_n-P_{n-1}\)平行
伤射不变性(仿射变换又叫刚体变换,包括平移旋转对称),对控制点进行仿射变换,就是对曲线上所有点进行相同的变化,这表明曲线构造不依赖坐系选取。
凸包性,Bezier曲线总是在
控制多边形控制点的凸包内。(确保了在图像终端的可见,可用于碰撞检测)(注意是控制点的凸包)变差减缩性,任意直线于Bezier曲线的交点数量小于或等于该支线与控制多边形的交点数量。变差减缩性保证了曲线的震荡次数不会超过控制多边形的震荡次数。
保线性(可减少振荡):如果控制点都在一条线上,则bezier曲线也是一条线。
Bezier曲线的运算
定义算子
等同算子(QAQ)\(\mathcal{I}:\mathcal{I}P_i=P_i\) 位移算子(QAQ)\(\varepsilon:\varepsilon P_i = P_{i+1}\) 差分算子(QAQ)\(\Delta:\Delta P_i=P_{i+1}-P_{i}\) (QAQ)\(\mathcal{L}:=(1-t)\mathcal{I}+t\varepsilon\)
求值和分割算法
定理(de Casteljau算法 德卡斯特里奥算法)给定任意n次的Bezier曲线(QAQ)\(P(t)=P_{n}\)
升阶算法
作用:可以把低于最高次数的曲线提高到最高次数从而获得一致的次数。
关于降阶
类比多项式,升阶是比较容易的,但是既要降阶又要保持原有性质,这显然是困难的。如下: \[ x^2=x^2(1-x+x) \] 但是怎么降到1次,似乎没有很好的办法。
对于Bezier曲线的降阶,可以分为准确降阶和近似降阶。一般情况的准确降阶是不可能的,近似降阶,一种方式可以利用升阶公式反演出一个公式(蒙了);另一种方式可以在低维空间中寻找这个曲线的最佳逼近元素(最近一致逼近、最佳平方逼近……)
应该不会考(wu
光滑拼接
控制点增多时,曲线次数高计算量大,各个控制点的控制性减弱,为了避免这些缺点,我们可以将其分成几段再拼接起来。 但是简单的连接往往不能满足我们的需求,为此我们需要根据设计的需求,保持连接点位置连续、切矢连续或曲率连续。
开花
所谓开花的想法就是:把一个n次曲线表示成多变量的仿射对称多项式。
定义(仿射函数)
若函数(QAQ)\(f(x)\)对任意的(QAQ)\(a_1,\cdots,a_m\),(QAQ)\(t_1,\cdots,t_m\) 满足, \[ f(\sum_{i=1}^{m}a_it_i)=\sum_{i=1}^{m}a_if(t_i) \] 其中,(QAQ)\(\sum_{i=1}^{m}a_i=1\),则称此函数是仿射的。
定义(多元仿射函数)
指对多元函数中的每个变量都是仿射的。
可以发现(能这样说吗?)仿射跟线性很像。
定义(对称多项式)
简单解释就是多元变量中任意两个变量交换位置不会改变函数的值。
开花定理
任意一元的n次多项式(QAQ)\(F(t)\),存在唯一的n元仿射对称多项式(QAQ)\(f(t_1,\cdots,t_n)\),使得 (QAQ)\(F(t)=f(t,\cdots,t)\)。函数(QAQ)\(f(t_1,\cdots,t_n)\)称为(QAQ)\(F(t)\)的开花多项式(Blossom)
Proof: (存在性) (唯一性)