- 締切済み
楕円の変形
先の QNo.752549 「回転操作と伸縮操作2」 で少し触れられていますが、この関係に類する件です。 長径a、短径b、傾きθ(度:長径の軸線)を持った楕円があります。 この楕円を、楕円中心を基点に、X方向でx倍、Y方向でy倍したときの長径、短径、傾きの値を導く 計算式はどのようになるのでしょうか?。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- acacia7
- ベストアンサー率26% (381/1447)
あんまり深く考えず、 三平方の定理に従い、 長さの二乗はx^2+y^2ですから、 二乗和をガンマで微分。 その値が0になるときが極値ですから、 短径のγか長径のγかどちらかです。
- neKo_deux
- ベストアンサー率44% (5541/12319)
No.1です。 嘘書いてました。 短径、長径、傾きは元の楕円と一致しませんが、引き伸ばした図形も楕円っぽいです。 (お絵かきツールでぐにぐにして確認しただけですが…。)
お礼
neKo_deux 様 ありがとうございます。
- acacia7
- ベストアンサー率26% (381/1447)
(a b/c d)は2*2の行列とします。 長径がa,短径がb,傾きθというだ円は 単位円に A=(a 0/0 b)*(cosθ sinθ/-sinθ cosθ) という一次変換を掛けたものです。 後段の変換は B=(x 0/0 y) という一時変換ですから, 出来上がった図形は 単位円にA*B=(a 0/0 b)*(cosθ sinθ/-sinθ cosθ)*(x 0/0 y) という1次変換をしたものです。 単位円を1次変換したものは基本的にだ円です。 求めるべき図形上の点はベクトル(α,β)= (cosγ,sinγ)*(a 0/0 b)*(cosθ sinθ/-sinθ cosθ)*(x 0/0 y)で表せ, このベクトルの大きさが最長になるγをを求めます。
お礼
acacia7 様 お答えありがとうございます。 私も、(a 0/0 b)*(cosθ sinθ/-sinθ cosθ)*(x 0/0 y) ここまでの計算式には、たどり着いたのですがその先が わかりませんでした。お教示いただいています「最長になるγ」 を求めるには、どのようにするかで固まってしまいました。 出来ましたら、捕捉していただけないでしょうか。宜しく お願いいたします。
- ranx
- ベストアンサー率24% (357/1463)
> X方向でx倍、Y方向でy倍したときの これはアフィン変換の一種です。 楕円にアフィン変換を行った結果はやはり楕円です。(円を含む。) 各変換を丹念に計算すれば、 Ax^2+Hhy+Bx^2=C という形の式になるはずです。 一方、楕円を回転させた式も上記の形式になります。 係数を比較すれば各値は求められるはずです。 なるはずというだけで、私は計算していないので、自信なしです。 ご自身で計算してみて下さい。
お礼
ranx 様 お答えありがとうございます。 検証してみます。
- neKo_deux
- ベストアンサー率44% (5541/12319)
> X方向でx倍、Y方向でy倍したときの この操作により、元の楕円の長径、短径が直交しなくなります。この時点で図形は楕円でなくなりますから、傾きは定義できなくなってしまうように思います。 長径、短径それぞれの端点の位置や、外接する長方形を考えると分かりやすいかも。
お礼
neKo_deux 様 お答えありがとうございます。 しかし、楕円をX方向でx倍、Y方向でy倍しても、 楕円のままではないかと思いますが。
お礼
acacia7 様 ご返事が遅れまして、申し訳ありませんでした。 解決できました。