在MATLAB中,有专门绘制柱面与球面的命令cylinder和sphere。
首先来看cylinder命令
调用格式 说明
[X,Y,Z] = cylinder 返回一个半径为1、高度为1的圆柱体的x轴、y轴、z轴的坐标值,圆柱体的圆周有20个距离相同的点
[X,Y,Z] = cylinder(r,n) 返回一半径为r、高度为1的圆柱体的x轴、y轴、z轴的坐标值,圆柱体的圆周有指定的n个距离相同的点
[X,Y,Z] = cylinder(r) 与[X,Y,Z] = cylinder(r,20)等价
cylinder(...) 没有任何的输出参量,直接画出圆柱体
例:画出一个半径变化的柱面
>> close all >> t = 0:pi/10:2*pi; >> [X,Y,Z] = cylinder(2 + cos(t), 30); >> surf(X,Y,Z) >> axis square >> xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis') >>
注意:
axis square/将当前坐标系图形设置为方形。横轴及纵轴比例是1:1
axis equal/将横轴纵轴的定标系数设成相同值
也就是说axis square刻度范围不一定一样,但是一定是方形的。
axis equal刻度是等长的,但也不一定是方形的。
接着看下sphere命令,它用来生成三维直角坐标系中的球面,它的使用格式如下:
调用格式 说明
sphere 绘制单位球面,该单位球面由20*20个面组成
sphere(n) 在当前坐标系中画出由n*n个面组成的球面
[X,Y,Z] = sphere(n) 返回三个阶数为(n+1)*(n+1)的直角坐标系中的球面坐标矩阵
>> close all >> [X1,Y1,Z1] = sphere(8); >> [X2,Y2,Z2] = sphere(20); >> subplot(1,2,1); >> surf(X1,Y1,Z1) >> title('64个面组成的球面') >> subplot(1,2,2); >> surf(X2,Y2,Z2) >> title('400个面组成的球面') >>