MATLAB在计算机图形学中的应用

点赞:26060 浏览:119963 近期更新时间:2024-02-13 作者:网友分享原创网站原创

摘 要:计算机图形学需要解决的一个迫切的问题就是图形显示的准确和真实性,而矩阵实验室(matrixLaboratory,Matlab)借助于其自身强大的函数库以及计算和显示功能,能够非常准确的显示所输入的图形或者数据,尤其是在曲线和曲面的显示上更是非常具有准确性和真实性.本文从曲线和曲面这两个角度,通过例证来说明Matlab在计算机图形学上的应用.

关 键 词:Matlab;计算图形学;曲线;曲面

中图分类号:U212.332.2文献标识码:A

1.引言

计算机图形学(ComputerGraphics,CG)是指通过数学算法将现实中的图形转换为能够在计算机上进行显示的科学.这些图形可以是二维或者是三维的,一般来说是由点、线、面这些基本图形单元以及色彩、线宽等属性来组成.简单来说,计算机所研究的就是如何通过计算机来表示图形,并且能够在数据经过数学计算之后能够通过图形的转变来显示其变化.

实际应用中,AutoCAD、protel等等计算机图形显示的软件工具都能够比较好的实现图形在计算机中的显示,但是还有一类数学软件工具能够更为便利、更为精准的实现曲面、曲线等等常用图形的显示,这就是美国MathWorks公司出品矩阵实验室(MatrixLaboratory,MATLAB)软件.

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域.

2.Matlab在曲线绘制中的应用

在Matlab的实际应用中,曲线一般分为两种:规则曲线和不规则曲线.规则曲线是指能够利用数学表达式表示或者是形状规则的曲线;不规则曲线是指需要根据给定的一些特殊的点来构造的光滑曲线.对于规则曲线,在Matlab中一般可以使用plot3这一函数来进行描绘,比如:对于螺旋曲线,如果其参数方程为:

X等于sintY等于cos2tZ等于sint+cost0<=t<=2π

那么在Matlab中的实际编程就可以用下列的语句来实现:

t等于0,pi/50,2*pi,plot3(sin(t),cos(2*t),sin(t)+cos(t))来实现,其输出的曲线如图1所示:

图1螺旋曲线

当然,对于不能够使用数学表达式进行表达的曲线,在Matlab中可以将曲线上特殊的点列出,通过拟合来形成光滑的曲线.

比如,对于如下例子:[x,y,x]等于peaks(5)

X等于-3.0000-1.500001.50003.0000

-3.0000-1.500001.50003.0000

-3.0000-1.500001.50003.0000

-3.0000-1.500001.50003.0000

-3.0000-1.500001.50003.0000

Y等于-3.0000-3.0000-3.0000-3.0000-3.0000

-1.5000-1.5000-1.5000-1.5000-1.5000

00000

1.50001.50001.50001.50001.5000

3.00003.00003.00003.00003.0000

Z等于0.00010.1142-0.2450-0.02980.0000

-0.00050.3265-5.6803-0.44050.0036

-0.0365-2.77360.98103.26950.0331

-0.00310.47847.99661.18530.0044

0.00000.03120.22990.03200.0000

那么,就可以直接使用函数mesh(x,y,z)来生成如图2所示的曲线.

图2mesh函数的输出曲线

3.Matlab在曲面绘制中的应用

在实际工程应用中,曲面一般分为两类:规则曲面和不规则曲面.规则曲面是指能够利用数学表达式表示或者是形状规则的曲面;不规则曲面是指需要根据给定的一些特殊的点来构造的光滑曲面.在Matlab进行曲面绘制的过程中,可以利用数学表达式表示的曲面一般是通过两种数学表达形式来表示的,一类是使用非参数形式:f(x,y)可以使用Matlab自带函数ezsurf(f,danain)来表示,其中,f是指两个参数的数学函数表达式,damain则用来定义两个参数变了的取值范围.比如:椭圆抛物面的数学表达式z等于x2+y2就可以用下面的表达式来表示:[x,y]等于meshgrid(-8∶1∶8),ezsurf(′y.^2+x.^2′,x,y),其输出图形如图3所示.


图3椭圆抛物面的输出曲面

而对于使用参数形式表示的曲面的数学表达式,在Matlab中可以使ezsurf函数ezsurf(x,y,z,[in,ax,tmin,tmax])表达形式或者ezsurf(x,y,z,[min,max])表达形式来表示曲面.其中,in,ax分别表示的是s的最小值和最大值,timn,tmax分别表示的是t的最小值和最大值.比如对于锥面来说,其参数表达式可以表达成为

MATLAB在计算机图形学中的应用参考属性评定
有关论文范文主题研究: 计算机图形学类论文范文 大学生适用: 专升本论文、本科论文
相关参考文献下载数量: 68 写作解决问题: 怎么写
毕业论文开题报告: 论文任务书、论文摘要 职称论文适用: 期刊发表、初级职称
所属大学生专业类别: 怎么写 论文题目推荐度: 优秀选题

输出的图形如图4所示.

图4圆锥面的输出曲面

而对于自由曲面而言,和自由曲线的表达方式基本相同,主要是通过给出特殊点的数值,进行拟合形成光滑的曲面,比较典型的代表例子就是Bezier曲面,这里由于篇幅关系不再给出具体的Matlab程序表示方法.其示意图如图5所示.

图5Bezier曲面的示意图

4、总结.本文给出了Matlab在计算机图形学中的两种主要应用:曲线和曲面的绘制,从一个相对独立的角度去分析了Matlab软件在计算机图形表示方面的强大能力.由于Matlab具有庞大而完整的函数库,在图形表示方面有着比较强的优势.通过Matlab将数据进行平面和空间的表示能够非常容易的看出数值在进行分析、变换过程当中产生的变化.