
Bezier 曲线与曲面PPT教学课件.ppt
37页计算机图形学 3.2 Bezier 曲线与曲面计算机图形学Bezier曲线的定义和性质1定义 给定空间n+1个点的位置矢量Pi(i=0,1,2,n),则Bezier曲线可定义为:计算机图形学 其中,Pi构成该Bezier曲线的特征多边形,Bi,n(t)是n次Bernstein基函数:0=1, 0!=1Bezier曲线的定义和性质计算机图形学Betnstein基函数的性质 (1)正性 (2)端点性质 计算机图形学Betnstein基函数的性质(3)权性 由二项式定理可知:计算机图形学Betnstein基函数的性质(4)对称性 因为 计算机图形学Betnstein基函数的性质(5)递推性 即高一次的Bernstein基函数可由两个低一次的Bernstein调和函数线性组合而成因为,计算机图形学2Betnstein基函数的性质(6)导函数 (7)最大值 在 处达到最大值 计算机图形学2Betnstein基函数的性质(8)升阶公式 计算机图形学2Betnstein基函数的性质(9)积分计算机图形学Bezier曲线的性质(1)端点性质 a)曲线端点位置矢量 由Bernstein基函数的端点性质可以推得,当t=0时,P(0)=P0 ;当t=1时,P(1)=Pn。
由此可见,Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合计算机图形学Bezier曲线的性质 b)切矢量 因为, 所以当t=0时,P(0)=n(P1-P0),当t=1时,P(1)=n(Pn-Pn-1),这说明Bezier曲线的起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致计算机图形学Bezier曲线的性质c.)二阶导矢当t=0时,当t=1时,上式表明:2阶导矢只与相邻的3个顶点有关,事实上,r阶导矢只与(r+1)个相邻点有关,与更远点无关将 、 及 、 代入曲率公式 ,可以得到Bezier曲线在端点的曲率分别为:计算机图形学Bezier曲线的性质d.)k阶导函数的差分表示n次Bezier曲线的k阶导数可用差分公式为: 其中高阶向前差分矢量由低阶向前差分矢量递推地定义: 例如: 计算机图形学Bezier曲线的性质(2)对称性由控制顶点 构造出的新Bezier曲线,与原Bezier曲线形状相同,走向相反因为:这个性质说明Bezier曲线在起点处有什么几何性质,在终点处也有相同的性质计算机图形学Bezier曲线的性质(3)凸包性由于 ,且 ,这一结果说明当t在0,1区间变化时,对某一个t值,P(t)是特征多边形各顶点的加权平均,权因子依次是 。
在几何图形上,意味着Bezier曲线P(t)在 中各点是控制点Pi的凸线性组合,即曲线落在Pi构成的凸包之中,如图3.1.9所示计算机图形学Bezier曲线的性质(4)几何不变性这是指某些几何特性不随坐标变换而变化的特性Bezier曲线位置与形状与其特征多边形顶点 的位置有关,它不依赖坐标系的选择计算机图形学Bezier曲线的性质(5)变差缩减性若Bezier曲线的特征多边形 是一个平面图形,则平面内任意直线与C(t)的交点个数不多于该直线与其特征多边形的交点个数,这一性质叫变差缩减性质此性质反映了Bezier曲线比其特征多边形的波动还小,也就是说Bezier曲线比特征多边形的折线更光顺计算机图形学Bezier曲线的性质(6)仿射不变性对于任意的仿射变换A:即在仿射变换下,的形式不变计算机图形学3.2.2 Bezier曲线的递推(de Casteljau)算法 计算Bezier曲线上的点,可用Bezier曲线方程,但使用de Casteljau提出的递推算法则要简单的多 如下图所示,设 、 、 是一条抛物线上顺序三个不同的点过 和 点的两切线交于 点,在 点的切线交 和 于 和 ,则如下比例成立:这是所谓抛物线的三切线定理。
示意图见下页)计算机图形学Bezier曲线的递推(de Casteljau)算法 计算机图形学Bezier曲线的递推(de Casteljau)算法当P0,P2固定,引入参数t,令上述比值为t:(1-t),即有: t从0变到1,第一、二式就分别表示控制二边形的第一、二条边,它们是两条一次Bezier曲线将一、二式代入第三式得: 当t从0变到1时,它表示了由三顶点P0、P1、P2三点定义的一条二次Bezier曲线并且表明:这二次Bezier曲线P20可以定义为分别由前两个顶点(P0,P1)和后两个顶点(P1,P2)决定的一次Bezier曲线的线性组合依次类推,由四个控制点定计算机图形学Bezier曲线的递推(de Casteljau)算法义的三次Bezier曲线P30可被定义为分别由(P0,P1,P2)和(P1,P2,P3)确定的二条二次Bezier曲线的线性组合,由(n+1)个控制点Pi(i=0, 1, ., n)定义的n次Bezier曲线Pn0可被定义为分别由前、后n个控制点定义的两条(n-1)次Bezier曲线 P0n-1与P1n-1的线性组合:由此得到Bezier曲线的递推计算公式:这便是著名的de Casteljau算法。
用这一递推公式,在给定参数下,求Bezier曲线上一点P(t)非常有效上式中:是定义Bezier计算机图形学Bezier曲线的递推(de Casteljau)算法曲线的控制点, 即为曲线 上具有参数t的点de Casteljau算法稳定可靠,直观简便,可以编出十分简捷的程序,是计算Bezier曲线的基本算法和标准算法当n=3时,de casteljau算法递推出的Pki呈直角三角形,对应结果如图3.1.11所示从左向右递推,最右边点P30即为曲线上的点计算机图形学Bezier曲线的递推(de Casteljau)算法 计算机图形学Bezier曲线几何作图法这一算法可用简单的几何作图来实现给定参数 ,就把定义域分成长度为 的两段依次对原始控制多边形每一边执行同样的定比分割,所得分点就是由第一级递推生成的中间顶点 , 对这些中间顶点构成的控制多边形再执行同样的定比分割,得第二级中间顶点 重复进行下去,直到n级递推得到一个中间顶点 即为所求曲线上的点 ,如图3.1.12所示计算机图形学Bezier曲线几何作图法 计算机图形学3.2.3 Bezier曲线的拼接 几何设计中,一条Bezier曲线往往难以描述复杂的曲线形状。
这是由于增加由于特征多边形的顶点数,会引起Bezier曲线次数的提高,而高次多项式又会带来计算上的困难,实际使用中,一般不超过10次所以有时采用分段设计,然后将各段曲线相互连接起来,并在接合处保持一定的连续条件下面讨论两段Bezier曲线达到不同阶几何连续的条件 给定两条Bezier曲线P(t)和Q(t),相应控制点为Pi(i=0, 1, ., n)和Qj(j=0,1,., m),且令 ,如图3.1.13所示,我们现在把两条曲线连接起来 图3.1.13 Bezier曲线的拼接计算机图形学Bezier曲线的拼接计算机图形学Bezier曲线的拼接(1)要使它们达到G0连续的充要条件是:Pn= Q0;(2)要使它们达到G1连续的充要条件是:Pn-1,Pn=Q,Q1三点共线,即:(3)要使它们达到G2连续的充要条件是:在G1连续的条件下,并满足方程 我们将 、 和 , 、 代入,并整理,可以得到: 选择 和 的值,可以利用该式确定曲线段 的特征多边形顶点 ,而顶点 、 已被 连续条件所确定要达到 连续的话,只剩下顶点 可以自由选取计算机图形学Bezier曲线的拼接如果从上式的两边都减去 ,则等式右边可以表示为 和 的 线性组合:这表明 、 、 、 和 五点共面,事实上,在接合点两条曲线段的曲率相等,主法线方向一致,我们还可以断定: 位于直线 的同一侧。
计算机图形学3.2.4 Bezier曲线的升阶与降阶1Bezier曲线的升阶 所谓升阶是指保持Bezier曲线的形状与定向不变,增加定义它的控制顶点数,也即是提高该Bezier曲线的次数增加了控制顶点数,不仅能增加了对曲线进行形状控制的灵活性,还在构造曲面方面有着重要的应用对于一些由曲线生成曲面的算法,要求那些曲线必须是同次的应用升阶的方法,我们可以把低于最高次数的的曲线提升到最高次数,而获得同一的次数曲线升阶后,原控制顶点会发生变化下面,我们来计算曲线提升一阶后的新的控制顶点设给定原始控制顶点 ,定义了一条n次Bezier曲线:计算机图形学Bezier曲线的升阶与降阶增加一个顶点后,仍定义同一条曲线的新控制顶点为 ,则有:对上式左边乘以 ,得到:比较等式两边 项的系数,得到:化简即得:其中 计算机图形学Bezier曲线的升阶与降阶此式说明:新的控制顶点 是以参数值 按分段线性插值从原始特征多边形得出的升阶后的新的特征多边形在原始特征多边形的凸包内特征多边形更靠近曲线三次Bezier曲线的升阶实例如图3.1.14所示计算机图形学Bezier曲线的升阶与降阶 计算机图形学Bezier曲线的升阶与降阶2Bezier曲线的降阶 降阶是升阶的逆过程。
给定一条由原始控制顶点 定义的n次Bezier曲线,要求找到一条由新控制顶点 定义的n-1次Bezier曲线来逼近原始曲线 假定 是由 升阶得到,则由升阶公式有:从这个方程可以导出两个递推公式:和计算机图形学Bezier曲线的升阶与降阶 两种降阶格式 Forrest 格式 Farin格式。
