matlab的使用(二)常见三维图形绘制

例1. 三维螺旋线

绘制三维螺旋线

{ x = s i n t y = c o s t       t [ 0 , 10 π ] z = t

t = 0:pi/50:10*pi;  % 以 0 为初量,pi/50 为增量,10*pi 为终值的等差数列,用 向量 t 表示
plot3(sin(t),cos(t),t);   % 以 sin(t) 为 x 轴, cos(t) 为 y 轴,t 为 z 轴绘图
grid on;   % 开启表格
axis square;   % 将当前坐标系图形设置为方形
xlabel('x')    % 给 x 轴添加标注 
ylabel('y')    % 给 y 轴添加标注
zlabel('z')    % 给 z 轴添加标注 

这里写图片描述

例2. 墨西哥帽子

绘制墨西哥帽子图像 z = s i n x 2 + y 2 x 2 + y 2

[x,y] = meshgrid(-8:.4:8);   % 生成种子网格,生成 xoy 平面上的一系列点
c = sqrt(x.^2 + y.^2) +eps;  % eps 是一个很小的整数,在这可以防止分母为 0
z = sin(c)./c; 
mesh(x,y,z);      % 绘制彩色网格图图形

这里写图片描述

例3. 马鞍面

绘制马鞍面 z = x 2 9 - y 2 4

[x,y] = meshgrid(-25:1:25);  
z = x.^2/9 - y.^2/4;
surf(x,y,z)  % 用阴影的方式显示

这里写图片描述

例4. 椭圆抛物面

绘制椭圆抛物面 z = x 2 2 - y 2 4

  • 对于显示表达的曲面,matlab 提供了 ezmesh 命令
ezmesh('x^2/2+y^2/4')

这里写图片描述

和 ezsurf 命令

ezsurf('x^2/2+y^2/4')

这里写图片描述

例5. 单位球面

绘制单位球面 x 2 + y 2 + z 2 = 1

sphere(50)   % 生成球面的函数,横纵各 50 条线

这里写图片描述

例6. 椭球面

绘制椭球面 ( x 1 ) 2 4 2 + y 2 3 2 + ( z + 1 ) 2 2 2 = 1

[x,y,z] = ellipsoid(1,0,-1,4,3,2);   % 生成椭圆的函数
surfl(x,y,z);   % 带光泽 
colormap copper   % 加上铜颜色的皮肤
axis equal   % 设置宽高比以使等分标记

这里写图片描述

例7. 单叶双曲面

绘制单叶双曲面 x 2 2 2 + y 2 3 2 - z 2 4 2 = 1

对应于同一个点(x,y)有两个点 z 与之对应,为此我们采取参数形式:
x 2 2 2 + y 2 3 2 = z 2 4 2 + 1

令 h = z 2 4 2 + 1

{ x = 2 h c o s t y = 3 h s i n t       t [ 0 , 2 π ] , z [ 5 , 5 ] z = z

[t,z] = meshgrid(0:pi/20:2*pi,-10:.5:10);
x = 2*sqrt(z.^2/16+1)*cos(t);
y = 3*sqrt(z.^2/16+1)*sin(t);
mesh(x,y,z)

这里写图片描述

例8. 平面

平面 x + y z = 1
z = x + y + 1

ezmesh('x+y+1')

这里写图片描述

猜你喜欢

转载自blog.csdn.net/liyuanyue2017/article/details/81873034