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

前言

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

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

例子

《matlab在同一窗口中画多个三维图像》
这里我想知道(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在同一窗口中画多个三维图像》

窗口工具介绍

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

平移(红框)

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

三维旋转(绿框)

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

数据游标(蓝框)

点击后,再在三维图中点击某点,即可显示坐标。
《matlab在同一窗口中画多个三维图像》

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

注意

matlab用特定的函数画函数图像会受到限制,比如,sqrt会限制根号下的函数值只能为非负数,所以,如果要表示 z = 4 − x 2 − y 2 z=\sqrt{4-x^2-y^2} z=4x2y2 ,需要提前对 x x x y y y进行限制,使根号下的式子永远不为0。

例子

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

代码细节

创建马鞍面

[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在同一窗口中画多个三维图像》

参考资料

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

    原文作者:CodeQingqing
    原文地址: https://blog.csdn.net/I_love_you_me/article/details/124028487
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞