matlab在同一窗口中画多个三维图像

2025-05-27 19:43:38

前言

在学习三重积分时,我自己构想出对应的三维图像较为困难;如果多个三维图像相交,去研究其中的交线的特点,则更为困难。所以想试试三维图像可视化。

通过百度发现,三维图像可视化一般有Matlab和python两种工具可用。这里以matlab为例,python的方案需要在开发环境的基础上安装许多包,比较复杂且耗时。

例子

这里我想知道(V)的区域的具体情况,可以借助matlab实现可视化

代码细节

创建柱面

[x,y,z1] = cylinder(1, 100); % 圆半径为1,用100个边逼近它

h=5;

z1=[z1(1,:);z1(2,:)+h-1]; % 圆柱高增高,变为高h

mesh(x+1,y,z1) % 圆柱底面圆心为(1,0)

保持上一个图形不消失

hold on; % 保持图形

创建锥面

[x,y] = meshgrid(-2:0.1:2, -2:0.1:2); % -2<=x<=2且步进值为0.1

z2 = sqrt(x.^2+y.^2);

mesh(x,y,z2);

标出坐标轴

xlabel('x'),ylabel('y'),zlabel('z')

效果

窗口工具介绍

平移(红框)

在三维视角不变的情况下,左右上下移动三维图像

三维旋转(绿框)

转动三维视角,可以查看三维图像的各个角度的细节

数据游标(蓝框)

点击后,再在三维图中点击某点,即可显示坐标。

显示坐标后,可以用鼠标拖动数据点。 数据游标在三维坐标系中只能显示面上的点的坐标,而不能显示空间中任意一点的坐标。

注意

matlab用特定的函数画函数图像会受到限制,比如,sqrt会限制根号下的函数值只能为非负数,所以,如果要表示

z

=

4

x

2

y

2

z=\sqrt{4-x^2-y^2}

z=4−x2−y2

​,需要提前对

x

x

x和

y

y

y进行限制,使根号下的式子永远不为0。

例子

代码细节

创建马鞍面

[x,y] = meshgrid(-2:0.1:2, -2:0.1:2); % -2<=x<=2且步进值为0.1

z1 = x.*y;

mesh(x,y,z1);

hold on;

通过极坐标创建椭圆柱面

theta=0:0.1:2.0*pi+0.1; % 0≤φ<2π

a=1;

b=2;

x=a*cos(theta);

y=b*sin(theta);

z=-5:0.5:5;

X=ones(length(z),1)*x; % length(z)行1列矩阵

Y=ones(length(z),1)*y;

Z=z'*ones(1,length(x)); % z将矩阵转置

surf(X,Y,Z);

参考资料

知乎_十种常用二次曲面及其matlab绘制

    在线倒计时 · ClockZone
    呼吸泡泡面膜敷多久 呼吸泡泡面膜用法

    Copyright © 2022 摩洛哥世界杯_直播世界杯决赛 - dgaida.com All Rights Reserved.