基于matlab的复杂线网作图算法研究

基于matlab的复杂线网作图算法研究

ID:33578770

大小:321.02 KB

页数:7页

时间:2019-02-27

基于matlab的复杂线网作图算法研究_第1页
基于matlab的复杂线网作图算法研究_第2页
基于matlab的复杂线网作图算法研究_第3页
基于matlab的复杂线网作图算法研究_第4页
基于matlab的复杂线网作图算法研究_第5页
资源描述:

《基于matlab的复杂线网作图算法研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、http://www.paper.edu.cn基于MATLAB的复杂线网作图算法研究吴先强,李睿华东交通大学电气与电子信息工程学院,南昌(330013)E-mail:wxq79903782@qq.com摘要:MATLAB提供了强大的作图功能,利用它很容易实现二维和三维甚至更高维数据的可视化,但对于一些复杂的图形还是必须通过编写专门的程序才能实现。本文深入分析了常见的复杂线网的构成特点,对不同类型的线网分别采用从整体出发考虑构造作图算法和从构图基本单元出发构造作图算法的策略。文中给出了典型线网的作图源程序,经过相应的改动,很容易解决类似的问题。关键词:MATLAB,作图,复杂线网,柯克曲线

2、中图分类号:TP391文献标志码:A0.引言强大的绘图功能是MATLAB特点之一。MATLAB提供了一系列的绘图函数,用户不需[1]要过多考虑绘图细节,就可很容易的实现一维,二维甚至更高维数据的可视化。但是对于一些复杂的图形,如本文研究的复杂线网图形,如三角网,正六边形网,柯克曲线等由很[2]多线段按一定规律构成的图形,直接推到它们的方程是很麻烦,甚至很困难的。们可以从另一个角度来考虑这些问题,把他们看做是由一些基本的元素——线段,简单多边形等按一定规律组合而成,编写专用程序,实现它们的作图。本文首先分析了基本构图单元的作图方法,这是复杂线网作图的基础。然后针对复杂线网的特点,分别研究了

3、从图形整体出发构造作图算法和从基本构图单元出发构造作图算法的策略。1.基本构图单元的作图在MATLAB中,line命令实现直线段和折线段的作图,用它可以很容易的实现线段和多变形这些基本构图单元的作图。line命令的基本用法是line(X,Y),当X=[x1,x2],Y=[y1,y2]时,画出连接点(x1,y1)和点(x2,y2)的直线段;X=[x1,x2,…,xN],Y=[y1,y2,…,yN]时,画出一次连接(x1,y1),(x2,y2),…,(xN,yN)的折线段。很明显,当X=[x1,x2,…,xN,x1],Y=[y1,y2,…,yN,y1]时,将画出一个多边形。下面是画任意的正多

4、边形的源程序:x=input('x=')y=input('y=')r=input('r=')n=input('n=')k=0:1:nX=x+r.*cos(2*pi*k/n)Y=y+r.*sin(2*pi*k/n)line(X,Y)其中(x,y)表示图形中心,r表示外接圆的半径,n表示边数。图1是取x=0,y=0,r=1,n=6得到的图形。-1-http://www.paper.edu.cn图1正六边形下文中将用X,Y表示一个基本的构图单元。2.基本构图单元的基本操作实现几何图形的合同变换是一种特殊的几何变换,平面上的合同变换可由三种基本的几何变[3]换——平移,旋转,反射——复合而成。下

5、面就对这三种基本的几何变换做一个分析,并用计算机算法实现上文中的基本构图单元的三种基本变换。(一)平移变换平移变换作用下,点坐标的数学表达式为:x'=x+a(1)y'=y+b实现平移变换的函数如下:function[X1,Y1]=pingyi(X,Y,a,b)%生成平移的构图基本单元;X1=X+a;Y1=Y+b;(二)旋转变换旋转变换作用下,点坐标的数学表达式为:x'=x×cos(α)−y×sin(α)(2)y'=x×sin(α)+y×cos(α)实现旋转变换的函数如下:function[X1,Y1]=xuanzhuan(X,Y,a)%生成旋转的构图基本单元;X1=X.*cos(a)-Y

6、.*sin(a)Y1=X.*sin(a)+Y.*cos(a)(三)反射变换反射变换作用下,点坐标的数学表达式为:x'=x(3)y'=−y实现反射变换的函数如下:function[X1,Y1]=fanshe(X,Y,a)%生成反射的构图基本单元;X1=XY1=-Y-2-http://www.paper.edu.cn3.适于从基本线段出发考虑的作图问题三角形网,平行四边形网等线网图形,它们的构成线段的端点的规律比较简单,具有这样特点的线网从整体出发去画图是比较方便的。n层的三角形网可以看成是由一个大三角形和平行于一条边的三组平行直线段构成,而这些线段的端点都是很容易由大三角形的边长确定的。这

7、这种观点指导下写出的源程序如下:n=input('n=')tri=[0n0.5*n0;...000.86603*n0]line(tri(1,:),tri(2,:))fork=1:n-1line([0.5*kn-0.5*k],...[0.86603*k0.86603*k])endforl=1:n-1line([0.5*ll],[0.86603*l0])endform=1:n-1line([m0.5*(n+m)],...[00.8660

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。