5.1三次参数曲线曲线和曲面可以用折线和多边形进行一次线性逼近,为了达到一定精度,需要生成和存储大量的顶点坐标,数据的交互繁琐。所以,一般使用结构更紧凑、更易于控制的分段光滑曲线(曲面)表示-比线性更高次的函数,存储空间更少,更易于控制。高次函数一般有三种表示方法直接将y和z表示成x的显函数y=f(x),z=g(x)f(x,y,z)=0的隐式方程曲线的参数表示x=x(t),y=y(t),z=z(t)为什么参数曲线次数为3?低于三次的函数控制曲线形状时不够灵活,高于三次的曲线会增加不必要的摆动其增加计算量。三次参数曲线是三维空间中次数最低的非平面曲线。高于3次的曲线还是有应用的5.1.13次参数曲线的基本特征TtztytxtQ)()()()(10232323tdtctbtatzdtctbtatydtctbtatxzzzzyyyyxxxx)()()(zyxzyxzyxzyxdddcccbbbaaaC123tttT令则系数矩阵CTtztytxtQ*)()()()(曲线10232323tdtctbtatzdtctbtatydtctbtatxzzzzyyyyxxxx)()()(写成曲线的导数表示曲线的切向量CttCTdtdtQtQddt*)*()(')(01232曲线段之间的连续性几何连续Gi与参数连续CiG0连续(C0):两条曲线段拼接成一条曲线。G1连续:两条曲线段拼接点处切向量方向相同。若相等(方向、大小)-C1Gn连续:两条曲线段拼接点处切向量的阶导数方向相同。n阶导数相等-Cnp0p2p1Q1Q2Q3Q1、Q2有C1和G1连续,Q1、Q3只有G1连续例2:证明如下的两条三次曲线段达到C2连续,并画出两条曲线段。533,79322231tttttP5333,1793223232ttttttP曲线与约束的关系曲线段可以用端点、切向量和曲线段之间的连续性等约束条件来定义两个端点和两端点处的切向量定义Hermite曲线;两个端点和另外两个控制端点切向量的点定义的Bezier曲线;由四个控制顶点定义的样条曲线。如何确定曲线的约束条件CTtztytxtQ*)()()()(GMC*拆分G为四个元素的几何约束行向量矩阵M为基矩阵zyxzyxzyxzyxggggggggggggGGGGG444333222111432144434241343332312423222114131211mmmmmmmmmmmmmmmmGMTtx**)(展开xxxxgmtmmtmtgmtmmtmtgmtmmtmtgmtmmtmttx44434242143343332321332423222212314131212113)()()()()(zyxzyxzyxzyxggggggggggggGGGGG4443332221114321432144434241343332312423222114131211231GGGGmmmmmmmmmmmmmmmmttttztytxtQ)()()()(曲线是几何矩阵中约束元素的加权和。每个权都是关于的三次多项式,称为调和函数,记为于是tMTB*GBtQ*)(5.1.2Hermite曲线由端点P1、P4和端点处切向量R1、R4的约束确定,其几何矩阵为THRRPPG4141TxHxRRPPG4141仅讨论其x分量HxHHxHxxxxxGMtttGMTCTdtctbtatx*****)(12323约束:、代入,得到其、xxPPt4110HxHxHxHxGMPxGMPx**)(**][)(111111000041HxHGMtttx**0123)('2HxHxHxHxGMRxGMRx**0123)1('**0100)0('41HxHHxxGMGPPPP**01230100111110004321000101001233112201230100111110001HM41412300010100123311221RRPPtttGMTtztytxtQHH***)()()()(423123423123232132RttRtttPttPttGBtQHH)()()()(*)(Hermite曲线完全插值控制点(2个,P1、P4)。切向量对曲线的影响如图两段Hermite连接连续,可以轻易实现连续。P1P4P4点切向量R4,每条曲线的大小方向都相同;P1点的切向量R1的方向相同,大小不同。R1越大,曲线越高两段Hermite曲线连续74744141RkRPPandRRPP1G0k绘图过程给定两个端点和端点处切向量,利用M矩阵,t=0:step:1,计算中间点P,依次连线,构成最后曲线5.1.3Bezier曲线通过给定两个不在曲线上的中间点来间接地确定端点切向量利用Hermite推导Bezier曲线)(3)1(')(3)0('344121PPQRPPQR5.1.3Bezier曲线BHBTHGMPPPPRRPPG*432141213300003310000001TBPPPPG4321)(3)1(')(3)0('344121PPQRPPQR5.1.3Bezier曲线BBBHBHBHBHHHGMTGMMTGMMTGMTtQ***)*(*)*(****)(0001003303631331*HBHBMMM5.1.3Bezier曲线43212300010033036313311PPPPtttGMTtztytxtQBB****)()()()(5.1.3Bezier曲线4332221313131PtPttPttPttQ)()()()(322313131ttttttBB)()()(5.1.3Bezier曲线R1和R4的方向可直观看出,便于控制曲线形状。两段Bezier曲线,当P3-P4=k(P5-P4)时(三点相异且共线),k0端点连接处是连续的。如果k=1,则连续。曲线段一定落在P1、P2、P3、P4定义的凸多边形(凸壳)内。如果调和函数非负且其和为1,且三次曲线对所有控制点做加权求和而定义,凸壳特性对曲线成立。5.1.3Bezier曲线给定四个控制点P1(0,0,0)、P2(1,1,1)、P3(2,-1,-1)、P4(3,0,0),构造Bezier曲线,并计算t=0,t=1,t=1/3,t=2/3处的值。5.1.4B样条曲线B样条通常用m+1个控制点(P0、P1、…Pm)产生m-2个曲线段(Q3、Q4、…Qm),m=3。B样条曲线一般不过控制点。5.1.4B样条曲线p0p1p3p2t=t3t=t4Q3p0p1p3p2t=t3t=t4Q3p4t=t5结点值5.1.4B样条曲线若要产生封闭曲线,结尾处重复使用P0~P2。即P0P1P2…PmP0P1P2.5.1.4B样条曲线mitttGMTtQiiBsiBsii3,**)(11)()()(23iiiittttttTmiPPPPGiiiiBsi312301410303036313316/1BsM5.1.4均匀B样条曲线101333463161323233123ttttttttBBBBMTBBsoBsBsBsBsBs)(*TtttttttttTiiii11)()()(2323106613336463161312322333112233tPtPtttPttPtPBPBPBPBBGtQiiiiiBsiBsiBsiBsBsBsii)(*****)(5.1.4B样条曲线四点加权求和,调和函数非负且和为1,具有凸壳特性。可证明Qi和Qi+1在连接点处连续,(:)。曲线段三次函数,所以整个曲线具有连续。凸壳的对曲线裁剪十分有用。210CCC、、0C0111||iittittiQQ2C5.1.4B样条曲线2CHermiteBezierB-spine凸壳特性无有有过部分型值点YYN完全过型值点YNN表示的固有连续性C0G0C0G0C2G2易达到的连续性C1G1C1G1C2G2