2010-12-03 21 views
-1

この問題のグラフィックを一つの軸を変更することにより、ポイントにフィットはここにある: http://dl.dropbox.com/u/13390614/Question2.jpg楕円が

は、固定された短軸と軸整列楕円を取り、楕円形のperimiterの一致までその長軸に沿って楕円を伸ばしますポイント(グラフィックのA)を付けてください。新しい長軸の長さは何ですか?

両方の軸を変更するときにこの問題を解決できますが、1つの軸だけが変更されたときにはこの問題が解決できます。

洞察が得られるでしょう。

ゲイリーは

+0

これはプログラミング関連ではありません。少なくとも方法は問いません –

答えて

1

まずは、楕円は、物​​事を単純化するために、原点であるふりをしましょう。

直径があなたの短軸である円であると想像してください。 y = Pのyの直線に沿った円の幅はどのくらいでしょうか?同様に、円の直径上の点のxはy = Pのyとなります。 (これには2つの解決策がありますが、後で符号を調整する必要があるかもしれませんがどちらでも可能です)。これはtrigまたはPythagoreanの定理のいずれかを使って計算できます。

あなたの長軸は短軸*((Pのx)/ x)になりました。

0

Laurenceのサポートに感謝しています。うまくいくようです。

ゲイリー

//コード

において楕円と点が軸配向しているため、 点はベクトルです。

固定小数軸の長さと 点の一定の上昇を使用して、点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));