欢迎来到天天文库
浏览记录
ID:48877951
大小:564.00 KB
页数:25页
时间:2020-01-31
《实验11 matlab.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验十一Bezier曲线的绘制一、实验目的初步了解Bezier曲线的定义,能利用MATLAB软件绘制二次Bezier曲线和三次Bezier曲线。二、相关知识Bezier广泛应用于外形设计的参数曲线逼近方法,它通过对一些特定点的控制来控制曲线的形状,我们称这些点为控制顶点。现在我们来给出Bezier曲线的数学表达式。在空间给定个点,称下列参数曲线为n次的Bezier曲线。其中是Bernstein基函数,其表达式为:二、相关知识一般称折线为曲线的控制多边形;称点为的控制顶点。Bezier曲线与其控制多边形的关系可以这样认为:控制多边形是的大致形状的勾画;是对其中是Bernstein基
2、函数,其表达式为:一般称折线为曲线的控制多边形;称点为的控制顶点。Bezier曲线与其控制多边形的关系可以这样认为:控制多边形是的大致形状的勾画;是对的逼近。Bezier曲线有许多性质,我们这里仅讨论两条:(1)端点位置我们指出,和是的两个端点,这一点容易从的表达式得到,即(2)端点的切线Bezier曲线在点与边相切,在点与边相切,此性质可以从以下二式得证:Bezier曲线还有一些其它性质,这些将在《计算机图形学》、《计算几何》等课程中专门讨论。Bezier曲线有许多性质,我们这里仅讨论两条:(1)端点位置我们指出,和是的两个端点,这一点容易从的表达式得到,即(2)端点的切线Be
3、zier曲线在点与边相切,在点与边相切,此性质可以从以下二式得证:Bezier曲线还有一些其它性质,这些将在《计算机图形学》、《计算几何》等课程中专门讨论。现在我们讨论Bezier曲线的MATLAB绘制。先讨论2次Bezier曲线,即的情形。此时有3个顶点,为了在MATLAB中计算方便,我们将Bezier曲线的一般表示式改写为矩阵形式,我们得到:这样,对于确定的,我们取定区间中的值后,即可计算的值,注意,是与到:这样,对于确定的,我们取定区间中的值后,即可计算的值,注意,是与对应的,如果是平面上的点即2维坐标,则也是2维坐标,如果是空间的点即3维坐标,则也是3维坐标,因此,对于每
4、一组确定的可绘制出一条2次Bezier曲线。完成平面2次Bezier曲线的MATLAB程序如下:先编制完成Bezier曲线计算和绘制的函数bezier2.m,其参数是控制顶点的坐标。%BezierSquareCurvePloter%ThisfilewillcreateaBeziersquarecurveanddispaytheplot.TheparameteristheVertexmatrix.function[X]=bezier2(Vertex)对应的,如果是平面上的点即2维坐标,则也是2维坐标,如果是空间的点即3维坐标,则也是3维坐标,因此,对于每一组确定的可绘制出一条2次B
5、ezier曲线。完成平面2次Bezier曲线的MATLAB程序如下:先编制完成Bezier曲线计算和绘制的函数bezier2.m,其参数是控制顶点的坐标。%BezierSquareCurvePloter%ThisfilewillcreateaBeziersquarecurveanddispaytheplot.TheparameteristheVertexmatrix.function[X]=bezier2(Vertex)BCon=[1-21;-220;100];%our3X3constantMatrixfori=1:1:50%forloop1-50instepsof1par=(i
6、-1)/49;XY(i,:)=[par^2par1]*BCon*Vertex;end%yep!wehavecreatedourdata%wewilldisplaytheverticesandthecurveusing%MATLABsbuilt-ingraphicfunctionsclf%thiswillclearthefigureplot(Vertex(:,1),Vertex(:,2),'ro',XY(:,1),XY(:,2),'b-')%thiswillcreateaplotofboththeVerticesandcurve,%theverticeswillberedowhil
7、ethecurveisblueline%ifyouareimpatientyoucansavethefileandruntheBCon=[1-21;-220;100];%our3X3constantMatrixfori=1:1:50%forloop1-50instepsof1par=(i-1)/49;XY(i,:)=[par^2par1]*BCon*Vertex;end%yep!wehavecreatedourdata%wewilldisplaytheverticesandthe
此文档下载收益归作者所有