« KeyboardEvent | メイン | Flashのバージョン7 で flash.geom パッケージを使う »
2008年1月 9日
[as2] Matrix の値から拡大縮小、回転の値を取る
Matrix の値から拡大縮小、回転、位置の値を取る計算式。
import flash.geom.Matrix;
var mat:Matrix = new Matrix();
mat.createBox( 12 , 36 , Math.PI/4 , 10, 50 );
trace( mat );
trace( getParam( mat ) );
function getParam( m:Matrix ):Object
{
var totalScale:Number = m.a * m.d - m.b * m.c;
var sx:Number = Math.sqrt(m.a * m.a + m.c * m.c);
var sy:Number = totalScale / sx;
var angle:Number = Math.acos( m.a / sx );
var obj = { scaleX:sx , scaleY:sy, rotation:angle, x:m.tx, y:m.ty };
obj.toString = function()
{
return "(scaleX="+this.scaleX+" , scaleY="+this.scaleY+
", rotation="+this.rotation+", x="+this.x+", y="+this.y+")";
}
return obj;
}
トラックバック(0)
このブログ記事を参照しているブログ一覧: Matrix の値から拡大縮小、回転の値を取る
このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/469

コメントする