15-Bezier曲线生成算法_第1页
15-Bezier曲线生成算法_第2页
15-Bezier曲线生成算法_第3页
15-Bezier曲线生成算法_第4页
15-Bezier曲线生成算法_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1Bezier曲线的绘制内容大纲1Bezier曲线定义2Bezier曲线的绘制3Bezier曲线的递推算法4

Besize曲线段的拼接5反算Bezier曲线的控制点

由控制多边形的各顶点控制Bezier曲线形状控制多边形?1962年由P.E.Bezier提出以逼近为基础的方法。1Bezier曲线定义定义:给定空间n+1个点的位置矢量Pi(xi,yi)i=0,1,…,n),

则Bezier曲线上各点坐标的公式:基函数

=p0B0,n(t)+p1B1,n(t)+p2B2,n(t)

+…+pnBn,n(t)1Bezier曲线定义x(t)=x0B0,3(t)+x1B1,3(t)+x2B2,3(t)

+x3B3,3(t)y(t)=y0B0,3(t)+y1B1,3(t)+y2B2,3(t)

+y3B3,3(t)0≤t≤1B0,3(t)=(1-t)3n=3B1,3(t)=3t(1-t)2B3,3(t)=t3B2,3(t)=3t2(1-t)1Bezier曲线定义控制点t=0x(t)=x0(1-t)3+x13t(1-t)2+x23t2(1-t)+x3t3y(t)=y0(1-t)3+y13t(1-t)2+y23t2(1-t)+y3t3三次Bezier曲线是t的三次式(x0y0)(x1y1)(x2y2)(x3y3)x(0)=x0y(0)=y0t=1x(1)=x3y(1)=y31Bezier曲线定义控制点x(t)=x0(1-t)3+x13t(1-t)2+x23t2(1-t)+x3t3y(t)=y0(1-t)3+y13t(1-t)2+y23t2(1-t)+y3t3(x0y0)(x1y1)(x2y2)(x3y3)t=0.4x(0.4)=0.22x0+0.43x1+0.29x2+0.06x3y(0.4)=0.22y0+0.43y1+0.29y2+0.06y31Bezier曲线定义voidBezier3(CDC*pDC,intx[4],inty[4],floatdt,COLORREFcolor){intx1=x[0],y1=y[0],x2,y2;floatb03,b13,b23,b33;for(floatt=dt;t<1.0001;t=t+dt){b03=(1-t)*(1-t)*(1-t);

b13=3*t*(1-t)*(1-t);

b23=3*t*t*(1-t);

b33=t*t*t;

//计算基函数x2=b03*x[0]+b13*x[1]+b23*x[2]+b33*x[3];

y2=b03*y[0]+b13*y[1]+b23*y[2]+b33*y[3];//计算曲线上的点坐标Line_DDA(pDC,x1,y1,x2,y2,color);x1=x2,y1=y2;}}2Bezier曲线的绘制intx[]={100,160,280,300};inty[]={100,200,260,120};intx[]={100,200,300,210};inty[]={100,300,60,120};2Bezier曲线的绘制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-P12(1-t)t+P2t2

二次Bezier曲线是一条过P0、P2的抛物线n+1个点控制n次Bezier曲线P0P1P0P1P22Bezier曲线的绘制floatB(inti,intn,floatt){intk;floatt1=1,t2=1,h;

for(k=i+1;k<=n;k++)t1=t1*k;

for(k=1;k<=n-i;k++)t2=t2*k;h=t1/t2;for(k=1;k<=i;k++)h=h*t;

for(k=1;k<=n-i;k++)h=h*(1-t);returnh;}2Bezier曲线的绘制12voidBezierN(CDC*p,intx[],inty[],intn,floatdt,COLORREFcolor){intx1=x[0],y1=y[0];floatx2,y2,b;for(floatt=dt;t<1.0001;t=t+dt){x2=y2=0;for(inti=0;i<=n;i++) {b=B(i,n,t);//计算基函数 x2=x2+x[i]*b,y2=y2+y[i]*b;//计算曲线上的点坐标

}Line_DDA(p,x1,y1,x2,y2,color);x1=x2,y1=y2;}}2Bezier曲线的绘制132Bezier曲线的绘制10次Bezier曲线规则:依次对原始控制多边形的每一条边执行相同的定比分割,例如取中点,再对由中点构成的多边形边取中点,重复操作,最后一个点为Bezier曲线上的点。改变分割比例,获取Bezie曲线上其它点。3Bezier曲线的递推算法P0P1P2P3P0’P1’P2’P0”P1”P0”’3Bezier曲线的递推算法该方法方便手绘草图4Besize曲线段的拼接Bezier曲线性质曲线通过多边形的起点和终点当t=0时,x(0)=x0

,

y(0)=y0

当t=1时,x(1)=xn,y(1)=yn,曲线在起点和终点处的切线方向与多边形的始边和终边的方向一致。考虑用多个低阶次Bezier曲线段拼接。4Besize曲线段的拼接11个控制点生成10次Bezier曲线,阶次较高,除了起点和终点,曲线离控制点较远。用五段二次Bezier曲线段拼接连接处共点,只是0阶连续4Besize曲线段的拼接除了起始边和最后一条边,每个边加一个控制点,使每条边是两段二次Bezi

温馨提示

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

评论

0/150

提交评论