【问题标题】:Scaling a rotated ellipse缩放旋转的椭圆
【发布时间】:2016-03-10 13:39:22
【问题描述】:

我有一个函数可以绘制一个椭圆,该椭圆相对于一些长轴 (vx) 和短轴 (vy) 刻度顺时针旋转角度 a。我想调整它,使未旋转的椭圆满足方程:

(x / vx)^2 + (y / vy)^2 = s

对于一些传入的值s。

function [] = plotellipse(cx, cy, vx, vy, s, a)
    t = linspace(0, 2 * pi);
    x = cx + vx * cos(t) * cos(-a) - vy * sin(t) * sin(-a);
    y =  cy + vy * sin(t) * cos(-a) + vx * cos(t) * sin(-a);
    plot(x,y,'y-');

【问题讨论】:

    标签: matlab scale ellipse


    【解决方案1】:

    您已正确实现的椭圆的常用方程是

    要将所需的方程式简化为相同的形式,请除以s

    现在xy 变成了

    vxs = vx / sqrt(s)
    vys = vy / sqrt(s)
    x = cx + vxs * cos(t) * cos(-a) - vys * sin(t) * sin(-a);
    y =  cy + vys * sin(t) * cos(-a) + vxs * cos(t) * sin(-a);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 2022-01-01
      • 2015-05-08
      • 2017-06-14
      相关资源
      最近更新 更多