【问题标题】:Ellipse fit tangentally to a line modifying one axis椭圆与修改一个轴的线相切
【发布时间】:2010-10-31 21:14:28
【问题描述】:

这个问题的图形在这里:

http://dl.dropbox.com/u/13390614/Question.jpg

取一个带有固定轴的椭圆 短轴,并沿椭圆拉伸 它的主轴直到它变成切线 到某个线段(图中的 A)。

切线的坐标是多少 点 (P),或者,长轴是什么 长度是?

如果我有,我知道如何计算主轴 切点,并且可以计算该点 如果我有主轴,但两者都没有, 我被难住了

当短轴为 与少校一起伸展,保持 比例。问题是当一个轴是 固定的。

任何见解都将不胜感激,尤其是 通过触发。

加里

【问题讨论】:

  • 这个问题与 c++ 有什么关系?我会说这只是数学..

标签: c++ c graphics 2d


【解决方案1】:

考虑

x^2/max^2 + y^2/fix^2 = 1; % ellipse
Ax + By + C = 0;            % segment line

然后

x^2/max^2 + (Ax + C)^2/(B*fix)^2 = 1; // Quadratic equation

您的解决方案是判别式等于 0。

   x^2   (1/max^2 + A^2/(B*fix)^2)   
+  x      2 AC/(B*fix)^2
+        C^2/(B*fix)^2 - 1  
= 0

a = (1/max^2 + A^2/(B*fix)^2);
b = 2 AC/(B*fix)^2;
c = C^2/(B*fix)^2 - 1.

b^2 = 4ac   ==>   a = b^2/c    ==>
a = 4(AC)^2/(B*fix)^4 / ( C^2/(B*fix)^2 - 1 )
1/max^2 = 4(AC)^2/(B*fix)^4 / ( C^2/(B*fix)^2 - 1 ) - A^2/(B*fix)^2);

【讨论】:

    【解决方案2】:

    点 P 的 y 坐标为 r^2/h,其中 r 是椭圆的短半轴(所以这里 r=0.75),h 是线段延伸的点的 y 坐标与 y 轴相交(将此点称为 H)。

    这是为什么?好吧,假设我们知道正确的椭圆和点 P 是什么,现在执行仿射变换 (x, y) -> (kx, y),其中选择 k 以使椭圆变成圆形。这不会移动 H,因为 H 在 y 轴上,并且它将 P 移动到具有相同 y 坐标的点 P',因此 HP' 是从 H 到半径为 r 的圆的切线段。通过相似的直角三角形,P'(因此 P)具有 y 坐标 r^2/h。

    当然,P 可能不在原始线段上,而只是在一条直线上的延伸,或者垂直轴实际上是生成的椭圆的长轴;您可能需要根据您的应用检查这些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多