版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.3 曲 线 图 形3.3.1 曲线的生成算法1Bezier曲线 (1)Bezier曲线的定义:给定空间n+1个点的位置矢量Pi(i=0,1,2,n),则Bezier参数曲线上各点坐标的插值公式是其中,Pi构成该Bezier曲线的特征多边形,Bi,n(t)是n次Bernstein基函数: (i=0,1,n)niniittBPtP0, 1 , 0),()(iniiniinnittininttCtB)1 ()!( !)1 ()(, 图3-24 三次Bezier曲线P0P1P2P3P0P1P2P3当n=1时,P(t)= P0B0,1(t)+ P1B1,1(t) = P0 (1-t)+ P1t一次B
2、ezier曲线是连接P0与P1的直线段。当n=2时,P(t)= P0B0,2(t)+ P1B1,2(t) + P2B2,2(t) = P0 (1-t) 2-2P1 t (1-t) + P2t2二次Bezier曲线是一条过P0、P2的抛物线。当n=3时,P(t)= P0B0,3(t)+ P1B1,3(t) + P2B2,3(t) + P3B3,3(t) = P0 (1-t) 3+3P1 t (1-t) 2+ 3P2t2(1-t) + P3 t3三次Bezier曲线 Bernstein基函数曲线如图3-25所示。101 tB0,3B1,3B2,3B3,3B图3-25 三次Bezier曲线基函数(2
3、)Bernstein基函数的性质。正性端点性质权性对称性递推性 (i=0,1,n)1,.,2 , 1),1 , 0(01 , 00)(,nitttBniotherwiseitBni001)(,otherwisenitBni01)(,) 1 , 0(, 1)(0,ttBnini)()(,tBtBninni)()()1 ()(1, 11,ttBtBttBninini(3)Bezier曲线的性质。端点性质l曲线端点位置矢量: 当t=0时,P(0)= P0;当t=1时,P(1)= Pn。 Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合。l切矢量:当t=0时,P(0)=n (P1- P0
4、);当t=1时,P (1)=n (Pn- Pn-1)。 Bezier曲线的起点和终点处的切线方向和特征多边形的第1条边及最后一条边的走向一致。对称性:由控制顶点Qi =Pn-i构造出的新Bezier曲线,与原Bezier曲线形状相同,但走向相反。凸包性:在0,1区间变化时,对某一个t值,P(t)是特征多边形各顶点Pi的加权平均,加权因子依次是Bi,n(t)。在几何图形上,曲线落在Pi构成的凸包之中,如图3-26所示。 图3-26 Bezier曲线的凸包性几何不变性:Bezier曲线的位置和形状与其特征多边形顶点的位置有关,它不依赖坐标系的选择。凸包(4)Bezier曲线的程序设计。三次Bezi
5、er曲线的程序设计如下: CDC *pDC=GetDC(); pDC-MoveTo(x0,y0); /移到曲线上的第一个点for(t=0.01;tLineTo(x,y); /用小直线段绘制曲线2Bezier曲线的递推算法kninktPPtkPPkikiiki,.,1 , 0,.,2 , 1)1 (0111上式中: 是定义Bezier曲线的控制点,即为曲线P(t)上具有参数t的点。iiPP 0递推算法程序设计。CDC *pDC=GetDC(); pDC-MoveTo(x0,y0);for(t=0.05;t1.0001;t=t+0.05) for(i=0;i=n;i+) xxi=xi, yyi=y
6、i; for(k=1;k=n;k+) for(int i=0;iLineTo (xx0,yy0);(3)递推算法几何作图当n=3时,递推出的 呈直角三角形,对应结果如图3-29所示。从左向右递推,最右边点 即为曲线上的点。kiP30PP0P1P2P3P01P11P21P02P12P03P0P1P2P3P01P11P21P02P12P03=P(1/3)0 1/3 1图3-29 n=3时niP的递推关系 图3-30 几何作图法求Bezier曲线上一点 (n=3,t=1/3)niP3Bezier曲线的拼接如图3-32,设给定特征多边形的顶点为P0、P1、P2、P3、P4、P5,由它们控制的曲线为5次
7、Bezier曲线(虚曲线)。如果在P2、P3直线上增加一个控制点Q,则P0、P1、P2、Q和Q、P3、P4、P5分别控制两个三次Bezier曲线(实曲线),在连接处具有一阶连续。图3-32 Bezier曲线的拼接P0P1P2QP3P4P54Bezier曲线的升阶与降阶(1)Bezier曲线的升阶。保持Bezier曲线的形状与定向不变,增加控制顶点数,可以提高Bezier曲线的次数。增加控制顶点数,就增加了对曲线进行形状控制的灵活性,还在构造曲面方面有着重要的应用。 (2)Bezier曲线的降阶。降阶是升阶的逆过程。给定一条由原始控制顶点Pi(i=0,1,n)定义的n次Bezier曲线,要求找到
8、一条由新控制顶点(i=0,1,n-1)定义的n-1次Bezier曲线来逼近原始曲线。5反算Bezier曲线控制点 Bezier曲线是由控制点控制的,曲线只经过控制点的起点和终点,如果要构造一条Bezier曲线经过给定n+1个型值点Qi(i=0,1,2,n),可反求该Bezier曲线的控制点。3.3.2 B样条曲线 1B样条的定义B样条曲线方程定义为式中,Pi(i=0,1,n)是控制多边形的顶点,Ni,k (t)(i=0,1,n)称为k阶(k-1次)B样条基函数。 B样条的基函数由递推公式定义为(约定0/0=0) (tk-1ttn+1)式中,ti是节点值,T= t0,t1,tn+k构成了k阶B样
9、条函数的节点矢量,其中的节点是非递减序列。nikiitNPtP0,)()(otherwisettttNiii01)(11 ,2B样条曲线类型的划分B样条曲线按其节点矢量中节点的分布情况,可划分为多种类型。假定控制多边形的顶点为Pi(i=0,1,n),介绍两种常用的简单类型。(1)均匀周期样条曲线。均匀:节点向量ti =i(i=0,1,2,n+k), ti ti +1=常数。周期:所有基函数形状一样,可由其中一个基函数平移得到。 Ni,k(t)= Ni-1,k(t-1)= Ni+1,k(t+1)图3-34 二次Ni,3基函数曲线二次均匀周期B样条曲线P (t)= Pi N0,3 (t +2)+P
10、i +1N 0,3 (t +1)+Pi +2N 0,3 (t) (0t1,i = 0,1,2,n-2)N0,3 (t +2)=(3-( t +2)2/2=(1-t)2/2N0,3 (t +1)= -(t +1)2+3(t +1)-3/2=-t 2+t +1/2N0,3 (t)= t 2/2例如:给定如图3-35所示的5个控制点,则由它们控制的二次B样条曲线有3段,由P0、P1、P2控制的二次B样条曲线为P (t)= P0(1-t)2/2+P1(-t2+t+1/2)+ P2 t2/2当t=0时,P(0)= 0.5P0+0.5P1 (为P0 P1的中点。)当t=1时,P(1)= 0.5P1+0.5
11、P2 (为P1 P2的中点。)同理由P1、P2、P3控制的二次B样条曲线为P(t)= P1(1-t)2/2+P2(-t2+t+1/2)+ P3 t2/2由P2、P3、P4控制的二次B样条曲线为P(t)= P2(1-t)2/2+P3(-t2+t+1/2)+ P4 t2/2可见二次B样条曲线经过控制多边形各边的中点,各段曲线在各边的中点处一阶连续,其所共有的切线就是控制多边形的边。P0P1P2P4P3P(0)P(1)P(2)图3-35 均匀周期二次B样条曲线示意图主要VC程序代码为: CDC *pDC=GetDC(); x1 = (x0 + x1) * 0.5; y1 = (y0 + y1) *
12、0.5;pDC-MoveTo (x1,y1);for(i=0; in-2; i+)for(t=0.01; tLineTo (x1,y1);三次均匀周期B样条曲线。对于三次B样条曲线,需要计算N0,4(t),可以得出N0,4(t)是一个4段函数,因此每段三次B样条曲线由4个控制点控制,其表达式为P(t)= PiN0,4 (t+3)+Pi+1N 0,4 (t+2)+Pi+2N 0,4 (t+1)+ Pi+3N 0,4 (t) (0t1,i=0,1,2,n-3)N0,4 (t+3)=(-t3+3t2+3t+1)/6N0,4 (t+2)=(3t3-6t2+4)/6N0,4 (t+1)=(-3t3+3t
13、2-3t+1)/6N0,4 (t)=t3/6P3P1P(0)P0P2P4P(1)P(0)P(1)图3-36 三次均匀周期B样条曲线其主要VC程序代码为: CDC *pDC=GetDC(); x1 = (x0 + x2) * 0.5 / 3 + 2 * x1 / 3; y1 = (y0 + y2) * 0.5 / 3 + 2 * y1 / 3; pDC-MoveTo (x1,y1); for(i=0;in-3;i+) for(t=0.01; tLineTo (x1,y1); (2)准均匀非周期的B样条曲线。与均匀周期B样条曲线的差别在于:两端节点具有重复度k,基函数不是周期出现。节点向量的定义:
14、 tk-1ttn+1niknnikkikiti210设n=5(6个控制点)时,k取不同值时的节点向量值:k=2:节点向量为(0,0,1,2,3,4,5,5) 0t5k=3:节点向量为(0,0,0,1,2,3,4,4,4) 0t4k=4:节点向量为(0,0,0,0,1,2,3,3,3,3) 0t3k=5:节点向量为(0,0,0,0,0,1,2,2,2,2,2) 0t2k=6:节点向量为(0,0,0,0,0,0,1,1,1,1,1,1) 0t1 如图3-37所示,它显示出不同k值的B样条曲线。当k=2时,准均匀非周期B样条曲线就是控制多边形本身;当k=6时,准均匀非周期B样条曲线就是Bezier曲
15、线。图3-37 不同阶次的准均匀非周期B样条曲线示意图基函数 准均匀非周期二次B样条曲线的基函数如图3-38所示。 0 1 1NN0,3N1,3N2,3N3,32t图3-38 准均匀非周期二次B样条曲线的基函数示意图 均匀B样条曲线没有保留Bezier曲线端点的几何性质,即样条曲线的首末端点不再是控制多边形的首末端点。采用准均匀的B样条曲线就是为了解决这个问题,使曲线在端点的行为有较好的控制,如图3-39所示。图3-39 准均匀三次B样条曲线 (3)非均匀B样条曲线。在这种类型里,任意分布的节点矢量T=t0,t1,tn+k,只要在数学上成立(节点序列非递减,两端节点重复度k,内节点重复度k-1)都可选取。这样的节点矢量定义了非均匀B样条基函数。3B样条曲线的性质(1)局部性。 移动该曲线的第i个控制顶点Pi至多影响到定义在区间(ti,ti+k)上那部分曲线的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年陕西客运资格证摸拟考试试题
- 2024年鹤壁道路客运输从业资格证培训考试资料
- 2024年度坯布购销商业协议范本版B版
- 2023年陕西省汉中市公开招聘警务辅助人员(辅警)笔试摸底测试(2)卷含答案
- 2024年定制玻璃安装施工协议范本版B版
- 2024年建筑行业税收优惠政策合同范本框架协议
- 2024年担保合作协议经典模板2篇
- 2024年动画电影剧本创作合同3篇
- 2024年度给水工程施工用电用水合同3篇
- 2024年度航空物流服务协议模板
- 2024年非高危行业生产经营单位主要负责人及安全管理人员安全生产知识和管理能力试题及答案
- 绿化工程完工质量验收报告
- 2024宾馆装修合同样本
- 2024年度智慧农业项目开发与实施合同
- 食品干杂供销合同(2篇)
- 湖北省鄂东南省级示范高中教育教学改革联盟学校2024-2025学年高一上学期期中联考英语试题 含答案
- 2024-2025学年河南省“金太阳联考”高一年级上学期期中考试数学试题(含答案)
- DB11-T 2324-2024脚手架钢板立网防护应用技术规程
- 燃气工程管理制度
- 2024年单位内部审计工作计划(四篇)
- (完整版)机械制图选择题题库及答案
评论
0/150
提交评论