【问题标题】:MATLAB 2D plot parabolic line rotation to form a cone in 3DMATLAB 2D 绘制抛物线旋转以形成 3D 圆锥
【发布时间】:2014-02-26 03:43:58
【问题描述】:

我想使用以下方法制作锥面图:距离向量“X=1:1:100”(大小 1100)和数据向量 Y=1:1:100(大小 1100)。在 2D 中,该图是一个有点抛物线方程 'Y=100-X^2' ( y > 0 和 -a

我想将线图旋转 180 度,每 1 度步长,围绕 x=0(y 轴),在 3d 空间中形成一个圆锥。是否可以?拜托,任何想法都非常受欢迎。

【问题讨论】:

  • 嗨,你想要方程 y = 100 - X^2 的旋转表面(圆锥是线性方程,如 y = x 的旋转表面)吗?你想把它做成动画情节吗?
  • 我的方程就像一个圆锥山,接近抛物线 y=100-x^2。它在我的脚本中计算,在每个时间步形成一个数组。我需要每个时间步长,拥有 Y 数据数组,形成一个 3D 圆锥体,围绕 y 轴旋转线。最终,每一步我都需要一个表面,因此将是 100 个时间步长的动画。或多或少,这些锥体在 100 步后体积会增加。我已经在 2D 中做到了这一点,它是一条在 y 和 x 轴上增加的抛物线。我需要在 3D 中,因为正如我所说,这就像在 3D 中爆炸的材料。
  • 2D plot in 3D polar graph 的可能重复项

标签: matlab animation 3d plot surf


【解决方案1】:

这个来自 Mathworks 网站的 3D 极坐标图可能正是您想要的:

http://www.mathworks.com/matlabcentral/fileexchange/13200-3d-polar-plot

它看起来是一个非常可爱的函数。请注意所描述的“角度范围”属性。

但是没有它你也可以得到你想要的:

figure(); hold on;
for theta = linspace(0, pi, 100) % Not exactly sure how you want to vary theta
    [T, R] = meshgrid(linspace(0, theta, 100), 1:100);
    [X, Y] = pol2cart(T,R); 
    Z = 100 - R.^2; % Compute the surface of revolution
    surf(X,Y,Z); % Plot the surface
    pause(1); % Wait one second
end

如果这不是您所描述的,或者您需要更多帮助,请告诉我。

【讨论】:

  • 谢谢,但它对我不起作用...是的,我想要我的图形演变的表面,围绕 y 轴 (x=0) 旋转。
  • 你能解释一下什么不起作用吗?这和你想要的有什么区别?
  • 在您的代码上,我只看到一条与我的数据无关的黑线。
  • 我可以向您发送我的导出图表的链接,您将完全了解我想要什么。我可以在这里做吗?
  • 当然。不过,最好将图表嵌入到您的问题中。
猜你喜欢
  • 2015-09-29
  • 2022-06-14
  • 2021-05-30
  • 2015-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
相关资源
最近更新 更多