AS3 の getBounds 関数は、回転した楕円にぴったりと合わない四角形を返します。代わりに、幅/高さが楕円の最大/最小直径に対応し、その回転に従う長方形の境界に基づいて、軸に沿った長方形を返します。
スタック オーバーフローに関する同様の質問への回答は、私の質問の数学部分をエレガントに概説しています。
楕円と境界ボックスの計算に関する Stack Overflow Q/A
これに基づいて、AS3 でソリューションをコーディングすることに挑戦しました。これまでのところ、x 軸に沿って完全に収まる長方形を作成できましたが、楕円を回転させると、y 軸に沿って非常に奇妙な動作をします。回転中に 2*r_min と 2*r_max を交互に繰り返すのではなく、2*r_min と 0 を交互に繰り返します。勾配 -> 無限大の微分 t を解くときに何か間違ったことをしたと思います...
これが私のコードの例です:
var r_max:uint = 45;
var r_min:uint = 20;
var rot:Number = ellipse.rotation * (Math.PI / 180);
var t_nil:Number = Math.atan( -r_min * Math.tan(rot) / r_max);
var t_inf:Number = Math.atan(r_min * Math.atan(rot) / r_max) + (Math.PI / 2);
var x:Number = r_max * Math.cos(t_nil) * Math.cos(rot) - r_min * Math.sin(t_nil) * Math.sin(rot);
var y:Number = r_min * Math.sin(t_inf) * Math.cos(rot) + r_max * Math.cos(t_inf) * Math.sin(rot);