第6章 曲线和曲面_第1页
第6章 曲线和曲面_第2页
第6章 曲线和曲面_第3页
第6章 曲线和曲面_第4页
第6章 曲线和曲面_第5页
已阅读5页,还剩304页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章第六章 曲线和曲面曲线和曲面三维图形的基本问题1. 在二维屏幕上如何显示三维物体?在二维屏幕上如何显示三维物体?n显示器屏幕、绘图纸等是二维的n显示对象是三维的n解决方法-投影n三维显示设备正在研制中2. 如何表示三维物体?如何表示三维物体?n二维形体的表示-直线段,折线,曲线段,多边形区域n三维形体的表示-空间直线段、折线、曲线段、多边形、曲面片表示形体的两种模型表示形体的两种模型n数据模型n完全以数据描述n例如n用以8个顶点表示的立方体n以中心点和半径表示的球n以数据文件的形式存在n包括-特征表示、空间分割表示、推移表示、边界表示、构造实体几何表示等n进一步分为n线框模型n表面模型n

2、实体模型线框模型线框模型:将形体表示成一组轮廓线的集合。n一般地,画出了形体的棱线与轮廓线就能唯一地表示出来。如图,八个顶点可以定义一个长方体,但还不足以识别它,如果定义了棱线,则无论如何放置长方体都能唯一地表示了。对于多面体由于其轮廓线和棱线通常是一致的,所以多面体的线模型更便于识别,且简单。e12v4v8s3e2e4e6e8e2e7e11e10e9e3e1v2v3v1v7v5v6s2s6s5s1s4线框模型n优点:简单、处理速度快n缺点:1、对于非平面多面体,如圆柱、球等形体,其轮廓线随观察方向的改变而改变,无法用一组固定的轮廓线来表示它们。2、线框模型与形体之间不存在一一对应关系:它仅仅

3、通过给定的轮廓线约束所表示形体的边界面,而在轮廓线之间的地方,形体的表面可以任意变化。3、没有形体的表面信息,不适于真实感显示,由此导致表示的形体可能产生二义性。表面模型n表面模型n将形体表示成一组表面的集合n如果把线框模型中的棱线包围的部分定义为面,所形成的模型便是表面模型。其数据结构是在线模型的基础上附加一些指针,有序地连接棱线。下图中表面编号表示第几个表面,表面特征表面是平面还是曲面。n形体与其表面一一对应,适合于真实感显示4顶点个数1起始指针0表面特征5表面编接指针属性顶点号14232341表面模型n缺点:n不能有效的用来表示实体n原因:n1、表面模型中的所有

4、面未必形成一个封闭的边界n2、各个面的侧向没有明确定义,即不知道实体位于面的哪一侧实体模型n实体模型n用来描述实体,主要用于CAD/CAMn包含了描述一个实体所需的较多信息,如几何信息、拓扑信息,可以支持多种运算,如欧拉运算等。表示形体的两种模型n过程模型n以一个过程和相应的控制参数描述n例如n用一些控制参数和一个生成规则描述的植物n以一个数据文件和一段代码的形式存在n包括-粒子系统、L系统、迭代函数系统等三维对象两类表示方法三维对象两类表示方法n数据模型数据模型n边界表示边界表示Boundary representationsn空间区分空间区分Space-partitioning repre

5、sentationsn过程模型过程模型nL系统、分形系统、分形.Representation Methodsn边界表示边界表示n 使用一组平面或曲面逼近表示使用一组平面或曲面逼近表示3D对象(描述对象(描述轮廓)轮廓)n曲面将物体分为内外两部分。曲面将物体分为内外两部分。n典型例子:多边形平面、样条曲面典型例子:多边形平面、样条曲面Representation MethodsRepresentation Methodsn空间分区表示空间分区表示n用来描述物体内部性质用来描述物体内部性质n将包含一物体的空间区域划分成一组将包含一物体的空间区域划分成一组较小的、非重叠的、邻接的实体。较小的、非重叠

6、的、邻接的实体。n如:八叉树表示如:八叉树表示Representation Methods3D Representation methodsn多边形表面多边形表面Polygon Surfacesn二次曲面二次曲面n样条表示样条表示: Bezier曲线曲线n立体构造立体构造Solid - Modelingn八叉树八叉树Octreesn分形分形Fractal nL系统系统n边界表示方法(第6章)空间区分表示方法不行还有我们!第7章6.0 多边形表面多边形表面n三维图形中运用边界表示的最普遍方式是使用一组三维图形中运用边界表示的最普遍方式是使用一组包围物体内部的表面多边形。包围物体内部的表面多边形。

7、n很多图形系统以一组表面多边形来存储物体的描述。很多图形系统以一组表面多边形来存储物体的描述。由于所有表面以线性方程加以描述,因此会简化并由于所有表面以线性方程加以描述,因此会简化并加速物体的表面绘制和显示。加速物体的表面绘制和显示。n某些情况下,多边形表示是惟一可用的,但很多图某些情况下,多边形表示是惟一可用的,但很多图形包也允许以其它方式对物体加以描述,如样条曲形包也允许以其它方式对物体加以描述,如样条曲面,它在转换到多边形表示后加以处理面,它在转换到多边形表示后加以处理6.0 多边形表面多边形表面n多边形表数据表分为两组进行组织多边形表数据表分为两组进行组织n几何表:顶点坐标和用来标识多

8、边形表面几何表:顶点坐标和用来标识多边形表面空间方向的参数空间方向的参数 点表、边表、面表点表、边表、面表n属性表:指明物体透明度及表面反射度的属性表:指明物体透明度及表面反射度的参数和纹理特征参数和纹理特征多边形表面多边形表面顶点表顶点表序号序号点坐标点坐标1x1, y1, z12x2, y2, z23x3, y3, z34x4, y4, z45x5, y5, z5边表边表序号序号顶点号顶点号1v1, v22v2, v33v3, v14v3, v45v4, v56v5, v1多边形面表多边形面表序号序号边序号边序号1E1, E2, E32E3, E4, E5, E6E1E2E4E5S1v2v

9、1v3v4v5E3E6S2Polygon Surfacesn多边形网多边形网格格 图形系统图形系统一般使用一般使用多边形网多边形网格对格对3D物物体进行建体进行建模模6.1 曲线和曲面(第六章内容)曲线和曲面(第六章内容)n曲线曲面的生成方法曲线曲面的生成方法n给定一组数学函数给定一组数学函数n给定的一组数据点给定的一组数据点n一旦给定函数,图形包将指定曲线方程投影到显一旦给定函数,图形包将指定曲线方程投影到显示平面上,且沿着投影函数路径绘制像素位置。示平面上,且沿着投影函数路径绘制像素位置。n由函数式描述而生成的显示曲面的例子有由函数式描述而生成的显示曲面的例子有二次曲二次曲面面和和超二次曲

10、面超二次曲面 n可以为可以为简单的简单的3D对象对象提供提供精确精确的描述的描述n6.2.1节节 球面三叶玫瑰线、圆柱螺线、圆锥螺线球面三叶玫瑰线、圆柱螺线、圆锥螺线n球面、椭球面、环面等球面、椭球面、环面等6.1 曲线和曲面曲线和曲面n二次曲面二次曲面和和超二次曲面超二次曲面 不能表达复杂的曲线和曲面。n例如飞机或汽车的流线表面.使用样条表示6.1 曲线和曲面曲线和曲面本章内容本章内容n曲线曲面基础知识n曲线和曲面的表示 (1) 插值和逼近样条 (2) Hermite样条曲线 (3) Bezier曲线曲面 (4) B样条曲线曲面 (5) 有理样条曲线曲面 (6) 曲线曲面的转换和计算6.1

11、曲线和曲面表示方法曲线和曲面表示方法n曲线曲面的表示要求曲线曲面的表示要求 1.唯一性;2.几何不变性;3.易于定界;4.统一性 5.易于实现光滑连接;6.几何直观n曲线曲面表示方法曲线曲面表示方法n显式表示:y=f(x)n隐式表示:f(x,y)=0n参数表示:P(t)=x(t), y(t), z(t)n显式或隐式表示存在下述问题:(1 1)与坐标轴相关的,不便于坐标变换;)与坐标轴相关的,不便于坐标变换;(2 2)无法解决斜率为无穷大的情况;)无法解决斜率为无穷大的情况;(3 3)对于空间复杂曲线曲面很难表示)对于空间复杂曲线曲面很难表示(4 4)不便于计算和编程)不便于计算和编程n参数表示

12、:曲线上任一点的坐标均表示成给定参数的函数。假定用t表示参数,平面曲线上任一点P可表示为: n空间曲线上任一三维点P可表示为:)(),()(tytxtP)(),(),()(tztytxtPn参数表示例子:n直线n圆 1 , 0,)()(121ttPPPtP 1 , 012,11)(222ttttttPn参数表示的优点:参数表示的优点:(1)满足几何不变性的要求;满足几何不变性的要求;(2)有更大的自由度来控制曲线曲面的形状;有更大的自由度来控制曲线曲面的形状;(3)便于坐标变换)便于坐标变换 ;(4)便于处理斜率为无限大的问题,不会因此中断计算;)便于处理斜率为无限大的问题,不会因此中断计算;

13、(5)代数、几何相关和无关的变量是完全分离的,而且对变)代数、几何相关和无关的变量是完全分离的,而且对变 量个数不限,便于向高维空间扩展。量个数不限,便于向高维空间扩展。(6)t0,1, 直接定义了边界。便于曲线和曲面的分段、直接定义了边界。便于曲线和曲面的分段、 分片描述。分片描述。(7) 易于用矢量和矩阵表示,从而简化了计算。易于用矢量和矩阵表示,从而简化了计算。n参数曲线的参数曲线的代数形式代数形式和和几何形式几何形式一条三次参数曲线的一条三次参数曲线的代数形式代数形式:矢量形式:矢量形式:给定给定P(0),P(1),P(0),P(1),以及以及P(0),P(1)P(0),P(1)10)

14、()()(012233012233012233tatatatatzatatatatyatatatatxzzzzyyyyxxxx012233)(atatatatP3211012032) 1 ( ,)0( ) 1 (,)0(3aaaPaPaaaaPaP解四个方程,求得参数令参数曲线的几何形式) 1 ( )0( ) 1 (2)0(2) 1 ( )0( 2) 1 (3)0(3)0( ),0(3210PPPPaPPPPaPaPa)()()2()32() 132()()()() 1 ( ),0( ),1 (),0(140312011230231230230231010PFPFPFPFtPPttPtttPt

15、tPttattttPPPPPPPPP)(14031201PFPFPFPFtP矩阵形式表示参数曲线:P=TA 其中P=FBP=TMB表示一条参数曲线TaaaAtttT111232310104321PPPPBFFFFFAMBMBATMBPTMtttF1123,000101001233112216.2 位置矢量、切矢量、法矢量、曲率和挠率n曲线上任一点的位置矢量可表示为: P(t)=x(t), y(t), z(t);n切向量(切矢量)n选择弧长s作为参数,则 是单位切矢量。n根据弧长微分公式有:n于是有 ,即为单位矢量sPdsdPTs0lim2222dzdydxds22222)(/tPdtdzdtd

16、ydtdxdtds0)(tPdtds)()(tPtPdsdtdtdPdsdP设曲线的参数方程是P=P(s),其上任一点的单位切矢量为T(s), 称矢量 方向上的单位矢量方向上的单位矢量N(s)N(s)为曲线在为曲线在s s处的主法矢量,处的主法矢量,称过称过P(s)P(s)以以N(s)N(s)为方向的直线为主法线。为方向的直线为主法线。 )(sTT(s)为单位矢量,即 ,故得到: 即主法矢量N(s)与切矢量T(s)垂直。 n法矢量n与 平行的法矢量称为曲线在该点的主法矢量主法矢量Nn矢量积 是第三个单位矢量,它垂直于T和N。把平行于矢量B的法矢称为曲线的副法矢量副法矢量n我们可以推导出:dsd

17、TNTB)()()()()()()()()()(tPtPtPtPtPtPTBNtPtPtPtPB nT(切矢量)、N(主法矢量)和B(副法矢量)构成了曲线上的活动坐标架。nN、B构成的平面称为法平面,N、T构成的平面称为密切平面,B、T构成的平面称为从切平面。密切面从切面法平面TBN主法线 曲线的法矢量 n曲率和挠率 即称为曲率曲率,其几何意义是曲线的单位切矢量对弧长的转动率。曲率k的倒数 称为曲率半径曲率半径。挠率挠率 的绝对值等于副法线方向(或密切平面)对于弧长的转动率.ss0lim1sslimssTsTTsss000limlimlim.对于一般参数t,我们可以推导出曲率和挠率的计算公式如

18、下:3)()()(tPtPtP 2)()()(),(),(tPtPtPtPtP )(ssT)(sTTO 曲率和挠率(a)(b)1N1B1T0N0B0T0B1B本章内容本章内容n曲线曲面基础知识n曲线和曲面的表示 (1) 插值和逼近样条 (2) Hermite样条曲线 (3) Bezier曲线曲面 (4) B样条曲线曲面 (5) 有理样条曲线曲面 (6) 曲线曲面的转换和计算n样条的历史样条的历史n很早的绘图员利用很早的绘图员利用“ducks”和有柔性的木条(样条)来和有柔性的木条(样条)来绘制曲线绘制曲线n木质的样条具有二阶连续木质的样条具有二阶连续n并且通过所有的控制点并且通过所有的控制点A

19、 Duck (weight)Ducks trace out curve6.3 插值和逼近样条插值和逼近样条n样条:通过一组指定点集而生成平滑曲线的柔性样条:通过一组指定点集而生成平滑曲线的柔性带。带。n样条曲线在计算机图形学中的含义样条曲线在计算机图形学中的含义n由多项式曲线段连接而成的曲线由多项式曲线段连接而成的曲线n在每段的边界处满足特定的连续性条件在每段的边界处满足特定的连续性条件n样条曲面样条曲面n使用两组正交样条曲线进行描述使用两组正交样条曲线进行描述样条样条n样条在图形学中的应用样条在图形学中的应用n设计曲线、曲面设计曲线、曲面n汽车车身设计、飞机和航天飞机表面的设计、船体设计汽车

20、车身设计、飞机和航天飞机表面的设计、船体设计以及家庭应用。以及家庭应用。n曲线的产生曲线的产生n给定一组离散的坐标点,将数据集拟合成指定的曲线函给定一组离散的坐标点,将数据集拟合成指定的曲线函数数n根据曲线函数得到曲线的图形根据曲线函数得到曲线的图形n曲线的类型曲线的类型n插值插值样条曲线:选样条曲线:选取的多项式使得曲取的多项式使得曲线通过每个控制点线通过每个控制点n逼近逼近样条曲线:选样条曲线:选取的多项式不一定取的多项式不一定使曲线通过每个控使曲线通过每个控制点制点n给定一组有序的数据点Pi,i=0, 1, , n,构造一条曲线顺序通过这些数据点,称为对这些数据点进行插插值值,所构造的曲

21、线称为插值曲线。n线性插值:假设给定函数f(x)在两个不同点x1和x2的值,用一个线形函数:y=ax+b,近似代替,称为的线性插值函数。n抛物线插值:已知在三个互异点 的函数值为 ,要求构造一个函数 使抛物线 在结点 处与 在 处 的值相等。cbxaxx2)()(x321,xxx321,yyy)3 , 2 , 1( ixi)(xfix插值插值xyo1y2y)(xfy )(xy1x2xxyo1y2y)(xfy )(xy1x2x3x3y(a)(b) 线性插值和抛物插值n逼近:逼近:构造一条曲线使之在某种意义下最接近给定的数据点(但未必通过这些点),所构造的曲线称为逼近曲线。n在计算数学中,逼近通常

22、指用一些性质较好的函数近似表示一些性质不好的函数。 曲线的逼近逼近逼近n求给定型值点之间曲线上的点称为曲线的插值曲线的插值。n将连接有一定次序控制点的直线序列称为控制多边形控制多边形或特征多边形。特征多边形。 曲线的逼近凸壳凸壳n凸壳的定义凸壳的定义Convex hull 包含一组控制点的凸多边形边界包含一组控制点的凸多边形边界n凸壳的作用凸壳的作用n提供了曲线或曲面与包围控制点的区域提供了曲线或曲面与包围控制点的区域之间的偏差的测量之间的偏差的测量n以凸壳为界的样条保证了多项式沿控制以凸壳为界的样条保证了多项式沿控制点的平滑前进点的平滑前进凸壳n光顺(Firing)指曲线的拐点不能太多。对平

23、面曲线而言,相对光顺的条件是:na. 具有二阶几何连续性(G2);nb. 不存在多余拐点和奇异点;nc. 曲率变化较小。光顺光顺n假定参数曲线段 pi 以参数形式进行描述:t ,t t)(i1i0tppii 参数连续性 几何连续性参数连续性与几何连续性参数连续性与几何连续性1.参数连续性参数连续性0阶参数连续性阶参数连续性记作C0连续性,是指曲线的几何位置连接,即)()(0)1()1(1iiiitptp1阶参数连续性阶参数连续性记作C1连续性,指代表两个相邻曲线段的方程在相交点处有相同的一阶导数:)()()()(0)1()1(10)1()1(1iiiiiiiitptptptp且2阶参数连续性阶

24、参数连续性,记作C2连续性,指两个相邻曲线段的方程在相交点处具有相同的一阶和二阶导数。 (a)0阶连续性(b)1阶连续性(c)2阶连续性2.几何连续性几何连续性0阶几何连续性阶几何连续性,记作G0连续性,与0阶参数连续性的定义相同,满足: 1阶几何连续性阶几何连续性,记作G1连续性,指一阶导数在相邻段的交点处成比例;2阶几何连续性阶几何连续性,记作G2连续性,指相邻曲线段在交点处其一阶和二阶导数均成比例。)()(0)1()1(1iiiitptpn参数参数连续性条件连续性条件 两个相邻曲线段在相交处的参数导数两个相邻曲线段在相交处的参数导数相等相等n零阶连续零阶连续(C0连续连续):简单地表示曲

25、线:简单地表示曲线连接连接n一阶连续一阶连续(C1连续连续):说明代表两个相邻曲线的方:说明代表两个相邻曲线的方程在相交点处有程在相交点处有相同的一阶导数相同的一阶导数(切线)(切线)n二阶连续二阶连续(C2连续连续):两个曲线段在交点处有:两个曲线段在交点处有相同相同的一阶和二阶导数的一阶和二阶导数,交点处的切向量变化率相等,交点处的切向量变化率相等参数连续性条件参数连续性条件曲线分段构造时参数连续性条件曲线分段构造时参数连续性条件零阶连续零阶连续 一阶连续一阶连续 二阶连续二阶连续F(u)f(u)F(1)=f(0)F(1)=f(0)F (1)=f (0)n几何几何连续性条件连续性条件 两个

26、相邻曲线段在相交处的参数导数两个相邻曲线段在相交处的参数导数成比例成比例n零阶连续(零阶连续(G0连续):与连续):与0阶参数连续性相同,阶参数连续性相同,即两个曲线必在公共点处有相同的坐标即两个曲线必在公共点处有相同的坐标n一阶连续(一阶连续(G1连续):表示连续):表示一阶导数一阶导数在两个相在两个相邻曲线的交点处成比例邻曲线的交点处成比例n二阶连续(二阶连续(G2连续):表示两个曲线段在相交连续):表示两个曲线段在相交处的一阶和二阶导数均成比例处的一阶和二阶导数均成比例几何连续性条件几何连续性条件n插值样条曲线插值样条曲线三次样条插值三次样条插值n自然三次样条插值自然三次样条插值nHer

27、mite样条插值样条插值nCardinal样条插值样条插值nKochanek_Bartels样条插值样条插值n逼近样条曲线逼近样条曲线nBezier曲线曲线nB_样条曲线样条曲线本章内容本章内容n曲线和曲面表示的基础知识n曲线和曲面的表示 (1) 插值和逼近样条 (2) Hermite样条曲线 (3) Bezier曲线曲面 (4) B样条曲线曲面 (5) 有理样条曲线曲面 (6) 曲线曲面的转换和计算0,1 t)()()(011220112201122ctctctctzbtbtbtbtyatatatatxnnnnnnn6.4.1 样条描述样条描述n次样条参数多项式曲线的矩阵:6.4 Himer

28、te样条样条0,1 t 1)()()()(000111GMTCTcbacbacbatttztytxtpSnnnn基矩阵基矩阵基函数基函数(blenging function),或称混合函数混合函数。n6.4.2 三次样条三次样条给定n+1个点,可得到通过每个点的分段三次多项式曲线: 0,1 t )()()(232323zzzzyyyyxxxxdtctbtatzdtctbtatydtctbtatx6.4.3 自然三次样条自然三次样条定义定义:给定n+1个型值点,现通过这些点列构造一条自然三次参数样条曲线,要求在所有曲线段的公共连接处均具有位置、一阶和二阶导数的连续性,即自然三次样条具有自然三次样

29、条具有C2连续性连续性。还需要两个附加条件才能解出方程组. 特点特点:1.只适用于型值点分布比较均匀的场合2.不能“局部控制” 6.4.4 三次三次Hermite样条样条定义定义:假定型值点Pk和Pk+1之间的曲线段为p(t),t0,1,给定矢量Pk、Pk+1、Rk和Rk+1,则满足下列条件的三次参数曲线为三次三次Hermite样条曲线样条曲线: 11) 1 (,)0() 1 (,)0(kkkkRpRpPpPp推导推导:CTdcbatttdddcccbbbaaattttpzyxzyxzyxzyx11)(2323n几何形式n对三次参数曲线,若用其端点位矢P(0)、P(1)和切矢P(0)、P(1)

30、描述。n将P(0)、P(1)、P(0)和P(1)简记为P0、P1、P0和P1,代入 得 1 , 0)(012233tatatatatP1010310102010022233PPPPaPPPPaPaPa hhkkkkkkkkGMRRPPRRPPdcbaC1111100010100123311220123010011111000Mh是是Hermite矩阵矩阵。Gh是是Hermite几何矢量几何矢量。三次三次Hermite样条曲线的方程为样条曲线的方程为:0,1 t )(hhGMTtp0001010012331122123tttMTh 通常将TMk称为Hermite基函数(或混合函数,调和函数基函数

31、(或混合函数,调和函数): )(2)(32)(132)(233232231230tttHttttHtttHtttH)()()()()(312110tHRtHRtHPtHPtpkkkkH(t)t0.60.81-0.2H0(t)H1(t)H2(t)H3(t) Hermite基函数特点分析特点分析:1.可以局部调整,因为每个曲线段仅依赖于端点约束。2.Hermite曲线具有几何不变性本章内容本章内容n曲线和曲面表示的基础知识n曲线和曲面的表示 (1) 插值和逼近样条 (2) Hermite样条曲线 (3) Bezier曲线曲面 (4) B样条曲线曲面 (5) 有

32、理样条曲线曲面 (6) 曲线曲面的转换和计算6.5 Bezier曲线曲线6.5.1 Bezier曲线的定义曲线的定义 Bezier曲线的例子定义定义:其中,Pi构成该Bezier曲线的特征多边形Bernstein基函数基函数具有如下形式:注意:当k=0,t=0时,tk=1,k!=1。 nknkktBENPtp0,0,1 t)()(n,0,1,k 11!)(,knkknknknkttCttknkntBEN6.5.2 Betnstein基函数的性质 (1)正性 (2)端点性质 otherwiseniBotherwiseiBnini0)(1) 1 (0)0(1)0(, ; 1, 2 , 1),1 ,

33、 0(01 , 00)(,nitttBni(3)权性 由二项式定理可知:) 1 , 0(1)(0,ttBninininininiinnittttCtB00,1)1()1 ()((4)对称性 因为 )()1 (,tBtBninni)1 ()1 ( )1 ()1 (1 )(,)(,tBttCttCtBniiniinininninnnin(5)递推性。 即高一次的Bernstein基函数可由两个低一次的Bernstein调和函数线性组合而成。因为,),.,1 , 0( ),()()1 ()(1, 11,nittBtBttBninini)()()1 ()1 ()1 ()1 ()1 ()()1 ()(1

34、, 11,)1()1(111)1(1111,ttBtBttttCttCtttCCttCtBniniiniininiininiinininiinni(6)导函数 (7)最大值。 在 处达到最大值。;, 1 , 0 ),()()(1,1, 1,nitBtBntBninini Bti n,( )tin(8)升阶公式 )(11)()11 ()()(11)()()11 ()()1 (1, 11,1, 1,1,tBnitBnitBtBnittBtBnitBtninininininini(9)积分10,11)(ntBni1一次一次Bezier曲线曲线(n=1) 0,1 t )1 ()()(10101 ,kk

35、ktPPttBENPtp2二次二次Bezier曲线曲线(n=2) 001201222102202,)(2)2( 0,1 t )1 (2)1 ( )()(PtPPtPPPPtPttPttBENPtpkkk21020010221211)(PPPtttp3三次三次Bezier曲线曲线(n=3) 33,323,213, 103,033221203303,)()()()( 0,1t )1 (3)1 (3)1 ( )()(PtBENPtBENPtBENPtBENPtPttPttPttBENPtpkkk33,323,223,133,0)()1 (3)()1 (3)()1 ()(ttBENtttBENtttB

36、ENttBEN 三次Bezier曲线四个Bezier基函数0tB0,3(t)B3,3(t)B1,3(t)B2,3(t)bebeGMTPPPPttttp 0,1 t 00010033036313311)(3210236.5.3 Bezier曲线的性质曲线的性质1端点端点 0, 11,000, )0()0()0( )0()0(PBENPBENPBENPBENPpnnnnnnknkknnnnnnnknkkPBENPBENPBENPBENPp )1 ()1 ()1 ( )1 ()1 (, 11,000,2一阶导数一阶导数 )()()1 ()!) 1(!)!1()1 ()!1() 1()!1()!1()

37、1)()1 ()!( !)(1,1, 1) 1() 1() 1(111,tBENtBENnttknknnttknknnttknttkknkntNBEnknkknkknkkknknknknknkkknnnnnnnknknkktBENPPntBENPPtBENPPtBENPPntBENtBENPntp11, 111, 111, 1121, 00101,1, 1)()()()()()()()()()()()()0(01PPnp)() 1 (1nnPPnp 三次Bezier曲线段在起始点和终止点处的一阶导数为:)(3) 1 ()(3)0(2301PPpPPp3二阶导数二阶导数 三次Bezier曲线段在

38、起始点和终止点处的二阶导数为:)()(1() 1 ()()(1()0(1120112nnnnPPPPnnpPPPPnnp )2(6) 1 ()2(6)0(321210PPPpPPPp 当t=0时,当t=1时,上式表明:2阶导矢只与相邻的3个顶点有关,事实上,r阶导矢只与(r+1)个相邻点有关,与更远点无关。将 、 及 、 代入曲率公式 ,可以得到Bezier曲线在端点的曲率分别为:)2)(1() 0 (012PPPnnP)2)(1() 1 (21nnnPPPnnP)0(P)0(P) 1 (P) 1 (P3)()()()(tPtPtPtk3011201)()(1) 0 (PPPPPPnnk311

39、21)()(1) 1 (nnnnnnPPPPPPnnk(4)对称性。由控制顶点对称性。由控制顶点 构造出的新构造出的新Bezier曲线,与原曲线,与原Bezier曲线形状相同,走向相反。曲线形状相同,走向相反。因为:因为:这个性质说明这个性质说明Bezier曲线在起点处有什么几何性质,曲线在起点处有什么几何性质,在终点处也有相同的性质。在终点处也有相同的性质。),.,1 , 0( ,*niPPinininininiininininniinniittBPtBPtBPtBPtC000,0,* 1 , 0 ),1 ()1 ()()()( *niininniininniiniPtBBPtBPtB0*,

40、 00,0,)1 ()1 ()(n nn n0 0, ,- -i in nn ni i, ,i in n- -i i, ,n n0 0n nn n, ,n nn nn n, ,- -i in nn n- -i i, ,n ni in ni i, ,0 0t t) )P P( (1 1B Bt t) )P P( (1 1B Bt t) )P P( (1 1B Bt t) )P P( (1 1B B( (t t) )P PB B( (t t) )P PB B( (t t) )P PB B( (t t) )P PP P( (t t) )(5)凸包性)凸包性由于由于 ,且,且 ,这一结果,这一结果说明

41、当说明当t在在0,1区间变化时,对某一个区间变化时,对某一个t值,值,P(t)是特是特征多边形各顶点的加权平均,权因子依次是征多边形各顶点的加权平均,权因子依次是 。在。在几何图形上,意味着几何图形上,意味着Bezier曲线曲线P(t)在在 中各点是控中各点是控制点制点Pi i的凸线性组合,即曲线落在的凸线性组合,即曲线落在Pi i构成的凸包之中,构成的凸包之中,如下图所示。如下图所示。ninitB0,1)(), 1 , 0, 10( 1)(0,nittBni)(,tBni 1 , 0t Bezier曲线的凸包性凸包(6)几何不变性。这是指某些几何特性不随坐标变换而变化的特性。Bezier曲线

42、位置与形状与其特征多边形顶点 的位置有关,它不依赖坐标系的选择。), 1 , 0(niPi(7)变差缩减性。若Bezier曲线的特征多边形 是一个平面图形,则平面内任意直线与C(t)的交点个数不多于该直线与其特征多边形的交点个数,这一性质叫变差缩减性质。此性质反映了Bezier曲线比其特征多边形的波动还小,也就是说Bezier曲线比特征多边形的折线更光顺。nPPP10(8)仿射不变性对于任意的仿射变换A:即在仿射变换下,的形式不变。)()()(,0,tBPAtBPAtPAniininii6.5.4 Bezier曲线的生成曲线的生成1绘图一段绘图一段Bezier曲线曲线 利用定义式利用定义式Be

43、zier曲线的绘制,可以利用其定义式,对参数曲线的绘制,可以利用其定义式,对参数t选取选取足够多的值,计算曲线上的一些点,然后用折线连接足够多的值,计算曲线上的一些点,然后用折线连接来近似画出实际的曲线。随着选取点增多,折线和曲来近似画出实际的曲线。随着选取点增多,折线和曲线可以任意接近。线可以任意接近。knCnknknknCknkn 1)!( !1nknkknknkknknkktBENztztBENytytBENxtx0,0,0,)()(0,1 t )()()()(假设给定的四个型值点是假设给定的四个型值点是P0=(1,1),Pl=(2,3),P2=(4,3), P3=(3,1),则计算结果

44、见下表。,则计算结果见下表。t(1-t)33t(1-t)23t2 (1-t)t3P(t)01000(1,1)0.150.6140.3250.05740.0034(1.5058,1.765)0.350.2750.4440.2390.043(2.248,2.376)0.50.1250.3750.3750.125(2.75,2.5)0.650.0430.2390.4440.275(3.122,2.36)0.850.00340.05740.3250.614(3.248,1.75)10001(3,1)利用曲线性质(几何作图法和分裂法)利用曲线性质(几何作图法和分裂法)a.几何作图法几何作图法(de Ca

45、steljau算法算法)记点记点P Pk k,P Pk+lk+l,P Pl l可以生成的可以生成的BezierBezier曲线为曲线为P Pk k, ,l l( (t t) ),00t t11,则成立下面的递推关系,则成立下面的递推关系组合等式)(111ininCCi in nn n1 1, ,1 1- -n n0 0, ,n n0 0, ,C C( (t t) )P Pt t( (t t) )P Pt t) )( (1 1( (t t) )P P左左端端n n0 0i ii iP Pi in nt t) )( (1 1i it ti in nC Cn nP Pn nt ti iP Pi in

46、 nt t) )( (1 1i it t1 1n n1 1i i) )1 1i i1 1n nC Ci i1 1n n( (C C0 0P Pn nt t) )( (1 1n nP Pn nt ti iP Pi in nt t) )( (1 1i it t1 1n n1 1i i1 1i i1 1n nC Ci iP Pi in nt t) )( (1 1i it t1 1n n1 1i ii i1 1n nC C0 0P Pn nt t) )( (1 1 n nP P1 1n nt ti iP Pi in nt t) )( (1 11 1i it t1 1n n1 1i i1 1i i1 1

47、n nC Ct t i iP P1 1i in nt t) )( (1 1i it t1 1n n1 1i ii i1 1n nC C0 0P P1 1n nt t) )t t) ) ( (1 1( (1 11 1i iP P1 1i in nt t) )( (1 1i it t1 1n n0 0i i1 1n n0 0i ii i1 1n nC Ct ti iP P1 1i in nt t) )( (1 1i it ti i1 1n nC Ct t) )( (1 1右右端端nnnnnnnnPtCPttCPtCniitniB111100)1()1(0P)(,左端上式改写为:上式改写为: ( (

48、t t) ) )1 1n n0 0, ,P P( (t t) )n n1 1, ,t t( (P P( (t t) )1 1n n0 0, ,P P( (t t) )n n0 0, ,P P几何作图法伪代码语言实现:0110)()3()2(,0)(1)(), 10)(), 0)2(,0,) 1 (, 1, 010,RtPgotoQRmiiiimmiiRRtRQmiiiiiimPRninmttttttPPPiiiiiiiin(至(做(若的增量为设控制点void bez_to_points(int n, double P, int npoints, double points) / P为控制点坐标

49、为控制点坐标 /控制点控制点P的个数为的个数为n +1 /points存储存储Bezier曲线上的离散点序列曲线上的离散点序列/离散点序列离散点序列points的个数为的个数为npoints+1 double t,delt;delt=1.0/(double)npoints;/将参数将参数t npoints等分等分t=0.0;for(int i=0;i=npoints;i+)pointsi=decas(n, P, t); /分别求出分别求出npoints+1个离散点个离散点points的坐标的坐标t+=delt;double decas(int n,double P,double t)int m

50、,i;double *R, *Q, P0;R = new doublen +1; Q = new doublen +1;for(i=0;i0;m-) for(i=0;i= m -1;i+)Qi= R i+t*( R i+1- R i);for(i=0;i= m -1;i+)Ri= Q i;P0=R0;delete R;delete Q;return (P0); 设给出四点的坐标是设给出四点的坐标是(1,1),(2,3),(4,3),(3,1),求所确定三次,求所确定三次Bezier曲线在曲线在t=1/3时的值时的值P(1/3),算法的计算过程,算法的计算过程 Bezier几何作图算法计算过程几

51、何作图算法计算过程 b.b.分裂法分裂法思想:将原控制点集分为两个点数相同的新控制点集,思想:将原控制点集分为两个点数相同的新控制点集,分别对应原曲线的前半段和后半段,新控制点集比原分别对应原曲线的前半段和后半段,新控制点集比原控制点集更接近直线,分裂过程继续进行,控制点集控制点集更接近直线,分裂过程继续进行,控制点集会迅速向曲线靠近,当满足某个允许的界限时,可依会迅速向曲线靠近,当满足某个允许的界限时,可依次连接各点的折线来表示曲线次连接各点的折线来表示曲线 设控制点序列设控制点序列P P0 0,P P1 1,P Pn n确定的确定的n n次次BezierBezier曲线是曲线是P(P(t

52、t) ),用如下递归方式计算另一组点集:,用如下递归方式计算另一组点集:n n , ,1,1,k kk,k,i in,n, ,1,2,1,2,k k),),1 1k k1 1i iP P1 1k ki i(P(P2 21 1n n , ,0,1,0,1,i i0,0,k k, ,i iP Pk ki iP P 如果令如果令P Pa a( (s s) )和和P Pb b( (s s) )分别是以控制点序列分别是以控制点序列 和和 , 确定的确定的BezierBezier曲线,曲线,其中其中00s s11,那么就有:,那么就有: n nn nP P, , ,1 11 1P P, ,0 00 0P

53、P0 0n nP P, , ,1 1n nn nP P, ,n nn nP P1 1t t2 21 11 1, ,2 2t ts s, ,n n0 0i ii in nn nP Pi in ns s) )( (1 1i is si in nC C( (s s) )b bP P2 21 1t t2 2t t, ,0 0s s, ,n n0 0i ii ii iP Pi in ns s) )( (1 1i is si in nC C( (s s) )a aP PP P( (t t) )己知四点己知四点P P0 0,P P1 1,P P2 2,P P3 3,确定了一条三次,确定了一条三次Bezier

54、Bezier曲线曲线P(P(t t) ),可写出下式,可写出下式, 1 1t t2 21 1, ,0 03 31 1) )P P( (2 2t t3 3, ,3 3B B1 13 31 1) )P P( (2 2t t2 2, ,3 3B B2 23 31 1) )P P( (2 2t t1 1, ,3 3B B3 33 31 1) )P P( (2 2t t0 0, ,3 3B B2 21 1t t0 0, ,3 33 3( (2 2t t) )P P3 3, ,3 3B B2 22 2( (2 2t t) )P P2 2, ,3 3B B1 11 1( (2 2t t) )P P1 1,

55、,3 3B B0 00 0( (2 2t t) )P P0 0, ,3 3B B3 3( (t t) )P P3 3, ,3 3B B2 2( (t t) )P P2 2, ,3 3B B1 1( (t t) )P P1 1, ,3 3B B0 0( (t t) )P P0 0, ,3 3B BP P( (t t) ) 分裂法中的递归计算分裂法中的递归计算 分裂法的示意图分裂法的示意图 验证验证BezierBezier曲线分成前后两段的正确性曲线分成前后两段的正确性,P0的系数为例,验证两端它的系数是相等的。的系数为例,验证两端它的系数是相等的。 323 ,033322332233 , 33

56、,23 , 133 ,0)1 ()12(1 (81) 12(8112/1)1 ()21 ()21 (3)21 (3)21 ()2(81)21 ()2(341)21 (2321)21 ()281)241)2(21)2(3 , 02/10)1 ()(tttBtttttttttttttttttBtBtBtBtttB右端(右端左端223233,13,0223223223,33,23,123,11)1(3)1)(12(3)1(3)12(1)(12(341)12(1(83)12(41)12(8312/1)1(3)21(33)21(6)21(3)2(83)21()2(321)21(2321)283)221)

57、2(212/10)1(3)(tttttttttBtBtttttttttttttttttBtBtBttttBP右端(右端左端的系数: 设己知三次设己知三次BezierBezier曲线曲线P(P(t t) )的控制顶点是的控制顶点是P P0 0,P P1 1,P P2 2,P P3 3,在在P( )P( )处将曲线分为两段,求出前半段的控制顶点处将曲线分为两段,求出前半段的控制顶点Q Q0 0,Q Ql l,Q Q2 2,Q Q3 3和后半段的控制顶点和后半段的控制顶点R R0 0,R R1 1,R R2 2,R R3 3,。有算法如下,。有算法如下2 21 1void split_Bezier(

58、Point P)Point R4,Q4;int i,j;for(i=0;i=3;i+)Ri=Pi; for(i=0;i=2;i+) Qi=R0; for(j=0;j=2-i;j+) Rj.x=(Rj.x+Rj+1.x)/2;/分别对相邻两控制点间的线段进行分裂分别对相邻两控制点间的线段进行分裂 Rj.y=(Rj.y+Rj+1.y)/2; Q3=R0; 分裂算法的计算分裂算法的计算 ) ) )P PP P , ,d d( (P P) ), ,P PP P , ,m ma ax x( (d d( (P P) )P PP Pd d( (P P( (t t) ), ,3 30 02 23 30 01

59、13 30 0分裂中止的条件:分裂中止的条件:max(d(P1,P0P3),d(P2,P0P3)void new_split_Bezier(Point P) Point R4,Q4;int i,j;const double epsilon=0.01;if (maxdistance(P)epsilon) /*maxdistance(P)为求为求max(d(P1,P0P3),d(P2,P0P3)的函数的函数*/ MoveTo(P0.x,P0.y); LineTo(P3.x,P3.y); else for(i=0;i=3;i+) Ri=Pi; for(i=0;i=2;i+) Qi=R0;for(j=

60、0;j=2-i;j+)Rj.x=(Rj.x+Rj+1.x)/2; Rj.y=(Rj.y+Rj+1.y)/2; Q3=R0; new_split_Bezier(Q);new_split_Bezier(R); 举例举例:三次:三次BezierBezier曲线光滑拼接的条件曲线光滑拼接的条件 P P0 0P P1 1P P2 2P P3 3和和Q Q0 0Q Ql lQ Q2 2Q Q3 3,两个,两个bezierbezier多边形多边形曲线在连接点处曲线在连接点处C C0 0连续连续的条件是的条件是P P3 3=Q=Q0 0 曲线在连接点处曲线在连接点处G G1 1连续,连续,QQ0 0= =a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论