590 likes | 660 Views
第六章 曲线和曲面 ( 二 ) . 主要内容:. 曲线、曲面参数表示的基础知识 常用的参数曲线 常用的参数曲面. 曲线绘制问题. 给定 n+1 个数据点, ,生成一个曲线,使该曲线与这些点所描述的形状相符。 如果要求曲线通过所有的数据点- 》 插值问题 - 》 用于重建数字化表示的曲线; 如果要求曲线逼近这些数据点- 》 逼近问题 - 》 主要用于设计美观的或符合某种美学标准的曲线; 解决上述问题的方法:找到一种用小的部分即 曲线段 来构建曲线的方法,以满足设计标准; 曲线和曲线段可以用 折线 代替,即用非常短的线段绘制;
E N D
第六章 曲线和曲面(二)
主要内容: • 曲线、曲面参数表示的基础知识 • 常用的参数曲线 • 常用的参数曲面
曲线绘制问题 • 给定n+1个数据点, ,生成一个曲线,使该曲线与这些点所描述的形状相符。 • 如果要求曲线通过所有的数据点-》插值问题-》用于重建数字化表示的曲线; • 如果要求曲线逼近这些数据点-》逼近问题-》主要用于设计美观的或符合某种美学标准的曲线; • 解决上述问题的方法:找到一种用小的部分即曲线段来构建曲线的方法,以满足设计标准; • 曲线和曲线段可以用折线代替,即用非常短的线段绘制; • 用曲线段拟合曲线 时,把曲线表示为许多小线段 之和,其中 称为基(调和)函数;
曲线绘制问题 • 基函数要用于计算和显示,因此经常选择多项式作为基函数。 • 次多项式有下列形式,此多项式由它的n+1个系数决定: • 连续分段n次多项式 是k个多项式 的集合,每个多项式是n阶,且有k+1个节点 ,即: • 上式要求多项式在节点处连续,即 但多项式在节点处不一定光滑,即在节点处可以有尖角或拐点; • 多项式的阶数: • 高阶多项式有摇摆特性-》曲线绘制时不是很有用; • 最有用的分段多项式为3阶多项式:原因: • 达到光滑和令人满意的曲线的最小阶数是3; • 表示三维曲线所需的最小数字是3;
常用的参数曲线 • Bezier曲线 • B样条曲线 • 非均匀有理B样条(NURBS)曲线 • 常用参数曲线的等价表示
常用的参数曲线 - Bezier曲线 • 1962年,法国雷诺汽车公司的PE.Bezier • 1972年,UNISURF系统 • 定义: • 一种以逼近为基础的参数曲线; • 由一组折线集,或Bezier特征多边形定义; • 曲线的起点、终点与多边形起点、终点重合; • 多边形的第一个边与最后一个边表示了曲线 在起点和终点的切矢量方向; • 形状趋于特征多边形的形状; • 给定空间n+1个点的位置矢量:Pi,则Bezier 曲线各点坐标的插值公式:
常用的参数曲线 - Bezier曲线 Bernstein基函数(曲线上各点位置矢量的调和函数)形式: • Bernstein调和函数的性质: • 1)正性: • 当满足 时: • 当满足 时:
常用的参数曲线 - Bezier曲线 • Bernstein调和函数的性质: • 2)权性: • 3)对称性: • 4)递推性: 高次Bernstein调和函数可由两个低一次Bernstein调和函数线性组合而成;
常用的参数曲线 - Bezier曲线 • Bernstein调和函数的性质: • 5)导函数: 三次Bernstein调和函数曲线
常用的参数曲线 - Bezier曲线 • 6)降阶公式: • 7)升阶公式: • 8)积分: • 9)最大值:在t=i/n处取得最大值 • 10)线性无关性 是n次多项式空间的一组基函数,
常用的参数曲线 - Bezier曲线 • Bezier曲线的性质: • 1)端点性质: • A)端点位置矢量: • Bezier曲线的起点、终点与其相应的特征多边形的起点、终点重合;
常用的参数曲线 - Bezier曲线 • Bezier曲线的性质: • B)切矢量: • Bezier曲线的起点、终点的切线方向与其相应的特征多边形的第一条边及最后一条边的走向一致;
常用的参数曲线 - Bezier曲线 • Bezier曲线的性质: • C)曲率: • Bezier曲线在端点处的r阶导数,只与(r+1)个相邻点有关,与更远的点无关;
常用的参数曲线 - Bezier曲线 • Bezier曲线的性质: • D)r阶导函数的差分表示: • N次Bezier曲线的r阶导函数可用差分公式表示为:
常用的参数曲线 - Bezier曲线 • Bezier曲线的性质: • 2)对称性: • 若保持原Bezier曲线的全部定点位置不变,仅把次序颠倒,形成新的顶点; • 则新Bezier曲线形状不变,只是走向相反; • Bezier曲线及其特征多边形在起点处的几何性质与终点处相同;
常用的参数曲线 - Bezier曲线 • Bezier曲线的性质: • 3)凸包性: 1)说明当t在0与1区间变化时,对某个t值,C(t)是特征多边形各项点Pi的加权平均,权因子依次是Bi,n(t); 2)在几何图形上,Bezier曲线是Pi各点的凸线性组合,并且各点均落在特征多边形的凸包之中;
常用的参数曲线 - Bezier曲线 • Bezier曲线的性质: • 4)几何不变性:几何特性不随一定的坐标变换而变化的性质 • Bezier曲线的位置与形状仅与特征多边形的定点位置有关,不依赖坐标系的选择; • 即: • 5)变差缩减性:如Bezier曲线的特征多边形是一个平面图形,则直线与曲线的交点个数 ≤ 该直线和特征多边形的交点个数-》变差缩减性; • 说明Bezier曲线比特征多边形的波动小-》Bezier曲线比特征多边形所在的折线更光顺;
常用的参数曲线 - Bezier曲线 • Bezier曲线的矩阵表示: • 一次Bezier曲线 • 一次Bezier曲线是连接起点与终点的直线段; • 二次Bezier曲线 二次Bezier曲线对应一条多边形起点与终点的抛物线;
常用的参数曲线 - Bezier曲线 • Bezier曲线的矩阵表示: • 三次Bezier曲线
常用的参数曲线 - Bezier曲线 • Bezier曲线的矩阵表示: • n次Bezier曲线 • 给定空间n+1个点,则n次Bezier曲线的矢量方程: • 工程实践中常用的Bezier曲线为二、三次。
常用的参数曲线 - Bezier曲线 • Bezier曲线的分割递推Casteljau算法: • 如何生成Bezier曲线上的点? • 利用三次曲线矩阵公式产生曲线上点的方法: • 不通用、计算量大 • Casteljau算法:原理: • 给定参数 ,求 P(t) t
常用的参数曲线 - Bezier曲线 • Bezier曲线的分割递推Casteljau算法: • 算法 • 计算过程
常用的参数曲线 - Bezier曲线 • 算法的几何解释:
常用的参数曲线 - Bezier曲线 • Bezier曲线的拼接及其连续性: • 目的:将两条Bezier曲线按照一定的连续条件连接起来,如图所示, • 要求前条曲线的终点与后条曲线的起点重合,即满足 连续; • 满足 连续的充要条件: • 满足 连续的充要条件:在 连续的前提下满足两个条件: • 1)密切平面重合,副法线矢量同向; • 2)曲率相等;
常用的参数曲线 - Bezier曲线 • 反算Bezier曲线控制点: • 目的:根据给定的曲线型值点 求Bezier曲线的控制点 • 方法: • 取参数t=i/n与点 对应,反算 ; • 设 在曲线 上,且有: • 则可得下列n+1个方程组成的线性方程组: • 求解方程,可得 ,即为过 的Bezier多边形的顶点
常用的参数曲线 - Bezier曲线 • Bezier曲线的升阶: • 目的:对曲线做修改时,可以通过增加控制点以实现对曲线的灵活控制,而不改变原有曲线的形状; • 方法:对原有曲线进行升阶,如图,将原有4个控制点变为5个点;
常用的参数曲线 - Bezier曲线 • 上式说明: • 1)新的控制点P是对老的特征多边形在参数i/(n+1)处进行线性插值的结果; • 2)升阶后的新的特征多边形在老的特征多边形的凸包内; • 3)升阶后的特征多边形更靠近Bezier曲线; • Bezier曲线的降阶: • 同理可以推导出曲线的降阶公式; • 有理Bezier曲线: 目的:更好的控制曲线的形状;
常用的参数曲线 • Bezier曲线 • B样条曲线 • 非均匀有理B样条(NURBS)曲线 • 常用参数曲线的等价表示
常用的参数曲线 -B样条曲线 • 目的:解决Bezier曲线的不足(1972年,Gordon,Riesenfeld扩展Bezier曲线); • 1) 控制多边形的顶点个数决定了Bezier曲线的阶次,n较大时特征多边形对曲线的控制减弱; • 2)调和函数在整个区间内均不为零-》不能作局部修改; • 方法:用B样条函数代替Bernstein函数,从而: • 1)改进了Bezier特征多边形与Bernstein多项式次数相关的问题; • 2)克服了Bezier曲线整体逼近的缺点; • 均匀B样条函数的定义: • 已知有n+1个控制点的特征多边形,其顶点为: • 则可以定义L+1段k-1次的参数曲线。 • 其中:L = n-(k-1)
常用的参数曲线 -B样条曲线 • 其中 为基函数,可以定义如下递归函数: • 上式等价为:
常用的参数曲线 -B样条曲线 • 参数说明:k是曲线的阶数,k-1为B样条曲线的次数,曲线在连接点处具有(k-2)阶连续; 是节点值, 构成了k次B样条曲线的节点矢量,节点是非减序列;且: • 节点矢量:分为三种类型:均匀的,均匀非周期的和非均匀的; • 节点沿参数轴均匀等距分布,即 =常数时,=》均匀B样条函数; • 节点沿参数轴分布不等距,即 ≠常数时,=》非均匀B样条函数。 • 1.均匀周期性B样条曲线 • T=(-2,-1.5,-1,-0.5,0,0.5,1,1.5,2) • T=(0,1,2,3,4,5,6,7) • 均匀B样条的基函数呈周期性:
常用的参数曲线 -B样条曲线 • 均匀周期性二 次(三阶)B样条曲线 • 取k-1=2,n=3 • k-1=2,n=3-》i=0,1,2
常用的参数曲线 -B样条曲线 • 二次B样条曲线表达式可以表示如下: • 一般化的形式:
常用的参数曲线 -B样条曲线 • 曲线的起点和终点值: • 均匀二次B样条曲线起点和终点处的导数:
常用的参数曲线 -B样条曲线 • 结论: • 对于由任意数目的控制点构造的二次周期性B样条曲线,曲线的起点位于头两个控制点之间,终点位于最后两个控制点之间; • 对于高次多项式,起点和终点是m-1个控制点的加权平均值点。若某一控制点出现多次,样条曲线会更加接近该点。 • 由不同节点矢量构成的均匀B样条函数所描绘的形状相同,可以看成是一个B样条函数的简单平移; • 在构造每个线段时,采用均匀B样条函数比用非均匀B样条函数工作量小,且外形设计的效果差别不大;
常用的参数曲线 -B样条曲线 • 2.均匀非周期B样条曲线 • 节点矢量定义为: • 令L = n – k (n为控制点数目),从0开始,按ti≤ti+1排列。 • 均匀非周期二次(三阶)B样条曲线 • 设k=2,n=6,节点矢量为:T=(t0 ,t1,…,tL+2k+1) =(t0 ,t1, t2, t3, t4, t5, t6, t7,t8,t9) =(0,0,0,1,2,3,4,5,5,5);
常用的参数曲线 -B样条曲线 • B样条曲线的性质 • 1.局部可控性 • B样条的基函数是一个分段函数,其重要特征是在参数变化范围内,每个基函数在 到 的子区间内函数值不为零,在其余区间内均为零,通常也将该特征称为局部支柱性。 因此,每移动一个顶点时,只对其中的一段曲线有影响,并不对整条曲线产生影响。 tk Tk+m
常用的参数曲线 -B样条曲线 • 2.B样条的凸组合性质 • B样条的凸组合性和B样条基函数的数值均大于或等于0保证了B样条曲线的凸包性,即B样条曲线必处在控制多边形所形成的凸包之内。
常用的参数曲线 -B样条曲线 • B样条曲线的性质 • 3.连续性 • B样条曲线在 处有L重节点的连续性不低于(k-L)次,整条曲线的连续性不低于(k-Lmax)次,其中Lmax是区间 内的最大重节点数; • B样条曲线基函数的次数与控制顶点个数无关。
常用的参数曲线 -B样条曲线 • B样条曲线的性质 • 4.导数; • B样条曲线的导数可用其低阶的B样条基函数和定点矢量的差商序列的线性组合表示。 • 可以证明,k次B样条曲线段之间达到k-1次的连续性; • 5.几何不变性:形状和位置与坐标系的选择无关; • 6.变差缩减性:平面内任一直线与曲线的交点个数不多于该直线与特征多边形的交点个数; • 7.造型的灵活性; • 用B样条曲线可构造直线段、尖点、切线等特殊情况:通过选择控制点的位置和节点的重复数。
常用的参数曲线 -B样条曲线 • B样条曲线的矩阵表示 • 一次B样条曲线的矩阵表示 • 设空间n+1个定点的位置矢量,每两个相邻点可以构造出一段一次B样条曲线,B样条基函数是 ,则每两段相关的一次B样条曲线可以表示为:
常用的参数曲线 -B样条曲线 • 二次B样条曲线的矩阵表示 • 二次B样条基函数的矩阵式可以表示为: • 设空间有 个顶点: ,则相邻的每三个顶点可构造一段二次B样条曲线,其中第i段可以表示成(如图):
常用的参数曲线 -B样条曲线 • 其中: • 1)端点位置矢量: • 2)端点一阶导数矢量: 且: 说明曲线段在起、终点的一阶导数矢量分别和两条边矢量重合,且在节点处的一阶导数矢量连续。 • 3)端点二阶导数矢量: 即曲线段的二阶导数矢量等于该曲线的两条边矢量 和 所成的对角线矢量。 • 4)若 三个顶点位于同一条直线上, 蜕化为 直线边上的一段直线,并使 曲线段切于 处,若要使二次B样条线段过端点,或得到一个尖点,还需要有二重控制点。
常用的参数曲线 -B样条曲线 • 三次B样条曲线的矩阵表示: • 若从空间n+1个顶点 中每次取相邻的四个顶点,可构造 出一段三次B样条曲线,其相应的基函数是: • 三次B样条基函数的矩阵表示为: • 相邻两段三次B样条曲线可表示为:
常用的参数曲线 -B样条曲线 • 因此,第i段三次B样条曲线可写成: • 对应的矩阵式是:(如图)
常用的参数曲线 -B样条曲线 • 其中: • 1)端点位置矢量: 曲线起点位于 中线 的1/3处,终点位于 中线 的1/3处。 • 2)端点切矢量: 曲线在始点处的切矢量平行于 的边,其模长为该边长的1/2,终点处的切矢量平行于 的边,其模长为该边长的1/2。由于前一段曲线的终点是下一段曲线的起点,而且具有相同的三角形,因此,几何上可见两段曲线在节点处具有相同的一阶导数矢量。 • 3)端点的二阶导数矢量: 曲线段在端点处的二阶导数矢量等于相邻两直线边所形成平行四边形的对角线。由于终点处的平行四边形和下一段曲线在始点处的平行四边形相同,因此,三次B样条曲线在节点处有二阶导数连续。
常用的参数曲线 -B样条曲线 • 4)若 三点共线,三次B样条曲线将产生拐点,若 四点共线,则 变成一条直线段;若 三点重合,则 通过 点。 因此,利用三次B样条的顶点重合会产生应用需要的多种曲线。
常用的参数曲线 -B样条曲线 • B样条曲线的分割和节点插入算法 • 1)deBoor分割算法 • K次B样条基函数可由两个相邻的k-1次B样条基函数线性组合而成,利用k次B样条函数的性质,可用deBoor算法计算曲线段C(t)的值,若 则其递归公式为: 也可表示成:
常用的参数曲线 -B样条曲线 • 求曲线上一点坐标的递推过程可以表示成一个三角形,其几何意义如图: • deBoor分割算法的实质是用 构成的边切 角。 • 从多边形 开始经过k层的切角,最后得到曲线C(u)上的点P; 程序见:pp315