2010-12-03 34 views
-1

這個問題的一個圖形是在這裏: http://dl.dropbox.com/u/13390614/Question2.jpg橢圓擬合到一個點被改變一個軸

採取的軸線對齊橢圓具有固定短軸,並沿着它的長軸,直到橢圓的perimiter一致拉長的橢圓與一個點(圖中的A)。什麼是新的主軸長度?

我可以解決這個問題,當兩個軸都要修改時,但是當只有一個軸被修改時難倒了。

任何見解,將不勝感激。

加里

+0

這是不相關的編程,至少不是要求的方式 – 2010-12-03 19:47:04

回答

1

首先,讓我們假裝橢圓爲原點,以簡化的東西。

想象一下,它是一個圓的直徑是你的短軸。沿y = P的y線的圓的寬度是多少?等價地,圓的直徑上的點的x是多少,其中y = P的y。 (有兩種解決方法,一種可以,但可能需要稍後調整一個符號。)您可以使用trig或畢達哥拉斯定理來計算它。

您的主軸現在是次軸*((P's x)/ x)。

0

非常感謝勞倫斯的幫助,這似乎工作。

加里

//在代碼

由於橢圓和點被軸對準, 點是向量。

使用固定短軸長度和 點的恆定上升值將點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));