matlab在三维建模计算的应用,Matlab在三维建模计算的应用

41528d3028836879cd698677c3999917.gifMatlab在三维建模计算的应用

Matlab在三维建模计算的应用 为了显示三维图形,MATLAB提供了各种各样的函数。有一些函数可在三维空间中画线,而另一些可以画曲面与线格框架。另外,颜色可以用来代表第四维。当颜色以这种方式使用时,由于它不再象照片中那样显示信息的自然属性----色彩,而且也不是基本数据的内在属性,所以它称作伪彩色。为了简化对三维图形的讨论,对颜色的介绍推迟到下一章。在这一章,主要讨论绘制三维图形的基本概念。 18.1 函数plot3 plot3命令将绘制二维图形的函数plot的特性扩展到三维空间。函数格式除了包括第三维的信息(比如Z方向)之外,与二维函数plot相同。plot3一般语法调用格式是plot3(x1,y1,z1,S1,x2,y2,z2,S2,…),这里xn,yn和zn是向量或矩阵,Sn是可选的字符串,用来指定颜色、标记符号和/或线形。 总的来说,plot3可用来画一个单变量的三维函数。如下为一个三维螺旋线例子: » t=0:pi/50:10*pi; » plot3(sin(t),cos(t),t) » title( ‘ Helix ‘ ),xlabel( ‘ sint(t) ‘ ),ylabel( ‘ cos(t) ‘ ),zlabel( ‘ t ‘ ) » text(0,0,0, ‘ Origin ‘ ) » grid » v = axis v = -1 1 -1 1 0 40 输出见图18.1. 图18.1 螺旋线图 从上例可明显看出,二维图形的所有基本特性在三维中仍都存在。axis命令扩展到三维 只是返回Z轴界限(0和40),在数轴向量中增加两个元素。函数zlabel用来指定z轴的数据名称,函数grid在图底绘制三维网格。函数test(x,y,z, ‘ string ‘ )在由三维坐标x,y,z所指定的位置放一个字符串。另外,子图和多图形窗口可以直接应用到三维图形中。 在最后一章可以看到,通过指定plot命令的多个参量或使用hold命令,可以把多条直线或曲线重叠画出。plot3以及其它的三维图形函数都可以提供相同的能力。例如,增加维数的plot3命令可以使多个二维图形沿一个轴排列起来,而不是直接将二维图形叠到另一个的上面。 » x=linspace(0,3*pi); % x-axis data » z1=sin(x); % plot in x-z plane » z2=sin(2*x); » z3=sin(3*x); » y1=zeros(size(x)); % spread out along y-axis » y3=zeros(size(x)); % by giving each diffent y-axis values » y2=y3/2; » plot3(x,y1,z1,x,y2,z2,x,y3,z3); » grid,xlabel( ‘ x-axis ‘ ),ylabel( ‘ y-axis ‘ ,abel( ‘ z-axis ‘ ) » title( ‘ sin(x),sin(2x),sin(3x) ‘ ) 输出见图18.2. 图18.2 正弦曲线图 上述图形也可以沿另外方向堆列。 » plot3(x,z1,y1,x,z2,y2,x,z3,y3) » grid,xlabel( ‘ x-axis ‘ ,ylabel( ‘ y-axis ‘ ),zlabel( ‘ z-axis ‘ ) » title( ‘ sin(x),sin(2x),sin(3x) ‘ ) 输出见图18.3. 图18.3 正弦曲线图 18.2 改变视角 注意两个图形,一个是以30度视角向下看z=0平面,一个是以37.5度视角向上看x=0平面。这是对所有三维图形的缺省视角。与z=0平面所成的方向角叫仰角,与x=0平面的夹角叫做方位角。这样,缺省的三维视角方向仰角为30度,方位角为-37.5度。而缺省的二维视角仰角为90度,方位角为0度。仰角和方位角的概念在图18.4中形象地画出。 图18.4 仰角和方位角示意图 图18.5 视角举例图 在MATLAB中,函数view改变所有类型的二维和三维图形的图形视角。view(az,el)和view([az,el)]将视角改变到所指定的方位角az和仰角el。考虑下面脚本M文件形式的例子。 % viewpoint example using subplots x=linspace(0,3*pi).’; Z=[sin(x) sin(2*x) sin(2*x)]; % create Y and Z axes as matrices Y=[zeros(size(x)) ones(size(x))/2 ones(size(x))]; subplot(2,2,1) plot3(x,Y,Z) % plot3 works with column-oriented matrices too grid,xlabel( ‘ X-axis ‘ ),ylabel( ‘ Y-axis ‘ ),zlabel( ‘ Z-axis ‘ ) title( ‘ Default Az = -37.5,E1 = 30 ‘ ) view(-37.5,30) subplot(2,2,2) plot3(x,Y,Z) grid,xlabel( ‘ X-axis ‘ ),ylabel( ‘ Y-axis ‘ ),zlabel( ‘ Z-axis ‘ ) title( ‘ Az Rotated to 52.5 ‘ ) view(-37.5+90,30) subplot(2,2,3) plot3(x,Y,Z) grid,xlabel( ‘ X-axis ‘ ),ylabel( ‘ Y-axis ‘ ),zlabel( ‘ Z-axis ‘ ) title( ‘ E1 Increased to 60 ‘ ) view(-37.5,60) subplot(2,2,4) plot3(x,Y,Z) grid,xlabel( ‘ X-axis ‘ ),ylabel( ‘ Y-axis ‘ ) title( ‘ Az = 0,E1 = 90 ‘ ) view(0,90) 输出见图18.5。 除了上面的形式,view还提供了综合在表18.1的其它特性: 表18.1 函数view view(az,el) 将视图设定为方位角az和仰角el view([az,el]) view([x,y,z]) 在笛卡儿坐标系中将视图设为沿向量[x,y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值