350 likes | 621 Views
Bézier 曲线曲面. ☆ Bézier 曲线曲面 ● Bernstein 基函数 ● Bézier 曲线定义 ● Bézier 曲线生成 ● Bézier 曲线分割 ● Bézier 曲线逼近 ● Bézier 曲线拼接 ● Bézier 曲线升阶 ● Bézier 曲面定义 ● Bézier 曲面控制. Bézier 曲线曲面. 插值曲线的共同特点是: 最终生成的曲线通过所有给定的“型值点” 。这带来了两个问题: 在实际使用中, 初始型值点往往是不精确 的,并且有时仅仅完全为了外观上的考虑,这样一点一点地插值计算是很不合算的;
E N D
☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线曲面 • 插值曲线的共同特点是:最终生成的曲线通过所有给定的“型值点”。这带来了两个问题: • 在实际使用中,初始型值点往往是不精确的,并且有时仅仅完全为了外观上的考虑,这样一点一点地插值计算是很不合算的; • 另外,插值曲线不具有局部性,无法使设计和修改结果灵活直观地得到反映。 • 法国工程师Pierre Bézier在雷诺(Renault)汽车公司使用样条逼近方法来设计汽车。 • Bézier样条有很多性质使得在曲线和曲面设计中有更好的作用且更方便,也更容易实现。 • 基于这些原因,Bézier样条在大多数图形系统相应的图形包中都有广泛的应用。
n次Bernstein基函数多项式形式: BEZi,n(u)=C(n,i)ui(1-u)n-i, 其中:C(n,i)=n!/[i!(n-i)!] (i=0,1,…,n) 非负性: BEZi,n(u)≥0 (i=0,1,…,n); u∈(0,1)时,0< BEZi,n(u) <1 权性: 对称性: BEZi,n(u)=BEZn-i,n(1-u),(i=0,1,…,n) 最大值: 在区间[0,1]内,BEZi,n(u)(i=0,1,…,n)在u=i/n处取得最大值。 ☆Bézier曲线曲面 ●Bernstein基函数 ◘ 基函数升降阶 ◘ 导数和积分 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bernstein基函数
降阶公式: BEZi,n(u)=(1-u)BEZi,n-1(u)+uBEZi-1,n-1(u) (i=0,1,…,n) 一个n次Bernstein基函数能表示成两个n-1次基函数的线性和。 升阶公式: 即:一个n次Bernstein基函数能表示成两个n+1次基函数的线性和。 ☆Bézier曲线曲面 ● Bernstein基函数 ◘ 基函数升降阶 ◘ 导数和积分 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bernstein基函数升降阶
导数: 对i=0,1,2,…,n, BEZ’i,n(u)=n[BEZi-1,n-1(u)-BEZi,n-1(u)] [0,1]区间积分: 线性无关性: {BEZi,n(u)}i(i=0,1,2,…,n)是n次多项式空间的一组线性无关的基函数, 任何一个n次多项式都可表示成它们的线性组合。 ☆Bézier曲线曲面 ● Bernstein基函数 ◘ 基函数升降阶 ◘ 导数和积分 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bernstein基函数导数和积分
一般,Bézier曲线段可拟合任何数目的控制点。一般,Bézier曲线段可拟合任何数目的控制点。 Bézier曲线段逼近这些控制点,且它们的相关位置决定了Bézier多项式的次数。 类似插值样条,Bézier曲线可以由给定边界条件、特征矩阵或混合函数决定。 对一般Bézier曲线,最方便的是混合函数形式。 假设给出n+1个控制点位置: Pk=(xk,yk,zk), (k=0,1,2,…,n)。 这些坐标点混合产生下列位置向量P(u),用来描述P0和Pn间的逼近Bézier多项式函数的路径。 混合函数BEZk,n(u)是Bernstein多项式。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ◘ 曲线递归定义 ◘ 曲线性质1 ◘ 曲线性质2 ◘ 曲线性质3 ◘ 曲线性质4 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线定义 P(u)=GBEZ·MBEZ·U
利用Bernstein基函数的降(升)阶公式,得出Bézier曲线上点的坐标位置的有效方法是使用递归计算。利用Bernstein基函数的降(升)阶公式,得出Bézier曲线上点的坐标位置的有效方法是使用递归计算。 用递归计算定义Bézier混合函数: BEZk,n(u)=(1-u)BEZk,n-1(u)+uBEZk-1,n-1(u)。 其中, BEZk,k(u)=uk, BEZ0,k(u)=(1-u)k。 Bézier多项式次数要比控制点个数小1: 三控制点生成抛物线; 四点生成三次曲线; 依次类推。 但对某些控制点布局,得到退化Bézier多项式。 三个共线控制点生成了一个直线段的Bézier曲线, 由具有相同坐标控制点生成的Bézier“曲线”是一个点。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ◘ 曲线递归定义 ◘ 曲线性质1 ◘ 曲线性质2 ◘ 曲线性质3 ◘ 曲线性质4 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线的递归定义
由Bézier曲线定义: 一条n次Bézier曲线被表示成它的n+1个控制顶点的加权和,权是Bernstein基函数。 端点位置:Bézier曲线以P0为起点,以Pn为终点,即: P(0)=P0,P(1)=Pn。 端点切矢量:Bézier曲线在起点和终点处分别与控制多边形的第一条边和最后一条边相切,它在两端点的切矢量分别为: P’(0)=n(P1-P0),P’(1)=n(Pn-Pn-1)。 对称性:如果保持全部控制点位置不变,但次序颠倒,即Pk变为Pn-I,则Bézier曲线形状不变,但参数变化方向相反,即: ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ◘ 曲线递归定义 ◘ 曲线性质1 ◘ 曲线性质2 ◘ 曲线性质3 ◘ 曲线性质4 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线性质(1)
仿射不变性:某些几何性质不随坐标变换而变化的性质。仿射不变性:某些几何性质不随坐标变换而变化的性质。 这些几何性质包括曲线的形状、曲率、挠率等。 仿射不变性还表现在:对于任意仿射变换A,曲线的表示形式不变。即: 这意味着:对Bézier曲线的几何变换只要作用于其控制顶点。 凸包性:Bézier曲线位于其控制顶点{Pk}(k=0,1,2,…,n)的凸包之内。 凸包性将曲线限制在一定的范围之内,使曲线的形状控制更加方便。 如:二次Bézier曲线的三个控制顶点落于一张平面之内,那么, 二次Bézier曲线必为平面曲线。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ◘ 曲线递归定义 ◘ 曲线性质1 ◘ 曲线性质2 ◘ 曲线性质3 ◘ 曲线性质4 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线性质(2)
直线再生性: 若控制顶点P0,P1,P2,…,Pn落于一条直线上, 由凸包性可知:该Bézier曲线必为一条直线。 平面曲线的保型性: 假如Bézier曲线的控制顶点{Pk}(k=0,1,2,…,n)位于一张平面之内,则该Bézier曲线是平面曲线,它具有两个性质: 保凸性:如果其控制多边形是凸的,则该Bézier曲线也是凸的。 变差缩减性:平面内任一直线与Bézier曲线的交点数不多于该直线与Bézier曲线控制多边形的交点数目。 这一性质说明Bézier曲线比其控制多边形波动小,更光顺。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ◘ 曲线递归定义 ◘ 曲线性质1 ◘ 曲线性质2 ◘ 曲线性质3 ◘ 曲线性质4 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线性质(3)
拟局部性: 局部性是指移动一个控制顶点,它只影响曲线的某个局部; 拟局部性是指当移动一个控制顶点Pk时,对应参数u=k/n的曲线上的点变动最大,远离u=k/n的曲线点变动越来越小。 Bézier曲线不具备局部性,但它具备拟局部性。 也可以引入另外的参数来调整Bézier曲线的“张力”和“偏离”。 Bézier曲线拟局部性 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ◘ 曲线递归定义 ◘ 曲线性质1 ◘ 曲线性质2 ◘ 曲线性质3 ◘ 曲线性质4 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线性质(4)
控制多边形大致勾画Bézier曲线的形状,要改变曲线只要改变顶点的位置。控制多边形大致勾画Bézier曲线的形状,要改变曲线只要改变顶点的位置。 Bézier曲线上除两端点外所有的点都与控制多边形的全部顶点有关。 可以控制多边形作为曲线输入与交互的手段。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ◘ 曲线离散生成 ◘ 离散生成过程 ◘ 曲线绘制生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线的交互生成
德卡斯特里奥(de Casteljau)算法描述了从参数u计算n次Bézier曲线型值点P(u)的过程: 0 2 0 0 3 1 1 0 1 P P P P P P P P P 1 1 0 2 0 3 0 0 2 2 P 1 u =P(u) 1-u 型值点 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ◘ 曲线离散生成 ◘ 离散生成过程 ◘ 曲线绘制生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线离散生成方法 • 可以证明曲线上的型值点为: r=0 r=2 r=1 r=3
图为三次Bézier曲线在某个u值下计算过程。 (u的变化生成多个离散型值点; r=n+1;) 对应r=0的顶点是曲线的控制点; 当r不断增加时,对应的顶点数递减直到r=3时只剩下一个顶点,即为所求的型值点。 所有顶点构成一个直角三角形, 在r=1,2,3各列中的每个点都有两个箭头指向它,代表该点是两箭头始点的线性组合,箭头上标注的代表权值。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ◘ 曲线离散生成 ◘ 离散生成过程 ◘ 曲线绘制生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线离散生成过程
下图为三次Bézier曲线在某个u值(u的变化生成多个离散型值点)下的作图过程。下图为三次Bézier曲线在某个u值(u的变化生成多个离散型值点)下的作图过程。 u:1-u ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ◘ 曲线离散生成 ◘ 离散生成过程 ◘ 曲线绘制生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线的绘制生成 三次Bézier曲线作图过程
如果将Bézier曲线P从中间某点分成两段:Q和R。如果将Bézier曲线P从中间某点分成两段:Q和R。 Q和R仍是多项式曲线,可表示成Bézier曲线的形式。 可用分割定理来求新的曲线Q和R的控制顶点。 分割定理:从参数u’∈(0,1)处将Bézier曲线 分成两段:Q: R: 分割定理说明:给定任一u’∈(0,1),P(u’)将Bézier曲线分为两段,两段曲线仍然可以表示成Bézier曲线形式,它们的控制顶点由de Casteljau算法产生。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ◘ 曲线分割示例 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线的分割
0 1 1 0 0 2 3 1 0 P P P P P P P P P 3 1 0 2 2 1 0 0 0 2 P 1 u 1-u ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ◘ 曲线分割示例 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线分割示例 • 若令n=3,则 • 曲线Q的控制顶点{P0i}构成直角三角形的水平边; • 曲线R的控制顶点{Pin-i}构成直角三角形的斜边; • 直角三角形的垂直边由原曲线的控制顶点构成。
三次Bézier曲线可用矩阵表示为: 由三次Bézier曲线的Casteljau算法的几何意义图(作图过程)可看出:曲线Q(或R)的控制多边形较曲线P的控制多边形更靠近曲线,这提供一种新的离散生成Bézier曲线的算法。 如果曲线与其控制多边形的距离小于给定的逼近误差,则显示控制多边形作为对Bézier曲线的近似; 否则,按分割定理将曲线一分为二(可取u’=1/2),对新生成的两线段重复上述过程,直至结束。 只要所置误差充分小,就能保证显示结果与原曲线充分逼近。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ◘ 逼近误差控制 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线的逼近
一般来说,计算控制多边形与曲线之间的距离很麻烦,一般来说,计算控制多边形与曲线之间的距离很麻烦, 由Bézier曲线的凸包性可知:曲线位于控制顶点的凸包之内。 曲线与控制多边形之间的距离必然小于Pi到直线P0Pn的距离d(Pi,P0Pn)的最大值。 可用Pi到直线P0Pn的距离d(Pi,P0Pn)的最大值来代替曲线到多边形的距离,从而简化计算。 P0 P3 P2 P1 d(P2,P0P3) d(P1,P0P3) ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ◘ 逼近误差控制 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线逼近误差控制
封闭Bézier曲线由重合第一个和最后一个控制点位置来生成。封闭Bézier曲线由重合第一个和最后一个控制点位置来生成。 多个控制点位于同一位置也会给那个位置以更多的权。 一个坐标位置被二个控制点占用,所产生的曲线更接近于这个位置。 P1 P4 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ◘ 0阶连续拼接 ◘ 1阶连续拼接 ◘ 2阶连续拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线拼接:封闭和重合 P1= P2 P3 P3 P2 P0 P4 P0= P5 Bézier曲线更靠近重合点位置 封闭Bézier曲线
可以用任何数目的控制点拟合出一条Bézier曲线,但这需要计算更高次的多项式。可以用任何数目的控制点拟合出一条Bézier曲线,但这需要计算更高次的多项式。 复杂曲线可以由几个较低次数的Bézier曲线段连接而成。 较小段连接也会更好地控制小区域内的曲线形状。 Bézier曲线通过端点,较容易拼凑曲线段(0阶连续)。 P1 P3’ P2 P0’ P0 P2’ P1’ 使P2和 P0’重合,可使两Bézier曲线段间0阶连续 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ◘ 0阶连续拼接 ◘ 1阶连续拼接 ◘ 2阶连续拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线拼接:0阶连续
Bézier曲线在端点处的切向量落在端点和相邻点的连线上。Bézier曲线在端点处的切向量落在端点和相邻点的连线上。 新段中的控制点P0′和P1′与前段中的控制点Pn-1和Pn在同一条直线上可得到曲线段之间的一阶连续性。 如果两个曲线段有相同数目的控制点,则选择前段中最后一个控制点为新段中的第一个控制点,新段中的第二个控制点定位成: (Pn+Pn-Pn-1) 这样,三个控制点共线且有相同的间隔,就可得到C1连续。 P1 P3’ P2 P0 P0’ P2’ P1’ ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ◘ 0阶连续拼接 ◘ 1阶连续拼接 ◘ 2阶连续拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线拼接:1阶连续 使P2和P0’重合且P1,P2,P1’共线,可使两Bézier曲线段间1阶连续
让新段中的第三个控制点用前段最后三个控制点定位成:Pn-2+4(Pn-Pn-1),可在两个Bézier曲线段间得到C2连续。让新段中的第三个控制点用前段最后三个控制点定位成:Pn-2+4(Pn-Pn-1),可在两个Bézier曲线段间得到C2连续。 P1 P3’ P2 P0’ P0 P1’ P2’ ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ◘ 0阶连续拼接 ◘ 1阶连续拼接 ◘ 2阶连续拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线拼接:2阶连续 使P2和 P0’重合且P1,P2,P1’共线,可使两Bézier曲线段间1阶连续 • Bézier曲线段并不一定需要二阶连续性。 • 尤其是在三次曲线中不需要,因为每段曲线仅有四个控制点。 • 在这种情况下,二阶连续定位了前三个点的位置,只剩一个控制点可以用来调整曲线段形状。
Bézier曲线的升阶就是保持曲线的形状与定向不变,增加定义它的控制顶点数。Bézier曲线的升阶就是保持曲线的形状与定向不变,增加定义它的控制顶点数。 Bézier曲线是参数多项式曲线段,具有整体性质。 在某些情况下,可能无论怎样移动调整顶点都达不到理想形状。 显然是曲线的“刚性”有余而“柔性”不足。 升阶可降低其“刚性”,增加其“柔性”: 增加控制顶点,就增加了对曲线进行形状控制的潜在灵活性。 升阶虽然增加Bézier曲线的控制顶点,因曲线形状及定向保持不变,所以,曲线的实际次数不变。 但一旦移动生成的新控制顶点,曲线形状就发生变化,曲线的次数就升高至由顶点数决定的次数。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ◘ 升降阶实现 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线升降阶
升阶的新顶点由以参数值λ=j/(n+1)按分段线性插值从老控制多边形得出:升阶的新顶点由以参数值λ=j/(n+1)按分段线性插值从老控制多边形得出: P’i=(1-λ)Pi+λPi-1(i=0,1,2,…,n+1),P-1=Pn+1=0, 且新控制多边形比老控制多边形更靠近曲线。 Bézier曲线的升阶可无休止地进行下去,从而得到一个控制多边形系列,它们都定义同一条Bézier曲线。 多边形系列将收敛到一个极限,就是所定义的该曲线。 曲线的降阶是升阶的逆问题:一条n次Bézier曲线能否表示成n-1次。 一般,准确地降阶是不可能的,仅能看作是一条曲线被较低次的曲线逼近。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ◘ 升降阶实现 ● Bézier曲面定义 ● Bézier曲面控制 Bézier曲线升降阶实现
可使用两组正交的Bézier曲线来设计由控制点网格描述的物体表面。可使用两组正交的Bézier曲线来设计由控制点网格描述的物体表面。 Bézier曲面的向量函数由Bézier混合函数作笛卡尔积。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ◘ 角点和边界 ◘ 角点性质 ◘ 其它性质 ● Bézier曲面控制 Bézier曲面定义 • 给定空间(m+1)×(n+1)个点的位置Pj,k(j=0,1,2,…,m, k=0,1,2,…,n),称如下形式的张量积参数曲面为m×n次的Bézier曲面: • Pj,k称为控制顶点,所有的点Pj,k构成的空间的一张称为控制网格。 • BEZj,m(u)和BEZk,n(v)分别为u、v方向的Bernstein基函数。
角点位置:Bézier曲面的四个角点分别是其控制网格的四个角点。即:角点位置:Bézier曲面的四个角点分别是其控制网格的四个角点。即: P(0,0)=P0,0,P(0,1)=P0,n;P(1,0)=Pm,0,P(1,1)=Pm,n。 边界线:Bézier曲面的四条边界线是Bézier曲线: ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ◘ 角点和边界 ◘ 角点性质 ◘ 其它性质 ● Bézier曲面控制 Bézier曲面的角点和边界
角点切平面: 在角点P0,0处曲面的u向切矢量和v向切矢量分别为: m(P1,0-P0,0)和n(P0,1-P0,0), 从而曲面在该点的切平面即为P0,0,P1,0,P0,1三个控制点所确定的平面。 曲面在另三个角点处的切平面分别由Pm,0Pm-1,0Pm,1, P0,nP1,nP0,n-1, Pm,nPm-1,nPm,n-1确定。 角点法矢量: Bézier曲面的四个角点的法矢量分别为: mn(P1,0-P0,0)×(P0,1-P0,0); mn(Pm,0-Pm-1,0)×(Pm,1-Pm,0); mn(P1,n-P0,n)×(P0,n-P0,n-1); mn(Pm,n-Pm-1,n)×(Pm,n-Pm,n-1)。 P0,3 P1,3 P2,3 P0,2 P1,2 P3,3 P2,2 P0,1 P1,1 P2,1 P3,2 P3,1 P0,0 P1,0 P2,0 P3,0 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ◘ 角点和边界 ◘ 角点性质 ◘ 其它性质 ● Bézier曲面控制 Bézier曲面角点性质
凸包性:Bézier曲面P(u,v)位于其控制网格顶点的凸包之内。凸包性:Bézier曲面P(u,v)位于其控制网格顶点的凸包之内。 平面再生性: 当所有控制顶点落于一张平面内时,Bézier曲面也落于该平面内。 仿射不变性: Bézier曲面的某些几何性质不随坐标变换而变化,对于任意仿射变换,曲面的变换等价于多其控制顶点做变换。 拟局部性: 当修改某一控制顶点时,曲面上距它近的点受影响大,距它远的受影响小。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ◘ 角点和边界 ◘ 角点性质 ◘ 其它性质 ● Bézier曲面控制 Bézier曲面其它性质
根据Bézier曲面的性质,控制网大致勾画了Bézier曲面的形状,可以提供用于交互设计应用的便利方法。根据Bézier曲面的性质,控制网大致勾画了Bézier曲面的形状,可以提供用于交互设计应用的便利方法。 对每个曲面片,选择在xy“地”平面上的控制点网格,然后根据控制点的子坐标值在地平面上选择高度。 要改变曲面只需交互地调节顶点的位置。 从参数(u0,v0)计算Bézier曲面型值点P(u0,v0)的de Casteljau算法: ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法 Bézier曲面离散生成 曲面上的型值点为:
从参数(u0,v0)∈(0,1)×(0,1),等参数曲线P(u0,v)与P(u,v0)将Bézier曲面分成了四块小的Bézier曲面片。从参数(u0,v0)∈(0,1)×(0,1),等参数曲线P(u0,v)与P(u,v0)将Bézier曲面分成了四块小的Bézier曲面片。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法 Bézier曲面分割 • 其中,各曲面片的控制顶点由de Casteljau算法得到。
i=0 r=0 i=0 r=1 i=0 r=2 i=0 r=3 i=1 r=2 i=2 r=1 i=3 r=0 1,2 2,0 0,0 0,2 3,2 2,2 1,0 0,0 1,0 1,0 0,0 0,0 1,0 1,3 1,0 0,0 0,0 0,0 2,0 2,3 0,0 2,0 2,0 2,1 0,0 0,1 0,0 0,0 0,0 2,0 0,0 0,3 2,2 0,0 0,3 0,0 0,2 0,2 0,2 0,0 0,1 0,0 0,0 0,0 2,0 2,0 2,3 0,0 0,2 0,3 0,0 2,0 0,0 0,0 0,0 3,0 3,3 0,0 0,0 0,0 0,0 2,0 0,3 0,2 03,0 0,1 0,1 0,0 0,3 1,0 1,2 1,1 1,0 1,0 1,0 1,2 1,0 1,1 1,1 0,0 2,0 2,2 0,2 0,1 0,1 0,1 0,2 2,1 0,0 0,0 0,1 0,2 0,0 0,3 0,0 2,0 3,2 0,0 3,1 0,2 0,1 2,2 3,1 2,1 0,2 0,2 0,1 0,1 0,1 0,0 2,1 0,0 1,2 1,3 1,0 1,1 1,0 0,0 0,0 0,0 2,0 P0,0 P2,1 P0,0 P0,0 P1,1 P3,1 P0,1 P2,0 P0,1 P0,1 P1,0 P0,1 P3,0 P0,0 P0,1 P1,0 P2,1 P2,0 P1,1 P3,1 P0,0 P0,0 P0,2 P0,0 P0,3 P2,3 P1,2 P0,3 P3,2 P1,2 P0,0 P0,0 P0,2 P2,2 P1,0 P2,3 P0,2 P1,3 P2,2 P0,0 P1,3 P2,0 P0,2 P0,3 P0,2 P0,3 P3,0 P3,3 P3,3 P3,2 P0,0 P0,0 P0,1 P0,0 P0,0 P0,0 P0,1 P0,1 P2,1 P0,0 P2,0 P1,0 P2,3 P0,0 P0,0 P0,0 P3,3 P1,0 P1,1 P0,0 P1,0 P0,3 P0,1 P1,3 P1,0 P2,0 P0,0 P1,0 P2,0 P3,1 P0,0 P2,0 P3,0 P0,1 P2,0 P0,0 P3,0 P3,0 P3,0 P3,0 P0,3 P0,3 P1,0 P1,2 P1,3 P0,0 P1,3 P2,3 P0,0 P2,0 P2,3 P0,3 P0,3 P0,3 P2,2 P3,3 P3,3 P3,0 P3,0 P3,2 P1,2 P2,2 P2,1 P1,1 P0,2 P3,2 P3,1 P0,2 P0,2 P0,2 P0,2 u向离散 v向离散 v向离散 j =3,s=0 u向离散 j=2,s=1 j=1,s=2 j=0,s=3 j=0,s=2 j=0,s=1 j=0,s=0 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法 Bézier曲面分割示例
对于双三次Bézier曲面,矩阵形式为: P(u,v)=UT · MTBEZ · G ·MBEZ· V, U=[1,u,u2,u3]T, V=[1,v,v2,v3]T MBEZ=[BEZ0,3(u),BEZ1,3(u),BEZ2,3(u),BEZ3,3(u)]T, G ={Pj,k}(j,k=0,1,2,3) Bézier曲面逼近生成的基本思想: 当以两条等参数曲线将Bézier曲面划分成四块小的曲面片之后,小曲面片的控制网格与曲面更靠近; 将这种过程一直进行下去,得到越来越密的控制网格,它们收敛于原曲面。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法 Bézier曲面逼近
判断控制网格与曲面的距离是否小于给定的控制误差:判断控制网格与曲面的距离是否小于给定的控制误差: 如果是,则显示控制网格作为对Bézier曲面片的近似; 否则,将原控制网格在u向离散,得到由P(u0,v)划分的两张小曲面片; 再将这张小曲面片在v向离散,得到四张小曲面片。 对新生成的四个曲面片重复上述过程,直至结束。只要所置误差充分小,就能保证显示结果与原曲面充分逼近。 一般来说,曲面与控制网格间的距离可用下式来计算: d=max{(Pj,k,S), j=0,1,…,m,k=0,1,…,n} S为与四个角点P0,0、Pm,0、P0,n、Pm,n距离最小的平面。因此,d(Pj,k,S)为控制顶点Pj,k到S的距离。 由凸包性可知,d能够用来控制曲面与控制网格之间的距离。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法 Bézier曲面逼近误差控制
Bézier曲面的曲面片可以用边界约束来连接。 一般来说,两曲面的光滑拼接是困难的,但两Bézier曲面片的GC1连续存在着简单方法。 假如两个Bézier曲面片P和Q具有相同的次数(否则,只要将低次的边界线升阶就可以)形成一个曲面,那么,通过在边界线上建立零阶和一阶连续性可以确保从一个部分平滑转换到另一部分。 对零阶连接性只要边界上的控制点匹配就可能获得。 即:Pm,j=Q0,j(j=0,1,…,m)。 ☆Bézier曲线曲面 ● Bernstein基函数 ● Bézier曲线定义 ● Bézier曲线生成 ● Bézier曲线分割 ● Bézier曲线逼近 ● Bézier曲线拼接 ● Bézier曲线升阶 ● Bézier曲面定义 ● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法 Bézier曲面片的拼接 • 一阶连续性的获得需要将跨越边界的控制点安排在一直线上,且这样跨越边界控制点形成的共线线段保持一个比例常数。 • 或,在两曲面间跨越边界共线控制点所形成线段长L1与线段长L2之比为常数而得。即: • (Pm,j-Pm-1,j)=C·(Q1,j-P0,j)(C>0, j=0,1,…,m)