【问题标题】:Graph different 2D ellipses in 3D axes at different heights in MATLAB在 MATLAB 中绘制不同高度的 3D 轴上的不同 2D 椭圆
【发布时间】:2016-01-29 02:32:59
【问题描述】:

我想在不同的高度(z 坐标)绘制不同的椭圆。

我的想法是编写以下代码:

z=0:1/64:3/8;
t=linspace(-pi,pi,25);
[t,z]=meshgrid(t,z);
x=cos(-t);
y=cos(-t-4*pi*z);

我希望 MATLAB 像这样读取我的代码:

“找到 x 和 y,并在相应的高度 (z) 处绘图。通过这样做,将这些点连接起来,以便在恒定 z 处形成一个椭圆”。

我不确定我可以在这里使用什么样的功能来做到这一点,并希望有人告诉我是否存在这样的功能可以完成这项工作或类似的东西。

如果您想知道,我想绘制两个反向传播光束的光偏振图。

编辑:虽然这与问题 draw ellipse and ellipsoid in MATLAB 类似,但该问题并未涉及在 3D 轴上绘制 2D 椭圆,这是我正在尝试做的。

【问题讨论】:

  • 请重新考虑重新打开此问题,因为我认为将其作为指定问题的副本关闭是不正确的。这个问题是关于在 3D 轴上绘制 2D 椭圆,而链接的副本仅涉及在 2D 轴上绘制 2D 椭圆。

标签: matlab physics


【解决方案1】:

这可以通过删除 meshgrid 并使用普通的旧 for 循环来解决。

t = linspace(-pi,pi,25);
z = 0:1/64:3/8
f = figure;
hold on;
for i = 1:length(z)
    x=cos(-t); y=cos(-t-4*pi*z(i));
    plot3(x,y,z(i)*ones(length(z),1));
end

原始代码中的问题是您尝试一次构建所有椭圆,但每个椭圆仅取决于单个 z 值,而不是整个 z 值数组。

当我运行这段代码时,它会产生以下情节:

【讨论】:

    猜你喜欢
    • 2016-07-07
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    相关资源
    最近更新 更多