代码之家  ›  专栏  ›  技术社区  ›  user1640255

MATLAB 2D绘制抛物线旋转以在3D中形成圆锥体

  •  0
  • user1640255  · 技术社区  · 10 年前

    我想使用距离矢量“X=1:1:100”(大小1100)和数据矢量Y=1:1:100(大小1100)绘制圆锥曲面图。在2D中,该图是一种抛物线方程“Y=100-X^2”(Y>0和-a<X<+a)。

    我想围绕x=0(y轴)将线图旋转180度,每1度一步,在三维空间中形成一个圆锥体。有可能吗?拜托,任何想法都非常受欢迎。

    1 回复  |  直到 10 年前
        1
  •  2
  •   MattG    10 年前

    这张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
    

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