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

前言

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

通过百度发现,三维图像可视化一般有Matlabpython两种工具可用。这里以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=4x2y2 ,需要提前对 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绘制

  • 9
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值