【问题标题】:How to use Matlab to draw these 3D shapes?如何使用 Matlab 绘制这些 3D 形状?
【发布时间】:2014-08-06 21:36:09
【问题描述】:

我正在尝试使用 Matlab 创建这些 3D 形状以用于说明目的(请参见下图)。我认为 surf 是我应该使用的功能;但是,我不知道我应该用什么函数来表示这些形状。任何人都可以建议一个例子吗?谢谢。

A.

编辑 1:

感谢 Trogdor 和 PetrH 的回复。

目前,我正在尝试绘制一个更清晰的形状。例如,z = x.^2 + y.^2;可以绘制一个正常的杯子形状。但是,我想绘制如下所示右侧的子图。尝试了几种不同的功能但不起作用。感谢您的任何提示!

编辑 2:

使用 z = x.^2 -4*x+ y.^2-4*y;可以使形状更平整。还没有办法让它变得锋利。

【问题讨论】:

  • Matlab 自动缩放图形以最适合。查看 mathworks.com/help/matlab/ref/axis.html 以限制坐标轴。
  • 对不起,令人困惑,我试图找到一个函数来绘制更清晰的形状,而不是通过设置轴。由于我不知道该怎么做,所以我通过更改轴显示了一些结果。
  • @Yvon 你说得对,我只需要设置z轴!谢谢

标签: matlab plot 3d shape


【解决方案1】:

您可以使用 meshgrid 生成 x 和 y 矩阵以插入 z 函数。例如:

[x,y] = meshgrid(-10:10);
z = x.^2 + y.^2;
figure;surf(z);

将生成一个类似于第一个图的图。 第二个图是一样的,但是定义z为:

z = y.^2;

等等。

编辑:第三个数字是鞍,使用

z = x.^2 - y.^2;

感谢 PetrH 指出这一点。

第四个和第五个是前两个的倒置。

z = -x.^2;
z = -x.^2 - y.^2;

【讨论】:

  • 第三个形状是马鞍形,你可以得到z = x.^2 - y.^2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-12
  • 2019-12-17
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多