伯恩思坦多项式与Bezier曲线.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
伯恩思坦多项式与Bezier曲线

伯恩思坦多项式与Bezier曲线 一、引言 1971年法国雷诺汽车公司的工程师Bezier 提出了一种新的参数曲线表示法。这种方法能方便地控制输入参数(控制点)以改变曲线的形状。被称为Bezier曲线,数学原理使用了伯恩思坦多项式。设f(x)是定义在[0,1]上的连续函数, 称表达式 右端为函数的伯恩思坦逼近多项式。 下面是函数的伯恩思坦多项式逼近实验程序 n=input(input n=); x=[0:n]/n; f=sin(x*pi); for i=1:n+1 y=f;t=x(i); for k=n:-1:1 for j=1:k y(j)=t*y(j)+(1-t)*y(j+1); end end p(i)=y(1); end max(abs(f-p)) plot(x,f,b,x,p,o,x,p,r) 下面两图分别是取不同点数的伯恩思坦多项式逼近。 n=10逼近 n=20逼近 二、Bezier曲线 Bezier 曲线的形状是通过一组多边折线(控制多边形)的各顶点P0,P1,…,Pm所定义出来的。在多边折线的各顶点中,只有第一点P0和最后一点Pm在曲线上,其余的点则用以定义曲线的阶次。 给定控制多边形顶点P0,P1,…,Pm 的坐标 (x0,y0),(x1,y1),……,(xm,ym) 曲线参数方程为 , 其中, 为组合数,其计算公式为 在工程实际中,人们常用矢量函数的形式来表示平面曲线,若记 , (k = 0,1,…,m) 则有数学表达式 作为特殊情形,下面分别给出 m = 1,2,3时的Bezier曲线数学表达式。 1、一次Bezier 曲线是通过平面上两点的直线段,其数学表达式为 ,() 2、 二次Bezier 曲线是由平面上三个点组成控制多边形,并由此确定的抛物线。数学表达式为 3、三次Bezier 曲线是由平面上四个点组成控制多边形,并由此所确定的三次曲线。数学表达式为 绘制曲线的算法常用加权平均法。这一算法的根据是组合数计算中常用的递推公式 以二次Bezier 曲线为例说明原理,由于 由于 (1-t) 和 t都是介于 0 和 1 之间的数,所以认为是加权平均的权值。给定三个点P0(x0,y0)、P1(x1,y1)、P2(x2,y2)作为控制多边形顶点后,二次Bezier 曲线上对应于参数 t 的点P(t)的坐标可用如下方法计算 (1)取点坐标的加权平均得的坐标 (2)取点的坐标的加权平均计算的坐标 图4-5 (3)取点的坐标的加权平均计算P(t)的坐标 曲线的矩阵表示算法 由于控制多边形各顶点的坐标可表示为矩阵形式的数据结构,借用矩阵的表示也可以实现算法。仍以计算二次Bezier 曲线上对应于的11个点的坐标数据为例说明算法原理。由于二次Bezier 曲线的数学表达式可以写作矩阵形式 我们希望最后所得的曲线上11个点的坐标数据以11×2的矩阵形式给出,以第一列表示X坐标,以第二列表示Y的坐标。由上式 是一个3×2矩阵(它是算法的初始输入数据),而应该是11×3矩阵。 三、应用 例1、飞机机翼图设计。利用贝塞尔曲线设计机翼剖面图,提取曲线数据,绘制机翼柱面图 MATLAB程序: p=[0 0;0.01 0.5;0.5 1;2 0]; %输入控制多边形顶点 n=10; t=(0:n)/n;t1=1-t; z=[t1.^3 3*t.*t1.^2 3*t1.*t.^2 t.^3]*p; %矩阵法计算曲线坐标数据 px=p(:,1);py=p(:,2); %提取控制多边形顶点坐标 x=z(:,1);y=z(:,2); %提取曲线坐标 figure(1),plot(px,py,px,py,o,x,y) %绘机翼剖面图 x=[x(n+1:-1:2);x]; %利用对称性扩充曲线坐标 y=[y(n+1:-1:2);-y]; E=ones(1,11);X=x*E;Y=y*E; %制做柱面坐标数据 Z=ones(2*n+1,1)*[0:10]; figure(2),mesh(Z,X,Y),hold on

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档