【问题标题】:how to draw an ellipse with given equation in Matlab?Matlab中如何用给定方程画一个椭圆?
【发布时间】:2015-02-17 04:56:27
【问题描述】:

我想在 Matlab 中画一个椭圆;但是在我用谷歌搜索之后,我发现绘制所需的半轴 a 和 b 所需的所有方法,我从方程式中不知道;谁能告诉我如何在给定任何方程的情况下绘制图表,或者只是给我一个教程来做到这一点?

P.S:等式是r=a(1-e^2)/(1-e cosθ) where a = 17.9, e = 0.967276

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以扫描从02*pi 的一系列间隔精细的θ 值,然后计算xy 坐标。

    a = 17.9;
    e = 0.967276;
    points = 1000;
    theta = 0:2*pi/points:2*pi; 
    theta = [theta 2*pi+1/points]; % add extra point to close the curve
    
    r = a*(1-e^2)/(1-e*cos(theta));
    x = r.*cos(theta);
    y = r.*sin(theta);
    
    plot(x,y);
    axis equal;
    

    您可能还想知道椭圆的偏心率edefinede = sqrt((a^2 - b^2)/(a^2)),因此您可以使用它来获得b = a*sqrt(1 - e^2)

    【讨论】:

    • 好的和简单的解决方案,但是我宁愿使用元素计算(使用.)而不是for-loop,例如r=a*(1-e^2)./(1-e*cos(theta));x = r.*cos(theta);y = r.*sin(theta);。这避免了for 循环和xy 的初始化。
    • 在绘图后进一步axis equal 防止了椭圆上的干扰视图。
    猜你喜欢
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多