Bezier曲线和样条曲线的生成算法_第1页
Bezier曲线和样条曲线的生成算法_第2页
Bezier曲线和样条曲线的生成算法_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、计算机图形学实验报告实验名称 Bezier曲线和样条曲线的生成算法评分实验日期 年_月 _日指导教师 姓名 专业班级 学号 一、实验目的1、复习Bezier曲线和B样条曲线的参数表示法。2、编程实现用二次 Bezier曲线绘制。3、 编程实现用三次Bezier曲线绘制和分段光滑Bezier曲线图形的绘制。4、用三次B样条函数绘制曲线。二、实验要求1、 编程实现在屏幕上绘制出两次Bezie曲线的几何图形和特征多边形图形,对于直线和曲线设置不同的线形和颜色。2、 现在屏幕上绘制出三次Bezie曲线的几何图形和特征多边形图形,对于直线和曲线设置不同的线形和颜色。1、编程实现用分段三次 Bezier曲

2、线绘制光滑 Bezier曲线图形。1、 编程实现在屏幕上绘制出三次B样条函数绘制曲线。2、 编程实现在屏幕上绘制出光滑连接的三次B样条曲线。三、关键算法及实现原理1、二次Bezier曲线的计算公式为:2P(t)=(P o-2P1+F2)t +(-2P o+2R)t+P o2X(t)=(X 0-2X1+X>)t +(-2X 0+2X1 )t+Xo2Y(t)=(Y o-2Y1+Y>)t +(-2Yo+2Y1)t+Yo其中Pd、P1、P2为三个已知的点,坐标分别为(Xo、Yo)、(X1、Y1)、(X1、Y2)。2、次Bezier曲线的计算公式为:P(t)=(-P o+3P-3P2+P3)

3、t 3+(3Po-6P1+3F2)t 2+(-3P o+3R)t+P 0X(t)= (-X o+3X-3X2+X0t 3+(3Xo-6X1+3Xz)t 2+(-3X o+3%)t+X 032Y(t)= (-Y o+3Yi-3Y2+Y3)t +(3Yo-6Yi+3Y2)t +(-3Y o+3Yi)t+Y 0其中Po、Pl、巳、P3为四个已知的点,坐标分别为(X。、丫0)、(Xi、Y)、(Xi、Y2)、(X3、Y3)。3、三次B样条函数绘制曲线的计算公式为:P(t)=(-Po+3P-3P2+3P3)t 3+(3Po-6Pi+3P2)t 2+(-3P o+3P2)t+(P o+4P+F2)/632X

4、(t)=(-X o+3Xi-3X2+3X3)t +(3Xo-6Xi+3X2)t +(-3X o+3Xz)t+(X o+4X+X0/632Y(t)=(-Y o+3Yi-3Y2+3Y3)t +(3Yo-6丫计3Y2)t +(-3Y o+3Y2)t+(Y o+4Y+W)/6其中Po、Pi、P2、P3为四个已知的点,坐标分别为(Xo、Yo)、(Xi、Y)、(Xi、Y2)、(X3、Y3)。4、 三次B样条函数绘制曲线的光滑连接条件为:对于N个顶点,取Pi、P2、P3、P4 4个顶点绘制在第一段三次样条曲线,再取P2、P3、P4、P5 4个顶点绘制在第二段三次样条曲线,总计可绘制n-3段光滑连接的三次样条

5、曲线。5、程序设计方法根据Bezier曲线的定义,输入 Bezier曲线的特征多边形(例如三次 Bezier曲线输入 四个型值点),然后把t从01分成n等分,按相应的 Bezier曲线公式计算出 Bezier曲线 上的点,用绘直线段的方法依次这些点连接起来,就得到Bezier曲线。如果要画多段Bezier曲线,可设置一些变量存放 Bezier曲线的条数,按条数依次绘制出来即可。四、程序调试中的问题1、注意选项中路径要改。2、在turboc2 中加载displaytou 头文件五、程序运行结果或数据1、绘制二次Bezier曲线的源程序#i nclude "display.h"

6、void Bezier_2(i nt color,double p32) double t,xt,yt;int rate=200,x,y;setcolor(color);moveto(p00,p01);for (t=0;t<=1;t+=1.0/rate) yt=i-t;xt=p00*yt*yt+p10*2*yt*t+p20*t*t;yt=p01*yt*yt+p11*2*yt*t+p21*t*t;x=(i nt)(xt);y=(i nt)(yt);li neto(x,y);void mai n(void) static double p32=50,400,340,20,635,420;co

7、nst N0=3;int i;In itialize();setcolor(WHITE);moveto(p00,p01);for (i=1;i<N0;i+) lineto(pi0,pi1);Bezier_2(LIGHTRED,p);while (getch()!=ESC);closegraph();2、实现光滑连接的三次 B-样条曲线源程序#in clude"graphics.h"#in clude"c on io.h"#in clude<dos.h>void B_yt_3(i nt 2,i nt color,i nt tzb);voi

8、d tulie(i nt,i nt,i nt);void xuehaopri(i nt color);void mai n()int gdriver=DETECT,gmode;int p82=30,350,90,110,250,260,390,90,490,110,530,370,600,230,550,110;in itgraph( &gdriver, &gmode,"D:tcbgi ");xuehaopri(14);tulie(2,4,15);B_yt_3(p,4,0);getch();closegraph();void B_yt_3(i nt p2,i

9、 nt color,i nt tzb)float t=0;int xt,yt,i,m;setl in estyle(0,0,1);setcolor(15);delay(1000);if(tzb=1)for(i=0;i<7;i+)lin e(pi0,pi1,pi+10,pi+11);setcolor(color);for(m=0;m<5;m+)for(t=0;t<=1.0;t+=0.01)xt=1.0/6*(-pm0+3*pm+10-3*pm+20+pm+30)*t*t*t+(3*pm0-6*pm+10+3*pm+20)*t*t+(-3*pm0+3*pm+20)*t+(pm0+

10、4*pm+10+pm+20);yt=1.0/6*(-pm1+3*pm+11-3*pm+21+pm+31)*t*t*t+(3*pm1-6*pm+11+3*pm+21)*t*t+(-3*pm1+3*pm+21)*t+(pm1+4*pm+11+pm+21);if(t=0) moveto(xt,yt);lin eto(xt,yt);delay(15);void xuehaopri(i nt color)setcolor(color);settextstyle(1,0,3);sette xtju stify(1,1);outtextxy(getmaxx()/2,15,"Made By No.

11、010XXX");void tulie(i nt color1,i nt color2,i nt textcolor)int x=getmaxx()/2,y=getmaxy()-20;moveto(x-180,y);setcolor(color1);setl in estyle(0,0,3);lin eto(x-155,y);setcolor(color2);moveto(x,y);lin eto(x+25,y);setcolor(textcolor);settextstyle(0,0,1);outtextxy(x-80,y,"2 ci B_ya ngtiao")

12、;Brf?ak/ufttchFiile Edit Run Compile FFoMErtOpt 玄Deh*gB_yt_3<int 2】,±时 col叶”txh; tulie <int. int" xueJiaoppi< int ntain t、 gdriuer=DETEC pSH2I=«30, 370>,<600.230Gonpilins Main file;SEC0NI>3BEZIEH.CConailing:EDITOR + 3BEZIER.cTotalFileLines compiled: 791?91Warnings: 0

13、0Eprors: &0Availablememory: 262KSuccess:Pressany kej/NUMFl-Help F-Zoon F6-Switch F7-Trace F8-Step F9-flake F10-ffenuEdi tLine 1 Col 1 Insert Ihd«nt Tab Fill Unindent E:3BEZIER_C ttinc lude'graphic s. h1* ttinclude'lconio - W tt In eluded dos -h void void uo id uo id < int int<530,in itraphC&gdrivc xuehaopi!*i<14> ;tulie

温馨提示

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

评论

0/150

提交评论