计算机图形学第8讲曲线曲面_第1页
计算机图形学第8讲曲线曲面_第2页
计算机图形学第8讲曲线曲面_第3页
计算机图形学第8讲曲线曲面_第4页
计算机图形学第8讲曲线曲面_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

1、1 曲线与曲面曲线与曲面 (Curves and Surfaces) 2 本章目标 l曲线的表示方法曲线的表示方法 l重点掌握重点掌握Bezier曲线曲线 l学会使用学会使用OpenGL的函数的函数 为什么要研究曲线与曲面 l计算机图形学两大基本任务计算机图形学两大基本任务 n建模建模 n绘制绘制 3 为什么要研究曲线与曲面 l建立复杂模型建立复杂模型 n一个球面一个球面 n复杂曲面复杂曲面 u电话电话 u人脸人脸 u赛车赛车 4 Rzyx 222 为什么要研究曲线与曲面 5 为什么要研究曲线与曲面 l使用曲面曲线的好处使用曲面曲线的好处 n控制物体形状控制物体形状 u建模建模 u修改修改 n

2、保证光滑与连续性保证光滑与连续性 n可导性可导性 n易于绘制易于绘制 6 7 主要内容 l参数曲线基础参数曲线基础 l参数多项式曲线参数多项式曲线 l三次三次Hermite曲线曲线 lBezier曲线曲线 lBezier曲面曲面 lOpenGL相关函数相关函数 8 参数曲线基础参数曲线基础 l曲线的表示形式曲线的表示形式 n非参数表示和参数表示非参数表示和参数表示 l非参数表示非参数表示 n显式表示显式表示 u坐标间建立函数关系坐标间建立函数关系 u不能建立多值曲线不能建立多值曲线 n隐式表示隐式表示 u看做是两曲面的交看做是两曲面的交 u坐标变量间可以多对坐标变量间可以多对1 )( )( x

3、gz xfy 0 9 22 z yx 0),( 0),( zyxg zyxf 9 曲线的表示形式曲线的表示形式 l参数表示参数表示 n参数方程参数方程 n参数表示的矢量表示参数表示的矢量表示 ut 规范到规范到0,1: u矢量表示:矢量表示:P=x, y, zT , P(t)=x(t), y(t), z(t)T ut 可以表示时间、角度等量可以表示时间、角度等量 , )( )( )( bat tzz tyy txx ab at t 1 , 0)( ttPP 10 曲线的表示形式曲线的表示形式 l如:直线方程的矢量表示如:直线方程的矢量表示 l如:圆如:圆 1 , 0 )( )( 1 , 0)(

4、 010 010 010 t tyyyy txxxx ttPPPP P0 P1P(t) 01 t 01 0 xx xx t t 反映了反映了P 在在 P0P1 间的相对位置间的相对位置 01 0 xx xx t 360, 0 sin cos 0 Ry Rx 反映了半径与反映了半径与 X 轴的夹角轴的夹角 P() 11 曲线的表示形式曲线的表示形式 l参数表示的优点参数表示的优点 n容易确定曲线边界。由参数区间确定容易确定曲线边界。由参数区间确定 n表示形式不变性。不依赖于坐标系的选取表示形式不变性。不依赖于坐标系的选取 n表示能力强。利于控制点来控制曲线形状,如后面将要学表示能力强。利于控制点

5、来控制曲线形状,如后面将要学 到的到的Bezier曲线曲线 12 切矢量、法矢量、曲率和绕率切矢量、法矢量、曲率和绕率 l位置矢量位置矢量 n矢量表示:矢量表示: PP(t), 0t1 n参数方程参数方程 n导数导数 u正则点:正则点:k1时,对时,对tt0,P(t0)0 u正则曲线:所有点是正则点正则曲线:所有点是正则点 1 , 0, )( )( )( t tzz tyy txx , )( , )( , )( )( )( )( 10 d d d d d d d d T k t tz t ty t tx t tP tP k k k k k k k k k 13 切矢量、法矢量、曲率和绕率切矢量

6、、法矢量、曲率和绕率 l切矢量(切矢量(tangent vector) n参数参数 t 递增一个单位时三个坐标变量递增一个单位时三个坐标变量 的变化量的变化量 l弧长弧长 n对正则曲线,定义弧长:对正则曲线,定义弧长: )( )( )( )( )( tz ty tx dt tdP tP 222 0 1 1 d )(d d )(d d )(d d )(d d d )(d lim)(lim)( t tz t ty t tx t tP t t tP PPnLts t n i ii nn 其中 14 切矢量、法矢量、曲率和绕率切矢量、法矢量、曲率和绕率 n弧长参数表示弧长参数表示 )( )( )( )

7、( 0 d )(d d d )(d 0 sPPtPP tss ttss t tP dt ds t t tP s t 可以用弧长参数表示为曲线 存在反函数 的单调函数是关于参数 15 切矢量、法矢量、曲率切矢量、法矢量、曲率 n单位切矢量单位切矢量 u记记T(s)为为PP(s)上任意一点的切矢量。上任意一点的切矢量。 则则T(s)为单位切矢量为单位切矢量 1 )(d d / d )(d / )()( d )(d d d )(d 0 tP t t tP ds dt dt tsdP ds sdP t tP dt ds t t tP s t ds sdP sT )( 16 切矢量、法矢量、曲率和绕率切

8、矢量、法矢量、曲率和绕率 l法矢量法矢量 对等式两边求导后有对等式两边求导后有 n 与与 垂直垂直 n主法矢量主法矢量(normal) n副法矢量副法矢量(binormal) 1| )(| d d d d d d )( 2 sT tP tP s t t P s P sT | )(| )( )( s s s T T N 02sTsT sT s T | )(| )( )( s s s N N B l法矢量(法矢量(normal vector) l密切平面密切平面( osculating plane) nT、N构成构成 l切平面切平面(tangent plane) nB、T构成构成 l法平面法平面(

9、normal plane) nN、B构成构成 切矢量、法矢量、曲率和绕率切矢量、法矢量、曲率和绕率 17 | )()(| )()( tt tt PP PP B )(| )()(| )()()( ttt ttt PPP PPP N 切平面切平面 切矢量、法矢量、曲率和绕率切矢量、法矢量、曲率和绕率 18 19 切矢量、法矢量、曲率和绕率切矢量、法矢量、曲率和绕率 l曲率曲率(curvature) n曲线的弯曲程度曲线的弯曲程度 n曲率半径曲率半径 s sk s lim )( 0 )( 1 )( sk sp P(s)点处的曲率点处的曲率 切矢量、法矢量、曲率和绕率切矢量、法矢量、曲率和绕率 l绕率

10、绕率(Torsion) 对两边求导对两边求导 对两边求导对两边求导 B与与N平行平行 度量曲线的扭曲程度度量曲线的扭曲程度 20 0ssssTBTB 0ss TB 0ss TB 0 2 sB 02ssBB B与T垂直 B与B垂直 ssNB s s s lim )( 0 切矢量、法矢量、曲率和绕率切矢量、法矢量、曲率和绕率 l两边求导后两边求导后 FrenetSerret 公式公式 21 sssTBN sssBTN 22 参数连续性与几何连续性参数连续性与几何连续性 l参数连续性参数连续性 n传统的、严格的连续性传统的、严格的连续性 n曲线曲线 P = P(t)在在 tt0 处处n阶参数连续,如

11、果它在阶参数连续,如果它在 t0 处处n 阶左右导数存在,并且满足阶左右导数存在,并且满足 n记为记为Cn nk dt tPd dt tPd tt k k tt k k , 1 , 0, )()( 00 23 参数连续性与几何连续性参数连续性与几何连续性 l几何连续性几何连续性 n直观的、易于交互控制的连续性直观的、易于交互控制的连续性 n0阶几何连续阶几何连续 u称曲线称曲线P=P( t ) 在在 t=t0 处处0阶几何连续,如果它在阶几何连续,如果它在 t0 处位置处位置 连续,即连续,即 u记为:记为:G0 n1阶几何连续阶几何连续 u称曲线称曲线 P=P(t) 在在 t = t0 处处

12、1阶几何连续,如果它在阶几何连续,如果它在 t0处处 GC0 ,并且切矢量方向连续,即,并且切矢量方向连续,即 u记为:记为: G1 )( )( 00 tPtP 任一常数任一常数为为0)( )( 00 tPtP 参数曲面 l曲面参数表示曲面参数表示 l曲面上的点曲面上的点 l曲面上的切向量曲面上的切向量 l曲面上的法向量曲面上的法向量 l角点角点 24 1 , 0 1 , 0, , ),( ),( ),( vu vuzz vuyy vuxx ),( 00 vuP ),( 00 vu u P),( 00 vu v P ),(),(),( 000000 vuvuvu vu PPN )0 , 1 (

13、),1 , 1 (),1 , 0(),0 , 0(PPPP 25 参数连续性与几何连续性参数连续性与几何连续性 l几何连续性(续)几何连续性(续) n2阶几何连续阶几何连续* u称曲线称曲线 P=P(t) 在在 tt0 处处2阶几何连续,如果它在阶几何连续,如果它在 t0 处处 l(1) G1 l(2)副法矢量方向连续)副法矢量方向连续 l(3)曲率连续)曲率连续 )()( 00 tBtB )()( 00 tktk 26 曲线与曲面曲线与曲面 l参数曲线基础参数曲线基础 l参数多项式曲线参数多项式曲线 l三次三次Hermite曲线曲线 lBezier曲线曲线 lBezier曲面曲面 lOpen

14、GL相关函数相关函数 27 参数多项式曲线参数多项式曲线 l为什么采用参数多项式曲线?为什么采用参数多项式曲线? n表示最简单表示最简单 n理论和应用最成熟理论和应用最成熟 ln次多项式曲线次多项式曲线 , )( )( )( 10 10 10 10 t tztzztz tytyyty txtxxtx n n n n n n 28 参数多项式曲线参数多项式曲线 l矩阵表示矩阵表示 n矢量表示矢量表示 n加权和形式加权和形式 n缺点缺点 uPi 没有明显的几何意义没有明显的几何意义 uPi 与曲线的关系不明确,导致曲线的形状控制困难与曲线的关系不明确,导致曲线的形状控制困难 CT t t zzz

15、yyy xxx tz ty tx tP n n n n 1 )( )( )( )( 10 10 10 1 , 0)( 10 tPttPPCTtP n n Ferguson curve 29 参数多项式曲线参数多项式曲线 l参数多项式曲线的矩阵表示参数多项式曲线的矩阵表示 n矩阵表示矩阵表示 u矩阵分解矩阵分解 u几何矩阵几何矩阵 G = G0 G1 Gn l控制顶点控制顶点 Gi u基矩阵基矩阵M:MT 确定了一组基函数确定了一组基函数 TG GC )(tP 1 , 0)( 0 ttBt i n i i GCTP tBi 30 参数多项式曲线参数多项式曲线 l参数多项式曲线的矩阵表示(续)参数

16、多项式曲线的矩阵表示(续) n例子:直线段的矩阵表示例子:直线段的矩阵表示 GMT 1 , 0 1 10 11 )1 ()( 10 10 t t PP tPtPtP P0 P1 控制顶点控制顶点: : P0;P0P1 基函数基函数: : 1t ;t t MT 31 参数多项式曲面参数多项式曲面 l矩阵表示矩阵表示 n矢量表示矢量表示 n形式形式 CVU T 10 10110 00100 1 1 )( )( )( )( n mnmm n n m v v GGG GGG GGG uu tz ty tx tP 1 , 01 , 0,)( 00 T vuvuPtP m i n j ji ij CVU

17、32 参数多项式曲线参数多项式曲线 l参数多项式曲面的矩阵表示参数多项式曲面的矩阵表示 n矩阵表示矩阵表示 u矩阵分解矩阵分解 u几何矩阵几何矩阵 l控制顶点控制顶点 Gij uMUU、MVV 分别确定了两组基函数分别确定了两组基函数 mnmm n n GGG GGG GGG 10 10110 00100 V VU VU tPGU GC TT T )( 1 , 01 , 0, ,),( 00 , T vuvBuBGvuP m i n j njmiij CVU vBuB njmi, 33 参数多项式曲线参数多项式曲线 l生成方法生成方法 n流程:流程:P(t)P0P1t + + Pn t n 1

18、 , 0 t 参数离散参数离散 n i t 0 计算型值点计算型值点 折线折线 n i P 0 连接型值点连接型值点 计算一个型值点的运算量计算一个型值点的运算量 乘法:乘法:n(n+1)/2次次 加法:加法:n次次 34 参数多项式曲线参数多项式曲线 l参数多项式曲线的生成(续)参数多项式曲线的生成(续) nHorner迭代算法迭代算法 )()( 0, 2, 1,)()( )( 0 1 tRtP nnkPttRtR PtR kkk nn 结果:结果: 令令 n次乘法和次乘法和n次加法次加法 35 曲线与曲面曲线与曲面 l参数曲线基础参数曲线基础 l参数多项式曲线参数多项式曲线 l三次三次He

19、rmite曲线曲线 lBezier曲线曲线 lBezier曲面曲面 lOpenGL相关函数相关函数 36 9.3 三次三次Hermite曲线曲线 l三次三次Hermite曲线的定义曲线的定义 n给定给定4个矢量个矢量P0, P1, R0, R1 ,称满足下列条件的三次多,称满足下列条件的三次多 项式曲线项式曲线 P(t) 为为Hermite 曲线曲线 10 10 )1( ,)0( )1(,)0( RPRP PPPP P0 P1 R0 R1 37 Hermite曲线曲线 l矩阵表示矩阵表示 1 , 0)( tTMGtP 1 T 1 0 T 0 1 T 1 0 T 0 3210| 0010| 11

20、11| 0001| RMGTMG RMGTMG PMGTMG PMGTMG HHtHH HHtHH HHtHH HHtHH CT t t zzz yyy xxx tz ty tx tP n n n n 1 )( )( )( )( 10 10 10 n次多项式参数方程次多项式参数方程 38 9.3 三次三次Hermite曲线曲线 n合并合并 n解(不唯一)解(不唯一) HHH GRRPPMG 取取 3010 2010 1110 0011 1010 1100 1210 2300 2301 3010 2010 1110 0011 3010 2010 1110 0011 1 H HHH M GMG 3

21、9 三次三次Hermite曲线曲线 l基矩阵与基函数(调和函数)基矩阵与基函数(调和函数) )( )( )( )( 2 23 2311 1100 1210 2300 2301 1 0 1 0 32 32 32 3 3 2 tH tH tG tG tt ttt tt tt t t t TM H P(t)=P0G0(t)+P1G1(t)+R0H0(t)+R1H1(t) 基函数为权:基函数为权: G0(t);G1(t);H0(t);H1(t) Hermite曲线上的点为曲线上的点为P0、P1、R0、R1的的 加权和加权和 40 三次三次Hermite曲线曲线 l形状控制形状控制 n改变端点位置矢量改

22、变端点位置矢量P0,P1 n调节切矢量调节切矢量R0,R1的方向的方向 n改变切矢量改变切矢量R0,R1的长度的长度 41 三次三次Hermite曲线曲线 l几何变换几何变换 n仿射不变性:对曲线的几何变换等价于对仿射不变性:对曲线的几何变换等价于对P0,P1,R0, R1做几何变换做几何变换 l曲线生成曲线生成 n取型值点:取型值点:ti n对每个对每个ti,计算,计算 P(ti) 42 曲线与曲面曲线与曲面 l参数曲线基础参数曲线基础 l参数多项式曲线参数多项式曲线 l三次三次Hermite曲线曲线 lBezier曲线曲线 lBezier曲面曲面 lOpenGL相关函数相关函数 lPier

23、re tienne Bzier (1910-1999) n法国工程师法国工程师 n机械工程学位机械工程学位 n电子工程学位电子工程学位 n雷诺公司雷诺公司 n并非发明并非发明Bzier曲线曲线 uPaul de Casteljau 43 44 Bezier曲线曲线 lBezier曲线曲线 n几何造型的基本工具几何造型的基本工具 n目前在很多图形软件中广泛应用(如目前在很多图形软件中广泛应用(如AutoCAD) Bezier曲线曲线 lBezier曲线定义曲线定义 :位置矢量(控制点:位置矢量(控制点, control point) n:次数次数 :控制多边形:控制多边形 lBezier基函数(

24、基函数(Bernstein多项式多项式) 45 )!( ! ! 1 , 0)1 ()( , ini n C tttCtB i n inii nni 其中 1 , 0, )( 0 , ttBPtP n i nii i P n PPP 10 46 Bezier曲线曲线 lBezier基函数的基本性质基函数的基本性质 n正性正性 n权性权性 ., 1 , 0, 1)(0),1 , 0( ; 1, 1 , 0, 0)(, 1)(, 1 ;, 2 , 1, 0)(, 1)(, 0 .1 , 0, 0)( , , , 0 , nitBt nitBtBt nitBtBt ttB ni ninn nin ni

25、 1)1 ()1 ()( .1 , 0, 1)( 00 , 0 , nini n i i n n i ni n i ni ttttCtB ttB 由二项式定理: lBezier基函数的基本性质(续)基函数的基本性质(续) n对称性对称性 n降阶公式降阶公式 n升阶公式升阶公式 47 Bezier基函数基函数 ., 1 , 0,1 , 0),()()1 ()( 1, 11, nitttBtBttB ninini ., 1 , 0,1 , 0),( 1 1 )( 1 1 )( 1,1, 1, nittB n in tB n i tB ninini ., 1 , 0,1 , 0),1 ()( , n

26、ittBtB ninni 48 lBezier基函数的基本性质(续)基函数的基本性质(续) n导数导数 n积分积分 n最大值最大值 u在在Bi, n(t)在在 t i / n处取得最大值处取得最大值 Bezier基函数基函数 ., 1),()()( 1,1, 1 , nitBtBntB nini ni ., 1 , 0, 1 1 d)( 1 0 , ni n ttB ni Bezier基函数基函数 l线性无关性线性无关性 nn次多项式空间的一组线性无关函数次多项式空间的一组线性无关函数 n任何任何n次多项式可表示为它们的线性组合次多项式可表示为它们的线性组合 49 50 Bezier曲线定义及

27、性质曲线定义及性质 lBezier曲线的基本性质曲线的基本性质 (1) 端点性质端点性质 (2)端点切矢量)端点切矢量 导数曲线导数曲线 1 , 0)()()( 1 0 1,1 ttBPPntP n i niii n次次Bezier曲线曲线 P(t) 的导数曲线的导数曲线 P(t) 是是 n1次次Bezier曲线曲线 )(| )( )(| )( 11 010 nnt t PPntP PPntP nt t PtP PtP 1 00 |)( |)( 二阶导数曲线二阶导数曲线 51 Bezier曲线定义及性质曲线定义及性质 (3)仿射不变性)仿射不变性 u几何性质不随坐标变换而变换(形状、曲率等)几

28、何性质不随坐标变换而变换(形状、曲率等) u仿射变换不改变曲线的表示形式仿射变换不改变曲线的表示形式 )()()()( , 00 , tBPAtBPAtPA ni n i n i inii 对曲线的变换只要作用于控制顶点即可对曲线的变换只要作用于控制顶点即可 52 Bezier曲线定义及性质曲线定义及性质 (4)凸包性)凸包性 u凸包:凸包: Pi的凸包是指包含这些点的最小凸集的凸包是指包含这些点的最小凸集 uBezier曲线位于其控制顶点的凸包之内曲线位于其控制顶点的凸包之内 53 Bezier曲线定义及性质曲线定义及性质 例:一些例:一些Bezier曲线曲线 Bezier曲线 54 Bez

29、ier曲线定义及性质曲线定义及性质 (5)平面曲线的保型性)平面曲线的保型性 u保凸性:如果多边形是凸的,那么保凸性:如果多边形是凸的,那么Bezier曲线也是凸的曲线也是凸的 u变差缩减性:平面内任一直线与变差缩减性:平面内任一直线与Bezier曲线的交点个数不多曲线的交点个数不多 于该直线与控制多边形的交点个数。说明于该直线与控制多边形的交点个数。说明Bezier曲线比控制曲线比控制 多边形的波动小,更光顺多边形的波动小,更光顺 55 Bezier曲线定义及性质曲线定义及性质 (6)拟局部性)拟局部性 局部性指移动控一个制顶点时,只影响曲线的局部。局部性指移动控一个制顶点时,只影响曲线的局

30、部。 移动控制顶点移动控制顶点Pi 时,对应参数时,对应参数 ti /n 的曲线上的点变动最大,的曲线上的点变动最大, 远离远离 i/n 的曲线上的点变动越来越小的曲线上的点变动越来越小 56 Bezier曲线曲线 l一次一次Bezier曲线曲线 nn = 1时,有两个控制点时,有两个控制点 P0 和和 P1 ,Bezier多项式是一次多项式是一次 多项式:多项式: 0,1 t)1 ()()( 1 0 101 , k kk tPPttBPtp 一次一次Bezier曲线是连接起点曲线是连接起点P0和终点和终点P1的直线段的直线段 57 Bezier曲线曲线 l二次二次Bezier曲线曲线 nn=

31、2时,有时,有3个控制点个控制点P0、P1和和P2,Bezier多项式是二次多多项式是二次多 项式:项式: 2 012010 2 2 10 2 2 0 2, )2()(2 0,1 t )1 (2)1 ( )()( tPPPtPPP PtPttPt tBPtp k kk 2 210 1 001 022 121 )( t tPPPtP lp(t) = (1 -t )2 P0 + 2 (1-t) t P1 + t2 P2 , 0 t 1 p(0) = 1 P0 + 0 P1 + 0 P2 p(1/3) = (4/9) P0 + (4/9) P1 + (1/9) P2 p(1/2) = (1/4) P

32、0 + (1/2) P1 + (1/4) P2 p(2/3) = (1/9) P0 + (4/9) P1 + (4/9) P2 p(1) = 0 P0 + 0 P1 + 1 P2 58 b2, 0 b2,2 0 u 0 1 1 b2,1 P0 P1 P2 u = 0 u = 1/2 u = 1 59 Bezier曲线曲线 l三次三次Bezier曲线的矩阵表示曲线的矩阵表示 n矩阵表示矩阵表示 3,3 3,2 3, 1 3,0 3210 3 0 3, )( 1 ,0)( B B B B PPPPtP tBPtP i ii TMG t t t G t tt ttt ttt G tC ttC ttC

33、 tC G BEZBEZ 3 2 BEZ 3 32 32 32 BEZ 33 3 22 3 21 3 30 3 BEZ 1 1000 3300 3630 1331 33 363 331 )1( )1( )1( 60 Bezier曲线的递推算法曲线的递推算法 lHorner算法算法 n只适宜低次只适宜低次Bezier曲线(如三次曲线(如三次Bezier曲线)曲线) lde Casteljau算法(数值更稳定)算法(数值更稳定) 1 , 0, )()( 0 , ttBPtP n i nii n r i r i ir i PtP rninrtPPt rP P 0 1 1 1 )( ,1 ,0;,2,

34、1,)1( ,0, Bezier曲线的递推算法曲线的递推算法 lPaul de Casteljau (1930- ) n法国物理学家、数学家法国物理学家、数学家 n在雪铁龙汽车工作期间在雪铁龙汽车工作期间 提出一种曲线算法提出一种曲线算法 n国际实体建模协会国际实体建模协会 (Solid Modeling Association) Breizer奖,奖,2012 61 62 Bezier曲线的递推算法曲线的递推算法 lBezier曲线的离散生成曲线的离散生成 算法(续)算法(续) 1t t r0 r1 r2 r3 n r i r i ir i PtP rninrtPPt rP P 0 1 1

35、1 )( , 1 , 0;, 2 , 1,)1( , 0, 的点处的点处上分割比为上分割比为 位于线段位于线段 )(:tt PPP r i r i r i 1 1 1 1 Bezier曲线的递推算法曲线的递推算法 l一次一次Bezier曲线曲线 63 Bezier曲线的递推算法曲线的递推算法 l二次二次Bezier曲线曲线 64 Bezier曲线的递推算法曲线的递推算法 l三次三次Bezier曲线曲线 65 Bezier曲线的递推算法曲线的递推算法 l四次四次Bezier曲线曲线 66 67 Bezier曲线的拼接曲线的拼接 lBezier曲线的拼接及其连续性曲线的拼接及其连续性 n可以用任意

36、数目的控制点逼近出一条可以用任意数目的控制点逼近出一条Bezier 曲线,但是高曲线,但是高 次次Bezier曲线计算比较复杂,曲线计算比较复杂, n为构造复杂曲线,工程上往往使用分段三次为构造复杂曲线,工程上往往使用分段三次Bezier样条曲样条曲 线来描述,即将一段段的三次线来描述,即将一段段的三次Bezier曲线首尾相连拼接起曲线首尾相连拼接起 来来 n由于由于Bezier曲线通过端点,较容易获得曲线通过端点,较容易获得0阶连续性阶连续性 n关键问题是如何保证连接处具有关键问题是如何保证连接处具有G1和和G2连续性连续性 l如何保证连接处具有如何保证连接处具有G1和和G2连续性连续性?

37、(1)在两段三次在两段三次Bezier曲线间得到曲线间得到GC1连续性连续性 68 Bezier曲线的拼接曲线的拼接 为实现为实现G1连续,则有:连续,则有: )(3)0( )(3)1( 012 231 QQp PPp )1()0( 12 pp )( 2301 PPQQ 亦即:亦即: 69 Bezier曲线的拼接曲线的拼接 )2()2( )1()0( 321210 12 PPPQQQ pp (2)在两段三次在两段三次Bezier曲线间得到曲线间得到G2连续性:连续性: Bezier曲线的升阶与降阶曲线的升阶与降阶 l升阶(升阶(degree elevation) n为了能更加灵活地控制曲线,需

38、要增加控制点个数为了能更加灵活地控制曲线,需要增加控制点个数 n增加控制点时,为了保持原有曲线,需要改变原控制点增加控制点时,为了保持原有曲线,需要改变原控制点 n如何确定新的控制点如何确定新的控制点 n已知已知 求求 使得使得 70 1 , 0, )()( 0 , ttBPtP n i nii 1, 0, * niPi 1 , 0, )()( 1 0 1, * ttBPtP n i ni i Bezier曲线的升阶与降阶曲线的升阶与降阶 l对于对于 由基函数的升阶公式由基函数的升阶公式 有有 71 ., 1 , 0,1 , 0),( 1 1 )( 1 1 )( 1,1, 1, nittB n

39、 in tB n i tB ninini 1 , 0, )()( 0 , ttBPtP n i nii ., 1 , 0,1 , 0, 11 1 )( 0 1,1, nittBP n i P n in tB n i niiini 1 * 11 1 ii iP n i P n in P Bezier曲线的升阶与降阶曲线的升阶与降阶 l新的控制点从旧控制点分段线性插值得到的新的控制点从旧控制点分段线性插值得到的 n参数为参数为 l升阶后的新的特征多边形在原始特征多边形的凸包内升阶后的新的特征多边形在原始特征多边形的凸包内 l特征多边形更靠近曲线特征多边形更靠近曲线 72 1n i Bezier曲线

40、的升阶与降阶曲线的升阶与降阶 l降阶降阶 n升阶的逆过程升阶的逆过程 推出推出 73 1 * 11 1 ii iP n i P n in P 74 曲线与曲面曲线与曲面 l参数曲线基础参数曲线基础 l参数多项式曲线参数多项式曲线 l三次三次Hermite曲线曲线 lBezier曲线曲线 lBezier曲面曲面 75 Bezier曲面曲面 lBezier曲面曲面 n利用两组正交的利用两组正交的 Bezier 曲线逼近由控制点网格描述的曲曲线逼近由控制点网格描述的曲 面面 n其中其中 pj, k 是给定的是给定的 (m+1)(n+1) 个控制点的位置个控制点的位置 nBezier 曲面与曲面与 B

41、ezier 曲线有相同的性质曲线有相同的性质 1 ,01 ,0, ),()(),( 00 , vuuBvBPvuP m i n j njmiji 76 Bezier曲面曲面 u (1,1) lBezier曲面性质曲面性质 n权性权性 n曲面的恰好通过曲面的恰好通过4个角控制点个角控制点 n曲面上点曲面上点 的切平面正好为三角形的切平面正好为三角形 所在平面所在平面 Bezier曲面曲面 77 . 1,0 allfor , 1)()( 00 , vuvBuB m i n j jnim ) 1 , 0(),1 , 1 (),0 , 1 (),0 , 0(PPPP Bezier曲面曲面 lde Ca

42、steljau算法算法 l递推递推 或或 78 1 ,01 ,0, ),()(),( 00 , vuuBvBPvuP m i n j njmiji Bezier曲面曲面 79 Bezier曲面曲面 80 81 Bezier曲面曲面 l实例实例 Bezier曲面曲面 82 83 曲线与曲面曲线与曲面 l参数曲线基础参数曲线基础 l参数多项式曲线参数多项式曲线 l三次三次Hermite曲线曲线 lBezier曲线曲线 lBezier曲面曲面 lB样条曲面与曲线样条曲面与曲线 B样条曲线与曲面 lBezier曲线缺点:曲线缺点: n曲线或曲面不能作局部修改曲线或曲面不能作局部修改 n曲面的拼接比较复

43、杂曲面的拼接比较复杂 l1972 年,年,Gordon、Riesenfeld等人提出了等人提出了B样条样条方方 法,在保留法,在保留Bezier方法全部优点的同时,克服了方法全部优点的同时,克服了 Bezier方法的弱点。方法的弱点。 84 1 , 0, )( 0 , ttBPtP n i nii B样条曲线与曲面 l什么是样条函数?什么是样条函数? n“在数学学科数值分析中,样条是一类分段(片)光滑在数学学科数值分析中,样条是一类分段(片)光滑 、并且在各段交接处也有一定光滑性的函数。在中国大、并且在各段交接处也有一定光滑性的函数。在中国大 陆,早期曾经被称做陆,早期曾经被称做“齿函数齿函数

44、”。后来因为工程学术语。后来因为工程学术语 中中“放样放样”一词而得名。一词而得名。” l为什么要使用样条函数?为什么要使用样条函数? n龙格现象:高次多项式龙格现象:高次多项式 n样条函数:样条函数: u低次低次 u光滑光滑 85 B样条曲线 lB样条(样条(B-Spline) n一类样条函数一类样条函数 nB表示表示Basis n保留保留Brezier优点优点 n克服克服Brezier缺点缺点 86 B样条曲线 l定义定义 l :控制顶点控制顶点 :k阶(阶(k-1次)次)B样条基函数样条基函数 由由k个个k-1次分段多项式组成次分段多项式组成 分段多项式相连的分段多项式相连的t值称为值称

45、为节点节点 曲线上曲线上ti序列构成的向量称为序列构成的向量称为节点向量节点向量 87 n i kii tNPtP 0 , )()( i P ), 0( , , nitN ki 88 lB样条基函数样条基函数 nde Boor-Cox迭代公式迭代公式 n结点向量结点向量 89 90 t5t4t2t3t1t0t6t7 N0,1(t) N3,4(t) N0,4(t) N0,3(t) N0,2(t) N1,1(t) N2,2(t) N1,2(t) 91 , otherwise 0 if 1 )( , otherwise 0 if 1 )( 21 1 , 1 10 1 , 0 ttt tN ttt t

46、N otherwise 0 if if )( )()()( 21 12 2 10 01 0 2, 0 1 , 1 12 2 1 , 0 01 0 2, 0 ttt tt tt ttt tt tt tN tN tt tt tN tt tt tN t2t1t0 N0,1(t) N0,2(t) N1,1(t) 92 otherwise 0 if if if )( )()()( 32 23 3 13 3 21 12 1 13 3 12 2 02 0 10 01 0 02 0 3 , 0 2, 1 13 3 2, 0 02 0 3 , 0 ttt tt tt tt tt ttt tt tt tt tt

47、tt tt tt tt ttt tt tt tt tt tN tN tt tt tN tt tt tN t2t3t1t0 N0,3(t) N0,2(t) N1,2(t) 93 t5t4t2t3t1t0t6t7 N0,1(t) N3,4(t) N0,4(t) N0,3(t) N0,2(t) N1,1(t) N2,2(t) N1,2(t) 三次 节点节点 94 463 6 1 1 6 1 otherwise0 if 3 if2 if2 if 1 )( 23 3 43 21 21 10 4, 0 tttv ttu ttttu ttttv ttttv ttttu tN l性质性质 n非负性非负性 n权

48、性权性 95 l分类分类 n均匀均匀B样条曲线样条曲线 u节点均匀分布节点均匀分布 n准均匀准均匀B样条曲线样条曲线 u两端节点具有重复度两端节点具有重复度k n非均匀非均匀B样条曲线样条曲线 u节点按非递减顺序任意分布节点按非递减顺序任意分布 96 Ctt ii 1 l局部性局部性 nP(t)在区间在区间(ti,ti+1)顶多与顶多与k个控制顶点个控制顶点Pj(j=i-k+1,.,i)有关有关 ,与其它控制顶点无关;,与其它控制顶点无关; n移动该曲线的第移动该曲线的第i个控制顶点个控制顶点Pi至多影响到定义在区间至多影响到定义在区间 (ti,ti+k)上那部分曲线的形状,对曲线的其余部分不

49、发生上那部分曲线的形状,对曲线的其余部分不发生 影响影响 97 l连续性连续性 nP(t)在在r( k r n )重节点处连续阶不低于)重节点处连续阶不低于k-1-r n整条曲线连续阶不低于整条曲线连续阶不低于k-1-rmax,其中,其中rmax表示位于区间表示位于区间(tk- 1,tn+1)内的节点的最大重数 内的节点的最大重数 l凸包性凸包性 nP(t)在区间在区间(ti,ti+1, k -1 r n上部分位于上部分位于k个点个点Pi-k+1 ,Pi-k+1的的 凸包内凸包内 n整个曲线位于各凸包的并集内整个曲线位于各凸包的并集内 l分段参数多项式分段参数多项式 nP(t)在每一区间在每一

50、区间 (ti,ti+1), k -1 r n都是次数不高于都是次数不高于k -1的分段的分段 多项式多项式 nP(t)是参数是参数t的的k -1次次分段多项式分段多项式 98 l导数公式导数公式 l变差缩减性变差缩减性 n平面内任一直线与曲线的交点个数不多于该直线与控制平面内任一直线与曲线的交点个数不多于该直线与控制 多边形的交点个数多边形的交点个数 l几何不变性几何不变性 nB样条曲线的形状和位置与坐标系的选择无关样条曲线的形状和位置与坐标系的选择无关 l仿射不变性仿射不变性 99 l直线保持性直线保持性 n控制多边形退化为一条直线时,曲线也退化为一条直线控制多边形退化为一条直线时,曲线也退

51、化为一条直线 l造型的灵活性造型的灵活性 n用用B样条曲线可以构造直线段、尖点、切线等特殊情况样条曲线可以构造直线段、尖点、切线等特殊情况 100 l目的:更加快速地计算目的:更加快速地计算B样条曲线样条曲线 l输入:控制顶点输入:控制顶点 ,节点序列,节点序列ti l先将先将t限定在区间限定在区间ti,ti+1)上上 101 i P l递推公式递推公式 102 103 l割角割角 104 节点插入算法 l通过插入节点可以进一步改善通过插入节点可以进一步改善B样条曲线的局部性样条曲线的局部性 质,提高质,提高B样条曲线的形状控制的灵活性,可以实样条曲线的形状控制的灵活性,可以实 现对曲线的分割等现对曲线的分割等 l插入节点插入节点=插入控制顶点插入控制顶点 给定一条给定一条k阶阶(k-1次次)B样条曲线样条曲线 及其节点向量及其节点向量 n插入节点插入节点 得到:得到: n决定新的决定新的B样条基于是样条基于是 105 n i kii tNPtP 0 , )()( , 10n tttT , 111 nkii ttt

温馨提示

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

评论

0/150

提交评论