您好,欢迎访问三七文档
前言上讲内容回顾三维建模方法三维观察与剪裁三维几何变换(平移、旋转、缩放、错切、复合变换)三维观察变换(指定观察坐标系、投影变换、定义观察体)OpenGL中的观察转换定义视点gluLookAt()定义视景体glFrustum()、gluPerspective()、glOrtho()定义视口glViewport()切割视景体(3)参数曲线曲面IntroductionofComputerGraphics第三章模型及变换IntroductionofComputerGraphicsIntroductionofComputerGraphics肖双九xiaosj@sjtu.edu.cn上海交通大学数字艺术实验室本讲内容曲线的表示及绘制参数曲线基础知识常用参数曲线OpenGL中曲线的绘制曲面的表示及绘制常用参数曲面OpenGL中曲线曲面的绘制前言对于具体的应用,使用一个紧凑的曲线曲面表示的优点:它们有比多边形集合更加紧凑的表达式,对于模型的保存,可以节省存储空间。使用少量的控制多边形就能得到比直线和平面多边形更加光滑更加连续的图形。对于一个函数曲面的变换比对多边形网格表示的曲面的变换的复杂度更小。前言对于具体的应用,使用一个紧凑的曲线曲面表示的优点:可以很容易生成模型的LOD结构。因而在实时绘制时根据实际情况提高绘制质量或者提高帧速率。动画中,曲面只有少量的点需要进行变换。这些变换后的点再形成一张新的光滑曲面。对于碰撞检测,更加有效更加精确。可以使实时计算机图形应用更快速,编码更快速,生存期更长。一、曲线的表示和绘制1.1曲线曲面参数化表示基础1.1.1显示、隐式和参数表示显式表示平面曲线显式方程的一般形式为因为一个y值只能对应一个x值,因此显式方程不能表示封闭或多值的曲线,例如()yfxxyx1x2x3x4x5x6xyxy1y2隐式表示平面曲线隐式方程的一般形式为例如一个圆锥曲线的二阶隐式方程可写成(,)0fxy222220axbxycydxeyf非参数表示的问题与坐标轴相关会出现斜率为无穷大的情况(如垂线)非平面的曲线,系数不是常量不便于计算和编程参数表示平面曲线参数方程的一般形式为通常将参数t规格化到[0,1]之间,只研究这一个区间中的参数曲线()()xxtyyt参数表示例如,直线的两端点分别为p1(1,2)和p2(4,3)其参数方程为当p=p1时,t=0p=p2时,t=1写成分量参数方程形式为121()()ptppptp1p2xyp121121()()13()()2xtxxxttytyyytt参数表示一个以坐标原点为圆心半径为r的圆其参数方程可表示为参数u是一个规格化了的角度参数当圆上某一点与原点的连线与x轴正向的夹角从0变化到2,就绘制出了整个圆,因此u=/2当=0,参数u=0;=2,参数u=1;=/2,参数u=1/4;=,参数u=1/2;()cos(2)()sin(2)01xuruyuruuxyx(u),y(u)参数表示的优点(1)有更大的自由度来控制曲线、曲面形状例如,一个二维三次曲线的显式方程为有4个系数可以用来控制曲线形状,而其参数表达式为有8个系数可以用来控制曲线形状32yaxbxcxd3232xatbtctdyetftgth参数表示的优点(2)易于用矢量和矩阵表示几何分量,简化计算非参数方程的几何变换要通过对所有型值点进行变换来实现,而参数方程可以直接进行变换;323232xxxxyyyyzzzzxatbtctdyatbtctdzatbtctd321xxxxyyyyzzzztabcdxtyabcdtzabcd三次Hermite参数曲线参数表示的优点(3)便于处理斜率为无穷大的问题,不会出现计算中断;平面直线显式方程非参数方程无法表示x=c(常数)的直线,因为此时dx=0,斜率k为无穷大;而用参数方程就可以直接表示。ykxbxybdy(x,y)dykdxdx参数表示的优点(4)参数方程对变量个数不限,从而可以很方便地把低维曲线曲面扩展到高维空间中去;例如一条二维三次参数曲线3232xxxxyyyyxatbtctdyatbtctd32320xxxxyyyyxatbtctdyatbtctdz扩展到三维的参数表达式为扩展到三维空间,就可以做三维的变换或其他计算参数表示的优点(5)[0,1]之间规格化的参数,使其相应的几何分量是有界的,不需要另外的参数定义其边界。例如前例中直线段的参数方程自然表示出端点为(1,2)和(3,4),如果是显式方程,还要专门说明两端点的位置,否则直线方程表示的是一条无限的直线而不是线段。()13()2xttytt1(5)3yx1.2参数曲线的定义及相关基本概念三维参数曲线的一般表达式基本概念位置矢量曲线上任意一点的位置矢量p(t)(),(),(),01xxtyytzztt()[(),(),()]ptxtytztxyzt=0t=1P(t)P1P0切矢量T曲线上两点r和Q的参数分别为t和t+tr和Q两点之间的弦长当r和Q之间的弧长c0时,pc,曲线在该点处的单位切矢量切矢量dp/dt仅与T成比例若切矢量数值远远超过曲线弦长的几倍,曲线会出现回转现象=()()ppttptxyzP0P1t=0t=1cpP(t)rP(t+t)QTd/dpcT基本概念曲率k表示曲线在该点处的弯曲程度当Q趋向于r,即c0时,0lim|/|T/ckcddcxyzP0P1c=0c=1cP(c)rP(c+c)QT'(),''()pckpc因为所以1k曲率半径可以看作在该点处,有一个半径为的密切圆内切于该点,曲率半径就为,曲率为1/k,密切圆的圆心称为“曲率中心”主法矢N和副法矢B垂直于切矢量T的矢量都是法矢量,构成法平面其中指向曲率中心的单位法矢量称为单位主法矢N单位副法矢B=TNT和N构成密切平面N和B构成法平面B和T构成化直平面基本概念xyzP0P1c=0c=1TBN法平面密切平面化直平面基本概念扰率表示曲线在该点处的扭出其密切平面的速率当Q趋向于r,即c0时,0lim|/|B/ccddccxyzP0P1c=0c=1P(c)rP(c+c)QB(c+c)B(c+c)B(c)基本术语样条SplineAtraditionalsplineusedfordrawingsmoothcurves.Thewoodensplineisbentintoshapeusingsplineweights.基本术语插值插值的概念给定函数f(x)在区间[a,b]上n个不同的值f(xi),i=1,2,3…,n,寻找某一函数(x)逼近f(x),(xi)=f(xi)(x)就称为插值函数,也称插值样条曲线,xi为插值节点;xyx1x2x3xn(x)f(x)线性插值给定两点x1和x2处的值用一个线性函数进行插值代入(x)的表达式,可求出系数a和b插值1122()()yfxyfx()xaxb1122(),()xyxy211121()()yyxyxxxxxyx1x2f(x)(x)y1y2插值二次插值需要知道函数f(x)上的三个点x1、x2和x3的值y1、y2和y3用一个二次函数来插值必须满足方程组求解出系数a、b、c,就可以构造出二次插值函数(x)2()xaxbxc112233(),(),()xyxyxyxyx1x2f(x)x3y1y2y3(x)逼近当型值点太多时,很难构造插值函数选择一个次数较低的函数F(x),最佳逼近这些型值点最小二乘逼近构造F(x)使达到极小也称F(x)为逼近样条xyx1x2x3xnf(x)F(x)21[()()]nkiikidFxfxd,是权值光顺平面曲线的光顺条件:(1)具有二阶几何连续G2(2)不存在多余的拐点(3)曲率变化比较小曲线段之间的连续性参数连续性C和几何连续性G在结合点P处位置重合,称为C0和G0连续在点P处切矢量方向相同,大小相等C1连续;在点P处切矢量方向相同,大小不等G1连续;在点P处的n阶导矢方向相同,大小相等Cn连续;在点P处的n阶导矢方向相同,大小不等Gn连续;Tp1Q1(t)Q2(t)PTp21.3常用参数曲线1.3.1样条曲线样条曲线的表示有三种等价的方式:(1)列出一组在样条边界上的边界条件;(2)列出描述样条特征的矩阵;(3)列出一组调合函数(或基函数)。Hermit三次样条曲线三次参数曲线方程的一般矢量形式是32()uuuuPabcd2'()32uuuPabcHermit三次样条曲线设有n+1个形值点两相邻型值点Pk和Pk+1之间Hermit曲线的边界条件是:边界条件的矩阵表示为11(0),(1)'(0),'(1)kkkkPPPPPPPPDDP(,,)0,1,2,...,kkkkxyzkn110001111100103210kkkkPPPabPcDdDHermit三次样条曲线系数矩阵求解得到11112211332100101000kkkkHkkkkMPPPPaPPbPPcDDdDDHermit矩阵3232323211011213()(231)(23)P(2)P()()()P()P()kkkkkkkkuuuuuuuuuuHuHuHuHuPPPDDPPDD矩阵相乘,得到调和函数表达式为4个调合函数1.3.2Bèzier曲线法国雷诺汽车公司的P.E.Bèzier提出的一种以逼近为基础的参数曲线Bèzier曲线的定义用一组折线或称做特征多边形定义的,曲线和特征多边形的起点与终点的位置重合,多边形第一条边和最后一条边表示了曲线起点和终点的切矢量方向用一组折线或称做控制多边形ControlPolygon定义的,曲线和控制多边形的起点与终点的位置重合,多边形第一条边和最后一条边表示了曲线起点和终点的切矢量方向1.3.2Bèzier曲线n次Bèzier曲线上各点的插值公式为,0()()niiniCtPBt调合函数,!()(1)!()!iniinnBtttini控制顶点例如,三次Bèzier曲线(n=3)的调和函数为32230,31,32,33,3()(1),()3(1),()3(1),()BttBtttBtttBtt则,三次Bèzier曲线方程为32230123()(1)3(1)+3(1)CttPttPttPtP1.3.2Bèzier曲线Bèzier曲线的调和函数,!()(1)!()!iniinnBtttini01tB0,3B1,3B2,3B3,330,3()(1)Btt21,3()3(1)Bttt22,3()3(1)Bttt33,3()Btt1.3.2Bèzier曲线Bèzier曲线的调和函数的性质正性权性递推性,,()0,0,10,()0,(0,1)1,2,...,-1ininBttinBttin,0()1,(0,1)niniBtt,,11,1()(1)()()inininBttBttBt1.3.2Bèzier曲线Bèzier曲线的性质
本文标题:第三章参数曲线曲面
链接地址:https://www.777doc.com/doc-2120710 .html