第四章 自由曲线和曲面 自由曲线和曲面是指那些形状比较复杂、不能用初等解析函数直接表示出来的曲线和曲面。汽车车身、飞机机翼和轮船船体等的曲线和曲面均属于这一类。一般情况下,它们需要利用插值或逼近的方法,对型值点进行拟合,得到拟合曲线和曲面。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Slides:



Advertisements
Similar presentations
一、 一阶线性微分方程及其解法 二、 一阶线性微分方程的简单应用 三、 小结及作业 §6.2 一阶线性微分方程.
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
第八章 第四节 机动 目录 上页 下页 返回 结束 一个方程所确定的隐函数 及其导数 隐函数的微分法.
2.6 隐函数微分法 第二章 第二章 二、高阶导数 一、隐式定义的函数 三、可微函数的有理幂. 一、隐函数的导数 若由方程 可确定 y 是 x 的函数, 由 表示的函数, 称为显函数. 例如, 可确定显函数 可确定 y 是 x 的函数, 但此隐函数不能显化. 函数为隐函数. 则称此 隐函数求导方法.
第二章 导数与微分 一. 内 容 要 点 二. 重 点 难 点 三. 主 要 内 容 四. 例 题与习题.
全微分 教学目的:全微分的有关概念和意义 教学重点:全微分的计算和应用 教学难点:全微分应用于近似计算.
2.3 函数的微分. 四川财经职业学院 课前复习 高阶导数的定义和计算方法。 作业解析:
精品课程《解析几何》 第三章 平面与空间直线.
§3.4 空间直线的方程.
《解析几何》 -Chapter 3 §7 空间两直线的相关位置.
第八章 向量代数 空间解析几何 第五节 空间直线及其方程 一、空间直线的点向式方程 和参数方程 二、空间直线的一般方程 三、空间两直线的夹角.
3.4 空间直线的方程.
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
《解析几何》 乐山师范学院 0 引言 §1 二次曲线与直线的相关位置.
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
一、二阶行列式的引入 用消元法解二元线性方程组. 一、二阶行列式的引入 用消元法解二元线性方程组.
第三章 函数逼近 — 最佳平方逼近.
第六章 曲线和曲面(二) 2017/3/22 Thank you for your time today.
曲线曲面 从卫星的轨道、导弹的弹道,到汽车和飞机等的外形,直至日常生活中的图案和花样设计,都离不了对曲线的描述和绘制。可以说,几乎没有一张设计图纸上是没有曲线的。 在我们遇到的各种各样的曲线中,归纳起来,大概不外乎两类: 一类是曲线可以用一个标准的解析式来表示,称为曲线的方程。 第二类曲线的特点是,不能确切给出描述整个曲线的方程,它们往往是由一些从实际测量得到的一系列离散数据点来确定。这些数据点也称为型值点。
第四章 函数的积分学 第六节 微积分的基本公式 一、变上限定积分 二、微积分的基本公式.
第四章 一元函数的积分 §4.1 不定积分的概念与性质 §4.2 换元积分法 §4.3 分部积分法 §4.4 有理函数的积分
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
第二章 导数与微分 第二节 函数的微分法 一、导数的四则运算 二、复合函数的微分法.
第三章 导数与微分 习 题 课 主要内容 典型例题.
2-7、函数的微分 教学要求 教学要点.
初中数学 九年级(下册) 5.3 用待定系数法确定二次函数表达式.
探索三角形相似的条件(2).
第5章 曲线和曲面 几何造型技术是一项研究在计算机中,如何表达物体模型形状的技术。在航空航天、汽车、造船、机械、建筑和电子等行业得到了广泛的应用。 拟合曲线可分为两种类型:曲线过所有的给定型值点(插值放样);另一种曲线是,并不一定通过给定的型值点,而只是比较好地接近这些点(逼近)。这类曲线(或曲面)比较适合于外形设计。
7.1 多边形表面 7.2 二次曲面和超二次曲面 7.3 样条表示 7.4 三次插值样条 7.5 Bézier曲线和曲面
绘制圆与多边形 椭圆形 绘制椭圆形的方法是 drawOval(x ,y , width , height), 绘制实心椭圆形的方法是
第四章 曲线和曲面 第一节 曲线和曲面表示的基础知识 第二节 Hermite多项式 第三节 Coons曲面 第四节 Bezier曲线和曲面
计算机数学基础 主讲老师: 邓辉文.
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
双曲线的简单几何性质 杏坛中学 高二数学备课组.
使用矩阵表示 最小生成树算法.
2.1.2 空间中直线与直线 之间的位置关系.
工业机器人技术基础及应用 主讲人:顾老师
第二章 函数 插值 — 分段低次插值.
第二十二章 曲面积分 §1 第一型曲面积分 §2 第二型曲面积分 §3 高斯公式与斯托克斯公式.
实数与向量的积.
线段的有关计算.
第四章 一次函数 4. 一次函数的应用(第1课时).
3.3 垂径定理 第2课时 垂径定理的逆定理.
作业 P158 习题 2 1(2)(4) (5). 2(1). 预习 P156— /5/2.
复习: 若A(x1,y1,z1) , B(x2,y2,z2), 则 AB = OB - OA=(x2-x1 , y2-y1 , z2-z1)
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第四章 第四节 函数图形的描绘 一、渐近线 二、图形描绘的步骤 三 、作图举例.
函 数 连 续 的 概 念 淮南职业技术学院.
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
直线和圆的位置关系 ·.
学习任务三 偏导数 结合一元函数的导数学习二元函数的偏导数是非常有用的. 要求了解二元函数的偏导数的定义, 掌握二元函数偏导数的计算.
O x y i j O x y i j a A(x, y) y x 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算.
空间平面与平面的 位置关系.
第六章 曲线和曲面(三) 2019/5/19 Thank you for your time today.
第二章 函 数 插 值 — 三次样条插值.
分数再认识三 真假带分数的练习课.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
平行四边形的性质 鄢陵县彭店一中 赵二歌.
2019/5/21 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 11:21:44.
第三章 空间向量与立体几何 3.1 空间向量及其运算 3.1.2空间向量的数乘运算.
物体的几何表示 (2).
§2 方阵的特征值与特征向量.
直线的倾斜角与斜率.
9.5空间向量及其运算 2.共线向量与共面向量 淮北矿业集团公司中学 纪迎春.
正弦函数的性质与图像.
位似.
§4.5 最大公因式的矩阵求法( Ⅱ ).
3.3.2 两点间的距离 山东省临沂第一中学.
Presentation transcript:

第四章 自由曲线和曲面 自由曲线和曲面是指那些形状比较复杂、不能用初等解析函数直接表示出来的曲线和曲面。汽车车身、飞机机翼和轮船船体等的曲线和曲面均属于这一类。一般情况下,它们需要利用插值或逼近的方法,对型值点进行拟合,得到拟合曲线和曲面。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

如果用u表示参数,二维空间自由曲线的参数方程可以记为: 4.1 曲线曲面的参数表示及连续性 4.1.1曲线曲面的参数表示 如果用u表示参数,二维空间自由曲线的参数方程可以记为: x﹦x(u),y﹦y(u) u[0,1] 二维空间曲线上一点的参数表示为: P(u)﹦[x(u),y(u)] 三维空间自由曲线的参数方程表示为: x﹦x(u),y﹦y(u),z﹦z(u);u[0,1] 曲线上一点的参数表示为: P(u)﹦[x(u),y(u),z(u)] 同样,如果用u,w表示参数,二维空间自由曲面的参数方程表示为: x﹦x(u,w),y﹦y(u,w) u,w[0,1] 曲面上一点的参数表示为: P(u,w)﹦[x(u,w),y(u,w)] 三维空间自由曲面的参数方程表示为: x﹦x(u,w),y﹦y(u,w),z﹦z(u,w);u,w[0,1] P(u,w)﹦[x(u,w),y(u,w),z(u,w)]。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

给出一组有序的型值点列,根据应用的要求来得到一条光滑曲线,通常采用两种不同的方法,即插值方法和逼近方法。 4.1.2 插值、逼近和拟合 给出一组有序的型值点列,根据应用的要求来得到一条光滑曲线,通常采用两种不同的方法,即插值方法和逼近方法。 插值方法要求生成的曲线通过每个给定的型值点。曲线插值方法有多项式插值,分段多项式插值,样条函数插值等。 逼近方法要求生成的曲线靠近每个型值点,但不一定要求通过每个点。逼近方法有最小二乘法,Bezier方法,B样条方法等。 用插值或逼近来构造曲线的方法通称为曲线拟合方法。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

0阶导数连续性,记作C0连续,是指曲线相连。即第一个曲线段在u﹦1处的x,y,z值与第二个曲线段在u﹦0处的x,y,z值相等。 4.1.3 参数连续性条件 0阶导数连续性,记作C0连续,是指曲线相连。即第一个曲线段在u﹦1处的x,y,z值与第二个曲线段在u﹦0处的x,y,z值相等。 一阶导数连续性,记作C1连续,指两个相邻曲线段在交点处有相同的一阶导数。 二阶导数连续性,记作C2连续,指两个相邻曲线段在交点处有相同的一阶和二阶导数。高阶参数连续性可类似定义。 0阶几何连续性,记为G0连续,与0阶导数连续性相同。即两个曲线段在公共点处有相同的坐标。 一阶几何连续性,记为G1连续,指一阶导数在两个相邻段的交点处成比例,而大小不一定相等。 二阶几何连续性,记为G2连续,指两个曲线段在相交处其一阶和二阶导数均成比例。G2连续下,两个曲线段在交点处的曲率相等。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

在计算机图形学应用中使用几种不同的样条描述。每种描述是一个带有某特定边界条件多项式的特殊类型。 4.1.4 参数样条曲线 1.样条曲线 在计算机图形学中,术语样条曲线指由多项式曲线段连接而成的曲线,在每段的边界处满足特定连续条件。而样条曲面可用两组正交样条曲线来描述。样条用来设计曲线和曲面形状,典型的CAD应用包括汽车、飞机和航天飞机表面设计以及船壳设计。 2.参数样条表示 在计算机图形学应用中使用几种不同的样条描述。每种描述是一个带有某特定边界条件多项式的特殊类型。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

例如空间一条曲线用三次参数方程可以表示如下: x(u)﹦axu 3﹢bxu 2﹢cxu﹢dx y(u)﹦ayu 3﹢byu 2﹢cyu﹢dy z(u)﹦azu 3﹢bzu 2﹢czu﹢dz u[0,1] 或 P(u)﹦au 3﹢bu 2﹢cu﹢d u[0,1] 如果曲线的边界条件设定为端点处满足给定坐标值P(0)和P(1),同时端点处的导数也满足给定值P’(0)和P’(1)。这四个边界条件对决定上式中方程的系数是充分条件。例如已知x(0)、x(1)、x’(0)和x’(1),则ax、bx、cx和dx就可以求出。解出各个系数后的上)式就是一种确定的三次参数样条表示式。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

4.2 三次样条插值曲线 实际上,通常使用的是三次样条曲线。这是因为三次多项式曲线是能使曲线段的端点通过特定的点,并能使曲线段在连接处保持位置和斜率连续性的最低阶次的多项式。与更高次多项式相比,三次多项式只需较少的计算和存储且较稳定,而更低次多项式又难以用来描述复杂形状的曲线。 如果想使用三次样条获得一条通过各个型值点的连续曲线,需要利用三次样条分段插值得到通过每个型值点的分段三次样条曲线。对n+1个型值点,分段插值时段与段之间要建立合适的边界条件,既能使各段之间平滑连续,又可建立起足够的方程数,求出所有的系数。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

其中,Dk和Dk+1分别为Pk和Pk+1处的一阶导数。 将参数方程写成矩阵形式为: 4.2.1 Hermite 样条插值曲线 Hermite样条插值(以法国数学家Charles Hermite命名)使用型值点和型值点处的一阶导数建立边界条件。设P和P为第K个和第K+1个型值点,Hermite样条插值边界条件规定为: P(0) ﹦Pk P(1) ﹦Pk+1 P’(0)﹦Dk P’(1)﹦Dk+1 其中,Dk和Dk+1分别为Pk和Pk+1处的一阶导数。 将参数方程写成矩阵形式为: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

将边界条件P(0) ﹦Pk和P(1) ﹦Pk+1代入方程得: Pk ﹦d Pk+1﹦a﹢b﹢c﹢d 一阶导数为: 将边界条件P’(0)﹦Dk和P’(1)﹦Dk+1代入方程得: Dk ﹦c Dk+1﹦3a﹢2b﹢c 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

由边界条件构成的4个方程联立: Pk ﹦d Pk+1﹦a﹢b﹢c﹢d Dk ﹦c Dk+1﹦3a﹢2b﹢c 写成矩阵的形式为: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

解此方程得: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

称为Hermite矩阵,插值样条参数方程可以写成 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

P(u)﹦Pk(2u3﹣3u2﹢1)﹢Pk+1(-2u3﹢3u2) +Dk(u3﹣2u2﹢u)﹢Dk+1(u3﹣u2) 将上式展开写成代数形式为: P(u)﹦Pk(2u3﹣3u2﹢1)﹢Pk+1(-2u3﹢3u2) +Dk(u3﹣2u2﹢u)﹢Dk+1(u3﹣u2) ﹦PkH0(u)﹢Pk+1H1(u)﹢DkH2(u)﹢Dk+1H3(u) 其中 H0(u)﹦2u3﹣3u2﹢1 H1(u)﹦-2u3﹢3u2 H2(u)﹦u3﹣2u2﹢u H3(u)﹦u3﹣u2 称为Hermite样条调和函数,因为它们调和了边界约束值,使在整个参数范围内产生曲线的坐标值。调和函数仅与参数u有关,而与初始条件无关,且调和函数对于空间的三个坐标分量(x,y,z)是相同的。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

下图表示出Hermite样条曲线的调和函数随参数u变化的曲线 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

﹢(-3Pk﹢3Pk+1-2Dk-Dk+1)u2+Dku﹢Pk 写成坐标分量形式则如下式: 还可将方程整理成如下形式: P(u)﹦(2Pk-2Pk+1+Dk﹢Dk+1)u3 ﹢(-3Pk﹢3Pk+1-2Dk-Dk+1)u2+Dku﹢Pk 写成坐标分量形式则如下式: x(u)﹦(2xk-2xk+1+xk'﹢xk+1')u3 ﹢(-3xk﹢3xk+1-2xk'-xk+1')u2+xk'u﹢xk y(u)﹦(2yk-2yk+1+yk'﹢yk+1')u3 ﹢(-3yk﹢3yk+1-2yk'-yk+1')u2+yk'u﹢yk z(u)﹦(2zk-2zk+1+zk'﹢zk+1')u3 ﹢(-3zk﹢3zk+1-2zk'-zk+1')u2+zk'u﹢zk 如果是平面曲线,则只有x和y分量。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

例:给定9个型值点,其中起始点和终止点是同一个点,从而其特征多边形是一个首尾相接的封闭多边形,具体坐标位置如下: (100,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300),(220,280),(100,300) 假定各点处的一阶导数数值如下: (70,-70), (70,-70), (70,-70),(70,-70), (70,70), (70,70), (-70,70),(-70,70), (70,-70) 用Hermite插值方法绘制曲线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Hermit三次曲线算法主要实现子程序实例 void HermitCurve(HDC hdc) { int i; int arry1[9][2]={100,300,120,200,220,200,270,100,370,100,420,200,420,300,220,280,100,300}; int arry2[9][2]={70,-70,70,-70,70,-70,70,-70,70,70,70,70,-70,70,-70,70,70,-70}; for(i=0;i<8;i++) SetColor(RGB(0,0,255),hdc); line(hdc,arry1[i][0],arry1[i][1],arry1[i+1][0],arry1[i+1][1]); SetColor(RGB(255,0,0),hdc); Hermit3(hdc,arry1,arry2,i,100); } void Hermit3(HDC hdc,int arry1[2][2],int arry2[2][2],int n,int steps) int i,x,y,k1,k2,k3,k4,m1,m2,m3,m4; float a0,a1,a2,a3,b0,b1,b2,b3,dt,t,t2,t3; k1=arry1[n][0]; k2=arry1[n+1][0]; k3=arry2[n][0]; k4=arry2[n+1][0]; m1=arry1[n][1]; m2=arry1[n+1][1]; m3=arry2[n][1]; m4=arry2[n+1][1]; 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

MoveToEx(hdc,arry1[n][0],arry1[n][1],NULL); a0 = k1; a1 = k3; a2 = -3*k1+3*k2-2*k3-k4; a3 = 2*k1-2*k2+k3+k4; b0 = m1; b1 = m3; b2 = -3*m1+3*m2-2*m3-m4; b3 = 2*m1-2*m2+m3+m4; dt = 1.0/steps; for(i=1;i<steps;i++) { t = i*dt; t2 = t*t; t3 = t*t2; x = a0+a1*t+a2*t2+a3*t3; y = b0+b1*t+b2*t2+b3*t3; LineTo(hdc,x,y); Sleep(5); } 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Hermit三次曲线绘制演示 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Hermite样条曲线比较简单,易于理解,但要求确定每个型值点处的一阶导数作为初始条件,这是很不方便的,有时甚至是难于实现的。更好的做法是不需要输入曲线斜率值或其它几何信息就能生成样条曲线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

其中t为一可调参数,称为张力参数,可以控制Cardinal样条曲线型值点间的松紧程度。 象Hermite样条曲线一样,Cardinal样条曲线也是插值分段三次曲线,且边界条件也是限定每段曲线端点处的一阶导数。与Hermite样条曲线的区别是,在Cardinal样条曲线中端点处的一阶导数值是由两个相邻型值点坐标来计算的。 设相邻的四个型值点分别记为Pk-1、Pk、Pk+1、Pk+2, Cardinal样条插值方法规定Pk、Pk+1 两型值点间插值多项式的边界条件为: P(0) ﹦Pk P(1) ﹦Pk+1 P’(0)﹦(1﹣t)(Pk+1﹣Pk-1)/2 P’(1)﹦(1﹣t)(Pk+2﹣Pk)/2 其中t为一可调参数,称为张力参数,可以控制Cardinal样条曲线型值点间的松紧程度。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

记S=(1﹣t)/2,用类似Hermite曲线样条中的方法,将Cardinal边界条件代入参数方程,可以得到矩阵表达式: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

P(u)﹦Pk-1(-su3﹢2su2﹣su)﹢Pk((2﹣s)u3 ﹢(s﹣3)u2﹢1)﹢Pk+1((s﹣2)u3 其中 称为Cardinal矩阵。 将式子展开写成代数形式为: P(u)﹦Pk-1(-su3﹢2su2﹣su)﹢Pk((2﹣s)u3 ﹢(s﹣3)u2﹢1)﹢Pk+1((s﹣2)u3 ﹢(3﹣2s)u2﹢su)﹢Pk+2(su3﹣su2) 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

称为Cardinal样条调和函数。下图是Cardinal样条调和函数的曲线图。 其中 C0(u)﹦-su3﹢2su2﹣su C1(u)﹦(2﹣s)u3﹢(s﹣3)u2﹢1 C2(u)﹦(s﹣2)u3﹢(3﹣2s)u2﹢su C3(u)﹦su3﹣su2 称为Cardinal样条调和函数。下图是Cardinal样条调和函数的曲线图。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

P(u)﹦(-sPk-1﹢(2﹣s)Pk﹢(s﹣2)Pk+1﹢sPk+2)u3 还可将方程整理成如下形式: P(u)﹦(-sPk-1﹢(2﹣s)Pk﹢(s﹣2)Pk+1﹢sPk+2)u3 ﹢(2sPk-1﹢(s﹣3)Pk﹢(3﹣2s)Pk+1﹣sPk+2)u2 ﹢(-sPk-1﹢sPk+1)u﹢Pk 将方程式写成坐标分量的形式为: x(u)﹦(-sxk-1﹢(2﹣s)xk﹢(s﹣2)xk+1﹢sxk+2)u3 ﹢(2sxk-1﹢(s﹣3)xk﹢(3﹣2s)xk+1﹣sxk+2)u2 ﹢(-sxk-1﹢sxk+1)u﹢xk y(u)﹦(-syk-1﹢(2﹣s)yk﹢(s﹣2)yk+1﹢syk+2)u3 ﹢(2syk-1﹢(s﹣3)yk﹢(3﹣2s)yk+1﹣syk+2)u2 ﹢(-syk-1﹢syk+1)u﹢yk z(u)﹦(-szk-1﹢(2﹣s)zk﹢(s﹣2)zk+1﹢szk+2)u3 ﹢(2szk-1﹢(s﹣3)zk﹢(3﹣2s)zk+1﹣szk+2)u2 ﹢(-szk-1﹢szk+1)u﹢zk 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

例:取t=0,则s=1,上面的平面代数方程变为: 可以看出,一个Cardinal样条曲线完全由四个连续的型值点给出。中间两个型值点是曲线段端点,另外二个点用来辅助计算端点斜率。只要给出一组型值点的坐标值,就可以分段计算出Cardinal样条曲线,并组合成一整条三次样条曲线。 例:取t=0,则s=1,上面的平面代数方程变为: x(u)﹦(-xk-1﹢xk﹣xk+1﹢xk+2)u3 ﹢(2xk-1﹣2xk﹢xk+1﹣xk+2)u2 ﹢(-xk-1﹢xk+1)u﹢xk y(u)﹦(-yk-1﹢yk﹣yk+1﹢yk+2)u3 ﹢(2yk-1﹣2yk﹢yk+1﹣yk+2)u2 ﹢(-yk-1﹢yk+1)u﹢yk 设在平面上给定的9个型值点坐标分别为:(100,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300), (220,280),(100,300) 起始点和终止点相重。画出其曲线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Cardinal三次曲线算法主要实现子程序实例 void CardinalCurve(HDC hdc) { int i; int arry[9][2]={100,300,120,200,220,200,270,100,370,100,420,200,420,300,220,280,100,300}; for(i=0;i<8;i++) SetColor(RGB(0,0,255),hdc); line(hdc,arry[i][0],arry[i][1],arry[i+1][0],arry[i+1][1]); SetColor(RGB(255,0,0),hdc); Cardinal3(hdc,arry,i,100); } void Cardinal3(HDC hdc,int arry[4][2],int n,int steps) int i,x,y,k1,k2,k3,k4,m1,m2,m3,m4; float a0,a1,a2,a3,b0,b1,b2,b3,dt,t,t2,t3; if (n==0) k1=arry[8][0]; else k1=arry[n-1][0]; k2=arry[n][0]; k3=arry[n+1][0]; 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

if (n<7) k4=arry[n+2][0]; else k4=arry[1][0]; if (n==0) m1=arry[8][1]; m1=arry[n-1][1]; m2=arry[n][1]; m3=arry[n+1][1]; m4=arry[n+2][1]; m4=arry[1][1]; MoveToEx(hdc,arry[n][0],arry[n][1],NULL); a0 = k2; a1 = -k1+k3; a2 = 2*k1-2*k2+k3-k4; a3 = -k1+k2-k3+k4; b0 = m2; b1 = -m1+m3; b2 = 2*m1-2*m2+m3-m4; b3 = -m1+m2-m3+m4; dt = 1.0/steps; 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

for(i=1;i<steps;i++) { t = i*dt; t2 = t*t; t3 = t*t2; x = a0+a1*t+a2*t2+a3*t3; y = b0+b1*t+b2*t2+b3*t3; LineTo(hdc,x,y); Sleep(5); } 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Cardinal三次曲线绘制演示 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

4.3 Bezier 曲线 前面讨论过的三次参数样条曲线通过给定的型值点,属于样条插值曲线,适合于已知曲线上的某些点而生成曲线的情形。但在外形设计时,初时给出的型值点有时并不精确,由给定的型值点生成的样条曲线并不能满足性能或美观的要求,需要加以修改。但多数插值样条曲线作为外形设计工具不能直观地表示出应该如何控制和修改曲线的形状,缺少灵活性和直观性。法国雷诺汽车公司工程师P.E.Bezier在1962年提出了一种新的参数曲线表示方法,称为Bezier曲线。这种方法的特点是所输入型值点与生成曲线之间的关系明确,能比较方便地通过修改输入参数来改变曲线的形状和阶次。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Bezier曲线次数严格依赖于确定该段曲线的控制点个数,通常由(n﹢1)个顶点定义一个n次多项式,曲线上各点参数方程式为: 1. 数学表达式 Bezier曲线次数严格依赖于确定该段曲线的控制点个数,通常由(n﹢1)个顶点定义一个n次多项式,曲线上各点参数方程式为: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

其中,Pk为特征多边形第k个顶点的坐标值(xk,yk,zk),而基函数Bk,n(u)的定义如下 函数Bk,n(u)称为Bernstein多项式,其中 为组合公式。 式中参数u的取值范围为[0,1],n是多项式次数, 也是曲线次数。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Bezier曲线及其特征多边形图例: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

(1)曲线的起点和终点同特征多边形的起点和终点重合 对Bernstein多项式有: 2. Bezier曲线的性质 (1)曲线的起点和终点同特征多边形的起点和终点重合 对Bernstein多项式有: 当u﹦0时,只有k﹦0的项不为 0,其它项都为uk﹦0k﹦0,因此 其中规定:0!=1,00=1。 当 u﹦1 时,只有k﹦n 的项不为0,其它项为(1-u)n-k﹦0 n-k﹦0, 因此 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

在起始点u﹦0, B0,n-1(0)﹦1,其余项均为0,故有: P’(0)﹦n(P1﹣P0) (2)一阶导数 对参数u求导得: 在起始点u﹦0, B0,n-1(0)﹦1,其余项均为0,故有: P’(0)﹦n(P1﹣P0) 在终止点u﹦1, Bn-1,n-1(1)﹦1,其余项均为0,故有: P’(1)= n(Pn﹣Pn-1) 即Bezier曲线在端点处的一阶导数只同相近的两个控制点有关,其方向相同于两点的连线方向。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

P”(1)﹦n(n﹣1)(Pn﹣2Pn-1﹢Pn-2) 即Bezier曲线在端点处的二阶导数只同相近的三个控制点有关。 (3)二阶导数 式(4-14)对参数u求二阶导数可得: 在起始点u﹦0处的二阶导数为: P”(0)﹦n(n﹣1)(P2﹣2P1﹢P0) 在终止点u﹦1处的二阶导数为: P”(1)﹦n(n﹣1)(Pn﹣2Pn-1﹢Pn-2) 即Bezier曲线在端点处的二阶导数只同相近的三个控制点有关。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

(4)凸包性 Bezier曲线的另一个重要性质是它落在特征多边形顶点所形成的凸包内。即当特征多边形为凸时,Bezier曲线也是凸的;当特征多边形有凹有凸时,其曲线的凸凹形状与之对应。Bezier曲线的凸包性质保证了多项式曲线随控制点平稳前进而不会振荡。 (5)几何不变性 由Bezier曲线的数学定义式(4-14)知,曲线的形状由特征多边形的顶点Pk(k﹦0,1,...,n)唯一确定,与坐标系的选取无关,这就是几何不变性。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲线由四个控制点P0、P1、P2、P3定义: 一般地说,可以用任何数目的控制点拟合出一条Bezier曲线,但这需要计算更高次的多项式。复杂曲线可以由一些较低次数的Bezier曲线段连接而成,较小的曲线段连接也便于更好地控制小区域内的曲线形状,最常使用的是三次Bezier曲线。 三次Bezier曲线由四个控制点P0、P1、P2、P3定义: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

P(u)=(-u3﹢3u2﹣3u﹢1)P0 + (3u3﹣6u2﹢3u)P1 +(-3u3﹢3u2)P2﹢u3P3 展开后的表达式为: P(u)=(-u3﹢3u2﹣3u﹢1)P0 + (3u3﹣6u2﹢3u)P1 +(-3u3﹢3u2)P2﹢u3P3 =B0,3(u)P0 + B1,3(u)P1+ B2,3(u)P2﹢B3,3(u)P3 其中 B0,3(u)﹦-u3﹢3u2﹣3u﹢1 B1,3(u)﹦3u3﹣6u2﹢3u B2,3(u)﹦-3u3﹢3u2 B3,3(u)﹦u3 称为三次Bezier曲线的调和函数,图4.6表示出调和函数的四条曲线。这四条曲线形成了三次Bezier曲线的一组基,任何三次Bezier曲线都是这四条曲线的线性组合。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲线的调和函数: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲线函数式用矩阵形式表示为: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲线的在端点处的一阶导数为: P’(0)﹦3(P1﹣P0) P’(1)= 3(P3﹣P2) 二阶导数为: x(u)﹦(-u3﹢3u2﹣3u﹢1)x0﹢(3u3﹣6u2﹢3u)x1 ﹢(-3u3﹢3u2)x2﹢u3x3 y(u)﹦(-u3﹢3u2﹣3u﹢1)y0﹢(3u3﹣6u2﹢3u)y1 ﹢(-3u3﹢3u2)y2﹢u3y3 z(u)﹦(-u3﹢3u2﹣3u﹢1)z0﹢(3u3﹣6u2﹢3u)z1 ﹢(-3u3﹢3u2)z2﹢u3z3 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

对于二维平面的情况,只有x,y坐标分量,可以给出四点三次Bezier曲线如下的算法描述: begin x=x0 y=y0 实际生成曲线时,按问题的要求取一合适的步长,控制u从0到1变化,求出一系列(x,y)坐标点,将其用小线段顺序连接起来,就可以得到一条Bezier曲线。 对于二维平面的情况,只有x,y坐标分量,可以给出四点三次Bezier曲线如下的算法描述: begin x=x0 y=y0 moveto (x,y) for u﹦0 to 1 step u x﹦B0,3(u)x0﹢B1,3(u)x1﹢B2,3(u)x2﹢B3,3(u)x3 y﹦B0,3(u)y0﹢B1,3(u)y1﹢B2,3(u)y2﹢B3,3(u)y3 lineto (x,y) endfor end 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲线例子: 设在平面上给定的7个控制点坐标分别为:(100,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300)。画出其曲线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲线绘制演示 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

4.3.3 Bezier 曲线的光滑连接 复杂曲线可以由一些较低次数的Bezier曲线段连接而成,工程上通常使用分段三次Bezier曲线来描述。将分段的三次Bezier曲线连接起来构成三次Bezier曲线,其关键问题是如何保证连接处具有连续性。 设有两段三次Bezier曲线,其中一段曲线由控制点P0、P1、P2、P3生成,另一条曲线由控制点Q0、Q1、Q2、Q3生成,P3(Q0)是两段曲线的公共控制点,如下图所示。如果两段曲线要达到光滑连接,需要一阶导数连续,甚至二阶导数连续。对于一阶导数连续,由前面所推出的公式,第一段曲线终点处的导数为: P’(1)﹦3(P3﹣P2) 第二段曲线起点处的导数为: Q’(0)﹦3(Q0﹣Q1) 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

两段Bezier曲线光滑连接的条件示意图 一阶导数要连续,则应有P’(1)﹦Q’(0),即: P3﹣P2﹦Q1﹣Q0 也即要求P2P3(Q0)Q1三点共线,而且P3(Q0)为中点, 是它们的公切线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

由公式(4-28), 第一段曲线终点处的二阶导数为: P”(1)﹦6(P3﹣2P2﹢P1) 第二段曲线起点处的二阶导数为: Q”(0)﹦6(Q2﹣2Q1﹢Q0) 要达到二阶导数连续,则应有P”(1)﹦Q”(0),即: P3﹣2P2﹢P1﹦Q2﹣2Q1﹢Q0 整理后可得: Q2-P1﹦2(Q1-P2),即连线Q2P1和Q1P2要平行,且Q2P1的长度为Q1P2的两倍。 Bezier样条曲线为外形设计提供了灵活直观的方法,但对(n+1)个控制点,需要n阶Bernstein多项式,当n较大时,特征多边形对曲线控制减弱,曲线修改和使用都不便。如果使用低次多项式分段实现,光滑连接所需要的条件要求比较高。另外,如果改变任一个控制点位置,整个曲线都受到影响,缺乏对曲线形状进行局部修改的灵活性。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

4.4 B样条曲线 1974年,Gordon与 Riesenfeld等人拓广了Bezier曲线,使用B样条函数代替Bernstein多项式函数。B样条(Basic Spline,B-spline)曲线除保持了Bezier曲线的直观性和凸包性等优点之外,多项式次数也独立于控制点数目,而且B样条曲线允许局部调整。由于以上原因,B样条曲线得到越来越广泛的应用。 4.4.1 B样条的定义 B样条曲线分为均匀B样条曲线(Uniform B-spline)和一般非均匀B样条曲线(General Non-uniform B-spline),这里,我们只学习均匀B样条曲线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

与Bezier曲线类似,依次用线段连接Pk中相邻两个控制点所得折线多边形称为B样条特征多边形。式中 B样条曲线是由若干样条曲线段光滑连接而成,首先定义B样条曲线段。设给定n+1个控制点,用Pk表示(k=0,1,...,n),n次B样条曲线段的参数表达式为: u[0, 1] 与Bezier曲线类似,依次用线段连接Pk中相邻两个控制点所得折线多边形称为B样条特征多边形。式中 其中 u[0, 1], k﹦0,1,...,n。 Fk,n(u)称为B样条基函数,它是由k从0到n共(n+1)个函数组成。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

B样条曲线不同于Bezier曲线整体生成,它是分段生成连接起来的, B样条曲线段之间是自然连接的。 给定控制点Pk(k﹦0,1,...,n,...,n+m+1)(即至少n+1个控制点),则 n 次B样条整体曲线表达式为: u[0, 1],i=0,1,...,m 即,对于(n+m+1)个控制点,使用n次B样条函数,生成曲线时需要(m+1)次计算。各段B样条曲线能够自动光滑连接形成一整条B样条曲线,曲线的整体称为n次B样条曲线。当m=0时,需要1次计算。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

工程上最常使用的是三次B样条曲线。对三次B样条曲线函数式为: u[0, 1] B样条函数的表达式为: 展开有: F0,3(u)﹦(-u3﹢3u2﹣3u﹢1 )/6; F1,3(u)﹦(3u3﹣6u2﹢4)/6; F2,3(u)﹦(-3u3﹢3u2﹢3u﹢1 )/6; F3,3(u)﹦u3 /6。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

如果给定四个控制点,使用三次B样条函数计算一次就可以得到B样条曲线。将三次B样条函数式用矩阵形式表示为: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

x(u)﹦(-u3/6﹢u2/2﹣u/2﹢1/6)x0﹢(u3/2 ﹣u2﹢2/3)x1 将(4-34)分别写成坐标分量的形式如下: x(u)﹦(-u3/6﹢u2/2﹣u/2﹢1/6)x0﹢(u3/2 ﹣u2﹢2/3)x1 ﹢(-u3/2﹢u2/2﹢u/2﹢1/6)x2﹢u3x3/6 y(u)﹦(-u3/6﹢u2/2﹣u/2﹢1/6)y0﹢(u3/2 ﹣u2﹢2/3)y1 ﹢(-u3/2﹢u2/2﹢u/2﹢1/6)y2﹢u3y3/6 z(u)﹦(-u3/6﹢u2/2﹣u/2﹢1/6)z0﹢(u3/2 ﹣u2﹢2/3)z1 ﹢(-u3/2﹢u2/2﹢u/2﹢1/6)z2﹢u3z3/6 当u从0到1变化时,曲线将在P0到P3之间顺序地连续形成。 如果给定控制点Pk(k﹦0,1,...,n;n≥3),使用三次B样条函数生成整体B样条曲线需要计算(n-2)次。第一次计算使用0~3四个控制点生成第一段B样条曲线,然后向前移动一个控制点,使用1~4四个控制点计算生成第二段B样条曲线,两段B样条曲线会自然形成平滑连接,这也是B样条曲线的主要优点之一。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

用三次B样条函数生成二维B样条曲线的算法描述如下: begin x﹦F0,3(0)x0﹢F1,3(0)x1﹢F2,3(0)x 2﹢F3,3(0)x 3 y﹦F0,3(0)y0﹢F1,3(0)y1﹢F2,3(0)y 2﹢F3,3(0)y 3 moveto (x,y) for k﹦0 to n-3 for u﹦0 to 1 step u x﹦F0,3(u)xk﹢F1,3(u)xk+1﹢F2,3(u)x k+2﹢F3,3(u)x k+3 y﹦F0,3(u)yk﹢F1,3(u)yk+1﹢F2,3(u)y k+2﹢F3,3(u)y k+3 lineto (x,y) endfor end 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

B样条曲线也是逼近曲线,一般情况下,曲线不经过控制点。分别取u=0及u=1得曲线端点值为: P(0)﹦(P0 + 4P1 + P2) 1.端点性质 B样条曲线也是逼近曲线,一般情况下,曲线不经过控制点。分别取u=0及u=1得曲线端点值为: P(0)﹦(P0 + 4P1 + P2) P(1)﹦(P1 + 4P2 + P3) 也就是说,起始控制点和终止控制点都不在曲线上。而且,三次B样条曲线,其起点只与前三个控制点有关,终点只与后三个控制点有关。实际上,B样条曲线都具有这种控制点的邻近影响性,这正是B样条曲线局部可调整性好的原因。 2. 连续性 B样条曲线段之间是自行光滑连续的。而且,n次B样条曲线具有n-1阶导数的连续性。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

3.局部性和扩展性 在三次B样条曲线中,每个B样条曲线段受四个控制点影响,改变一个控制点的位置,最多影响四个曲线段。因而,通过改变控制点的位置就可对B样条曲线进行局部修改,这是一个非常重要的性质。同时,B样条曲线在端点处的一阶和二阶导数也具有只受邻近控制点影响的性质。 由于B样条曲线可以由曲线段自然连续生成,如果增加一个控制点,就相应地增加了一段B样条曲线。此时,原有的B样条曲线不受影响,而且新增的曲线段与原曲线的连接处具有一阶、二阶导数连续的特性,这一点是由B样条曲线本身的性质所保证的,不需要附加任何条件,因而要对原有的B样条曲线加以扩展是很方便的。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲线例子: 设在平面上给定的7个控制点坐标分别为:(100,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300)。画出其曲线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲线绘制演示1 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

如果三个连续的控制点共线连成一段直线,则曲线将过直线上的一点,且在此点处,曲线直线化。可以用这样的点构成曲线的拐点,如下图所示。 4. 三次B样条的几种特殊情况 (1)三个连续的控制点共线 如果三个连续的控制点共线连成一段直线,则曲线将过直线上的一点,且在此点处,曲线直线化。可以用这样的点构成曲线的拐点,如下图所示。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

四个连续的控制点共线时,曲线变为直线,直线的长度小于四点构成的直线,如下图所示: (2)四个连续的控制点共线 四个连续的控制点共线时,曲线变为直线,直线的长度小于四点构成的直线,如下图所示: (3)三个连续的控制点重合 当三个连续的控制点重合时,形成尖点,如右图所示。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

通过上面的讨论,可以总结控制三次B样条曲线几何形态的一些方法,归纳如下: 1)为在曲线内嵌入-段直线,应用四个顶点共线的技巧。 2)为使曲线和特征多边形相切,应用三顶点共线或两顶点重合的技术。 3)为使曲线在某一顶点处形成尖角,可在该处使三个顶点相重合。 4)改变一个顶点,将影响相邻四段曲线的形状。 5)用三重顶点或二重顶点控制曲线的端点。用三重顶点时,曲线通过端点,但开始段B样条曲线是一小段直线;用二重顶点时,曲线不通过端点,而在多边形首边上靠近二重顶点的某一点开始。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

使用重点绘制通过起点和终点的三次B样条曲线例子: 设在平面上给定的11个控制点坐标分别为:(100,300),(100,300),(100,300),(120,200),(220,200),(270,100),(370,100),(420,200), (420,300),(420,300),(420,300)。 画出其曲线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲线绘制演示2 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

使用重点绘制封闭的三次B样条曲线例子: 设在平面上给定的15个控制点坐标分别为:(100,300),(100,300),(100,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300),(220,280), (100,300),(100,300),(100,300)。 画出其曲线。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲线绘制演示3 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

4.5 曲面 一些工程实际中应用的复杂自由曲面,如飞机、船舶、汽车等几何外形的描述,传统上是用人工作图法完成的。由于需要大量的试画和反复修正工作,以保证整个曲面光顺,所以非常繁琐而又费时。可以用样条的方法来设计与描述曲面,由计算机、绘图仪及图形显示器去完成绘制工作。 4.5.1空间曲面的参数表示 前面讨论了一条自由曲线可以由一系列的曲线段连接而成,与此类似,一自由曲面也可以由一系列的曲面片拼合而成。因此,曲面片是曲面的基础, 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

首先来讨论曲面片的数学表示形式及其性质。 一个曲面片是以曲线为边界的点的集合,这些点的坐标(x,y,z)均可用双参数的单值函数表示如下: x﹦x(u,w),y﹦y(u,w),z﹦z(u,w);u,w[0,1] 曲面上任一点的参数表示为: 如果用三次参数方程来表示曲面片,可以表示成如下形式: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

P(u,w)﹦a33u3w3﹢a32u3w2﹢a31u3w﹢a30u3 ﹢a23u2w3﹢a22u2w2﹢a21u2w﹢a20u2 ﹢a03w3﹢a02w2﹢a01w﹢a00 或 u,w∈[0,1] 式中u,w为参数。此参数方程共有16个系数,每一系数都有3个独立的坐标分量,因而总共有48个自由度。上式所描述的曲面片也称为双三次曲面片。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

下图所示为双三次曲面片的一例。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

实际上,一个双三次曲面片正是由参数空间相互正交的两组曲线集组成的,这两组曲线集分别由参数u及w来定义。一组曲线包括u=0及u=1这两条边界曲线及无穷多条由u=ui决定的中间曲线。与此相似,另一组曲线包括w=0及w=1这两条边界曲线以及无穷多条由w=wj决定的中间曲线。 4.5.2 Coons曲面 在讨论Hermite样条插值曲线时,我们知道了它是使用两个端点的坐标值及端点处的导数来决定一条曲线段。与此类似,Coons曲面是使用曲面片角点和角点处的偏导数来决定曲面。用 表示在角点u=0,w=0点处对u的偏导数,即: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

角点处的其它偏导数与此类似地表示。记: 称为角点信息矩阵。 Hermite样条曲线是利用Hermite样条调和函数对边界条件调和而生成,而Coons曲面是使用Hermite样条调和函数对角点信息矩阵进行调合生成曲面。Coons双三次曲面的数学表达式如下: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

P(u,w)﹦[H(u)][C][H(w)]T ﹦[U][Mh][C][Mh]T[W]T 其中 为Hermite矩阵。 [U]= [u3 u2 u 1],[W]= [w3 w2 w 1]为两个参数u,w的矩阵向量。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

角点信息矩阵[C]可分成四组,左上角一组可以代表四个角点的位置坐标,右上角和左下角分别代表边界曲线在四个角点处的两组切线向量。右下角一组则为角点处的混合偏导,也称为扭矢量。整个曲面就是由四个角点的这四组十六个信息来控制的。其中前三组信息完全决定了四条边界曲线的位置和形状。第四组角点扭矢量则与边界形状没有关系,但它却影响边界曲线上中间各点的切线向量,从而影响整个曲面片的形状。 双三次Coons曲面的主要缺点是必须给定矩阵[C]中的16个向量,才能唯一确定曲面片的位置和形状,而要给定扭矢量是相当困难的,因而使用起来不太方便。另外,两个曲面片之间的光滑连接也需要两个角点信息矩阵中相应偏导和混合偏导满足一定的条件。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Bezier曲面是由Bezier曲线拓广而来,它也是以Bernstein函数作为基函数,可以构造由空间网格的顶点位置来控制的曲面。 给定(n+1)×(m+1)个空间点Pij(i=0,1,...,n;j=0,1,...,m),Bezier曲面的数学表达式如下: u,w[0,1] 上述公式所描述的曲面称为n×m次Bezier曲面。Pij是P(u,w)的控制顶点,Bi,n(u)和Bj,m(w)为Bernstein基函数。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

依次用线段连接点列Pij(i=0,1,...,n;j=0,1,...,m)中相邻两点所形成的空间网格称为特征网格,如下图所示。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

2. 双三次Bezier曲面 当n=m=3时,得到双三次Bezier曲面。给定Pij(i=0,1,2,3;j=0,1,2,3)16个控制点,双三次Bezier曲面片的表示式为: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

﹦[U][Mbe][P][Mbe]T[W]T ﹦[B(u)][P][B(w)]T ﹦[U][Mbe][P][Mbe]T[W]T 式中[U]= [u3 u2 u 1],[W]= [w3 w2 w 1]为两个参数u,w的矩阵向量。而 是三次Bezier系数矩阵。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

Bezier曲面是由Bezier曲线交织而成的曲面。曲面生成时可以通过固定w, 变化u得到一簇Bezier曲线;固定u,变化w得到另一簇Bezier曲线。Bezier曲面与Bezier曲线具有相同的性质,不同曲面片之间的拼接需要满足一定的条件。对于C0连接性只要边界上的控制点匹配就可获得,而C1和C2连续性的条件类似于我们在前面讨论过的Bezier曲线光滑连接时的条件要求。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

下面,将式 P(u,w)﹦[U][Mbe][P][Mbe]T[W]T 展开成代数形式如下: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

=[-u3+3u2-3u+1,3u3-6u2+3u,-3u3+3u2,u3] =[(-u3+3u2-3u+1)P00+(3u3-6u2+3u)P10+(-3u3+3u2)P20+u3P30, (-u3+3u2-3u+1)P01+(3u3-6u2+3u)P11+(-3u3+3u2)P21+u3P31, (-u3+3u2-3u+1)P02+(3u3-6u2+3u)P12+(-3u3+3u2)P22+u3P32, (-u3+3u2-3u+1)P03+(3u3-6u2+3u)P13+(-3u3+3u2)P23+u3P33,] 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

写成分量坐标的形式为: 当是平面曲面时,只有x和y坐标分量。 =((-u3+3u2-3u+1)P00+(3u3-6u2+3u)P10+(-3u3+3u2)P20+u3P30)( -w3+3w2-3w+1) +((-u3+3u2-3u+1)P01+(3u3-6u2+3u)P11+(-3u3+3u2)P21+u3P31)( 3w3-6w2+3w) +((-u3+3u2-3u+1)P02+(3u3-6u2+3u)P12+(-3u3+3u2)P22+u3P32)(-3w3+3w2) +((-u3+3u2-3u+1)P03+(3u3-6u2+3u)P13+(-3u3+3u2)P23+u3P33)(w3) 写成分量坐标的形式为: x(u,w)=((-u3+3u2-3u+1)x00+(3u3-6u2+3u)x10+(-3u3+3u2)x20+u3x30)( -w3+3w2-3w+1) +((-u3+3u2-3u+1)x01+(3u3-6u2+3u)x11+(-3u3+3u2)x21+u3x31)( 3w3-6w2+3w) +((-u3+3u2-3u+1)x02+(3u3-6u2+3u)x12+(-3u3+3u2)x22+u3x32)(-3w3+3w2) +((-u3+3u2-3u+1)x03+(3u3-6u2+3u)x13+(-3u3+3u2)x23+u3x33)(w3) y(u,w)=((-u3+3u2-3u+1)y00+(3u3-6u2+3u)y10+(-3u3+3u2)y20+u3y30)( -w3+3w2-3w+1) +((-u3+3u2-3u+1)y01+(3u3-6u2+3u)y11+(-3u3+3u2)y21+u3y31)( 3w3-6w2+3w) +((-u3+3u2-3u+1)y02+(3u3-6u2+3u)y12+(-3u3+3u2)y22+u3y32)(-3w3+3w2) +((-u3+3u2-3u+1)y03+(3u3-6u2+3u)y13+(-3u3+3u2)y23+u3y33)(w3) z(u,w)=((-u3+3u2-3u+1)z00+(3u3-6u2+3u)z10+(-3u3+3u2)z20+u3z30)( -w3+3w2-3w+1) +((-u3+3u2-3u+1)z01+(3u3-6u2+3u)z11+(-3u3+3u2)z21+u3z31)( 3w3-6w2+3w) +((-u3+3u2-3u+1)z02+(3u3-6u2+3u)z12+(-3u3+3u2)z22+u3z32)(-3w3+3w2) +((-u3+3u2-3u+1)z03+(3u3-6u2+3u)z13+(-3u3+3u2)z23+u3z33)(w3) 当是平面曲面时,只有x和y坐标分量。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

下面举几个例子: 例1:给定16个控制点坐标如下: (100,300),(110,180),(120,160),(140,230), (180,200),(190,130),(200,110),(240,170), (310,200),(320,130),(330,110),(370,170), (420,300),(430,180),(450,160),(490,240)。 绘制三次Bezier曲面。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲面绘制演示1 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

不绘制特征网格曲面演示2 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲面曲面绘制演示3 例2:给定16个控制点坐标如下: (100,270),(105,180),(110,160),(155,100), (180,200),(190,130),(200,110),(240,70), (310,200),(320,130),(330,110),(370,70), (420,270),(430,180),(440,160),(490,120)。 绘制三次Bezier曲面。 三次Bezier曲面曲面绘制演示3 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲面曲面绘制演示3 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

例3:给定7×7=49个点构成一凸特征多边形,其中相邻3点共线且中间点在中点处,生成一片Bezier曲面。 49个给定点的坐标如下: (100,270),(102,225),(105,180),(107,170),(110,160),(132,130),(155,100), (140,235),(141,195),(147,155),(151,145),(155,135),(176,110),(197,85), (180,200),(185,165),(190,130),(195,120),(200,110),(220,90), (240,70), (245,200),(250,165),(255,130),(260,120),(265,110),(285,90), (305,70), (310,200),(315,165),(320,130),(325,120),(330,110),(350,90), (370,70), (365,235),(370,195),(375,155),(380,145),(385,135),(407,115), (430,95), (420,270),(425,225),(430,180),(435,170),(440,160),(465,140), (490,120) 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次Bezier曲面曲面绘制演示4 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

四个分曲面构成整个曲面演示5 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

给定(n+1)×(m+1)个空间点Pij(i=0,1,...,n;j=0,1,...,m),B样条曲面的数学表达式如下: B样条曲面是B样条曲线的拓广。 1.B样条曲面的数学表示式 给定(n+1)×(m+1)个空间点Pij(i=0,1,...,n;j=0,1,...,m),B样条曲面的数学表达式如下: u,w[0,1] Pij是P(u,w)的控制顶点,Fi,n(u)和Fj,m(w)为B样条基函数。如果n=m=3,则由4×4个顶点构成特征网格,其相应的曲面片称为双三次B样条曲面片。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

2.双三次B 样条曲面 双三次B 样条曲面应用最广,其表示式为: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

﹦[U][Mbs][P][Mbs]T[W]T ﹦[F(u)][P][F(w)]T ﹦[U][Mbs][P][Mbs]T[W]T 式中[U]= [u3 u2 u 1],[W]= [w3 w2 w 1]为两个参数u,w的矩阵向量。而 是三次B样条系数矩阵。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

B样条曲面与B样条曲线具有相同的性质。双三次B 样条曲面片四个角点不在特征网格的角点上。如果将网格向外扩展,曲面也相应延伸,而且由于三次B样条基函数是二阶连续的,所以双三次B样条曲面也达到二阶连续。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

下面,将式 P(u,w)﹦[U][Mbs][P][Mbs]T[W]T 展开成代数形式如下: 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

=1/36×[-u3+3u2-3u+1,3u3-6u2+4,-3u3+3u2+3u+1,u3] =1/36×[(-u3+3u2-3u+1)P00+(3u3-6u2+4)P10+(-3u3+3u2+3u+1)P20+u3P30, (-u3+3u2-3u+1)P01+(3u3-6u2+4)P11+(-3u3+3u2+3u+1)P21+u3P31, (-u3+3u2-3u+1)P02+(3u3-6u2+4)P12+(-3u3+3u2+3u+1)P22+u3P32, (-u3+3u2-3u+1)P03+(3u3-6u2+4)P13+(-3u3+3u2+3u+1)P23+u3P33,] 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

写成分量坐标的形式为: 当是平面曲面时,只有x和y坐标分量。 = 1/36×(((-u3+3u2-3u+1)P00+(3u3-6u2+4)P10+(-3u3+3u2+3u+1)P20+u3P30)( -w3+3w2-3w+1) +((-u3+3u2-3u+1)P01+(3u3-6u2+4)P11+(-3u3+3u2+3u+1)P21+u3P31)(3w3-6w2+4) +((-u3+3u2-3u+1)P02+(3u3-6u2+4)P12+(-3u3+3u2+3u+1)P22+u3P32)(-3w3+3w2+3w+1) +((-u3+3u2-3u+1)P03+(3u3-6u2+4)P13+(-3u3+3u2+3u+1)P23+u3P33)(w3)) 写成分量坐标的形式为: x(u,w)= 1/36×(((-u3+3u2-3u+1)x00+(3u3-6u2+4)x10+(-3u3+3u2+3u+1)x20+u3x30)(-w3+3w2-3w+1) +((-u3+3u2-3u+1)x01+(3u3-6u2+4)x11+(-3u3+3u2+3u+1)x21+u3x31)(3w3-6w2+4) +((-u3+3u2-3u+1)x02+(3u3-6u2+4)x12+(-3u3+3u2+3u+1)x22+u3x32)( -3w3+3w2+3w+1) +((-u3+3u2-3u+1)x03+(3u3-6u2+4)x13+(-3u3+3u2+3u+1)x23+u3x33)(w3)) y(u,w)=1/36×(((-u3+3u2-3u+1)y00+(3u3-6u2+4)y10+(-3u3+3u2+3u+1)y20+u3y30)(-w3+3w2-3w+1) +((-u3+3u2-3u+1)y01+(3u3-6u2+4)y11+(-3u3+3u2+3u+1)y21+u3y31)(3w3-6w2+4) +((-u3+3u2-3u+1)y02+(3u3-6u2+4)y12+(-3u3+3u2+3u+1)y22+u3y32)(-3w3+3w2+3w+1) +((-u3+3u2-3u+1)y03+(3u3-6u2+4)y13+(-3u3+3u2+3u+1)y23+u3y33)(w3)) z(u,w)=1/36×(((-u3+3u2-3u+1)z00+(3u3-6u2+4)z10+(-3u3+3u2+3u+1)z20+u3z30)(-w3+3w2-3w+1) +((-u3+3u2-3u+1)z01+(3u3-6u2+4)z11+(-3u3+3u2+3u+1)z21+u3z31)(3w3-6w2+4) +((-u3+3u2-3u+1)z02+(3u3-6u2+4)z12+(-3u3+3u2+3u+1)z22+u3z32)(-3w3+3w2+3w+1) +((-u3+3u2-3u+1)z03+(3u3-6u2+4)z13+(-3u3+3u2+3u+1)z23+u3z33)(w3)) 当是平面曲面时,只有x和y坐标分量。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

下面举几个例子: 例1:给定16个控制点坐标如下: (100,300),(110,180),(120,160),(140,230), (180,200),(190,130),(200,110),(240,170), (310,200),(320,130),(330,110),(370,170), (420,300),(430,180),(450,160),(490,240)。 绘制三次B样条曲面。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲面绘制演示1 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

无特征网格的曲面绘制演示2 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

例2:给定16个控制点坐标如下: (100,270),(105,180),(110,160),(155,100), (180,200),(190,130),(200,110),(240,70), (310,200),(320,130),(330,110),(370,70), (420,270),(430,180),(440,160),(490,120)。 绘制三次B样条曲面。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲面绘制演示3 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

例3:给定7×7=49个点构成一凸特征多边形,其中相邻3点共线且中间点在中点处,生成一片B样条曲面。 49个给定点的坐标如下: (100,270),(102,225),(105,180),(107,170),(110,160),(132,130),(155,100), (140,235),(141,195),(147,155),(151,145),(155,135),(176,110),(197,85), (180,200),(185,165),(190,130),(195,120),(200,110),(220,90), (240,70), (245,200),(250,165),(255,130),(260,120),(265,110),(285,90), (305,70), (310,200),(315,165),(320,130),(325,120),(330,110),(350,90), (370,70), (365,235),(370,195),(375,155),(380,145),(385,135),(407,115), (430,95), (420,270),(425,225),(430,180),(435,170),(440,160),(465,140), (490,120) 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲面绘制演示4 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

无特征网格的曲面绘制演示5 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

例4:给定7×7=49个点构成一凸特征多边形,其中边界上相邻3点相重,生成一片B样条曲面。 49个给定点的坐标如下: (100,270),(100,270),(100,270),(107,170),(155,100),(155,100),(155,100), (100,270),(141,195),(147,155),(151,145),(155,135),(176,110),(155,100), (100,270),(185,165),(190,130),(195,120),(200,110),(220,90), (155,100), (245,200),(250,165),(255,130),(260,120),(265,110),(285,90), (305,70), (420,270),(315,165),(320,130),(325,120),(330,110),(350,90), (490,120), (420,270),(370,195),(375,155),(380,145),(385,135),(407,115), (490,120), (420,270),(420,270),(420,270),(435,170),(490,120),(490,120), (490,120) 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲面绘制演示6 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

例4:给定7×7=49个点构成一凸特征多边形,其中边界顶点处相邻9点相重,生成一片B样条曲面。 49个给定点的坐标如下: (100,270),(100,270),(100,270),(107,170),(155,100),(155,100),(155,100), (100,270),(100,270),(100,270),(151,145),(155,100),(155,100),(155,100), (100,270),(100,270),(100,270),(195,120),(155,100),(155,100), (155,100), (245,200),(250,165),(255,130),(260,120),(265,110),(285,90), (305,70), (420,270),(420,270),(420,270),(325,120),(490,120),(490,120), (490,120), (420,270),(420,270),(420,270),(380,145),(490,120),(490,120), (490,120), (420,270),(420,270),(420,270),(435,170),(490,120),(465,140), (490,120)。 2019/2/24 计算机图形学演示稿 纪玉波制作(C)

三次B样条曲面绘制演示7 2019/2/24 计算机图形学演示稿 纪玉波制作(C)