« 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

コメントする


画像の中に見える文字を入力してください。

しばらく時間が経過すると、システム内部と表示されている文字内容に食い違いが発生するようなので、
投稿する前にページをリロードすることをお勧めします。
リロードしてもフォームの内容は維持されます。