【问题标题】:Ellipse fit to a point by altering one axis椭圆通过改变一个轴拟合到一个点
【发布时间】:2010-12-03 19:43:48
【问题描述】:

这个问题的图形在这里: http://dl.dropbox.com/u/13390614/Question2.jpg

取一个带有固定短轴的轴对齐椭圆,并沿其长轴拉伸椭圆,直到椭圆的周界与点重合(图中的 A)。新的长轴长度是多少?

当两个轴都要修改时我可以解决这个问题,但是当只修改一个轴时我很难过。

我们将不胜感激。

加里

【问题讨论】:

  • 这和编程无关,至少不是问的方式

标签: math graphics 2d


【解决方案1】:

首先,让我们假设椭圆在原点以简化事情。

想象这是一个以直径为短轴的圆。沿着 y = P's y 的线的圆的宽度是多少?等效地,圆直径上 y = P 的 y 点的 x 是多少。 (对此有两种解决方案。任何一种都可以,但您可能需要稍后调整符号。)您可以使用三角函数或勾股定理来计算。

您的长轴现在是短轴 * ((P's x) / x)。

【讨论】:

    【解决方案2】:

    非常感谢劳伦斯的帮助,这似乎确实有效。

    加里

    // 在代码中

    由于椭圆和点是轴对齐的, 该点是一个向量。

    将点 P 平移到短轴圆上 半径使用固定的短轴长度和 点的不断上升。

    double y = fabs( P.y );
    double x = sqrt( semiMnrAxLen * semiMnrAxLen - y * y );
    // Calc the new Semi Major Axis length.
    newSemiMajAxis = fabs( semiMnrAxLen * ( P.x / x ) );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      相关资源
      最近更新 更多