计算机图形学 第3章 曲线.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学 第3章 曲线

* 3.3 曲 线 图 形 3.3.1 曲线的生成算法 1.Bezier曲线 (1)Bezier曲线的定义:给定空间n+1个点的位置矢量Pi(i=0,1,2,…,n),则Bezier参数曲线上各点坐标的插值公式是 其中,Pi构成该Bezier曲线的特征多边形,Bi,n(t)是n次Bernstein基函数: (i=0,1,…,n) 图3-24 三次Bezier曲线 P0 P1 P2 P3 P0 P1 P2 P3 当n=1时,P(t)= P0B0,1(t)+ P1B1,1(t) = P0 (1-t)+ P1t 一次Bezier曲线是连接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所示。 1 0 1 t B0,3 B1,3 B2,3 B3,3 B 图3-25 三次Bezier曲线基函数 (2)Bernstein基函数的性质。 ①正性 ②端点性质 ③权性 ④对称性 ⑤递推性 (i=0,1,…,n) (3)Bezier曲线的性质。 ①端点性质 曲线端点位置矢量: 当t=0时,P(0)= P0; 当t=1时,P(1)= Pn。 Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合。 切矢量: 当t=0时,P(0)=n (P1- P0); 当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曲线的程序设计。 ①三次Bezier曲线的程序设计如下: CDC *pDC=GetDC(); pDC-MoveTo(x[0],y[0]); //移到曲线上的第一个点 for(t=0.01;t1.0001;t=t+0.01) { //计算基函数 b03=(1-t)*(1-t)*(1-t);b13=3*t*(1-t)*(1-t); b23=3*t*t*(1-t);b33=t*t*t; x=b03*x[0]+b13*x[1]+b23*x[2]+b33*x[3]; y=b03*y[0]+b13*y[1]+b23*y[2]+b33*y[3]; pDC-LineTo(x,y); //用小直线段绘制曲线 } 2.Bezier曲线的递推算法 上式中: 是定义Bezier曲线的控制点, 即为曲线P(t)上具有参数t的点。 递推算法程序设计。 CDC *pDC=GetDC(); pDC-MoveTo(x[0],y[0]); for(t=0.05;t1.0001;t=t+0.05) { for(i=0;i=n;i++) xx[i]=x[i], yy[i]=y[i]; for(k=1;k=n;k++) { for(int i=0;in-k;i++) { xx[i]=xx[i]*(1-t)+xx[i+1]*t; yy[i]=yy[i]*(1-t)+yy[i+1]*t; } } pDC-LineTo (xx[0],yy[0]); } (3)递推算法几何作图 当n=3时,递推出的 呈直角三角形,对应结果如图3-29所示。从左向右递推,最右边点 即为曲线上的点。 P0 P1 P2 P3 P01 P11 P21 P02 P12 P03 P0 P1 P2 P3 P01 P11 P21 P02 P12 P03=P(

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档