Flash AS3で任意の中心点で回転させたくてかなり悩んだ。
めっちゃ調べてなんとかできた
かなり嬉しいです。
関数にされている方がいましたので使わせていただきました
凄い感謝です
任意の点を中心にムービークリップを回転させる(その2)
ちょっと関数がたりなかったのと、AS3用に一部改造しました。
めっちゃ調べてなんとかできた
かなり嬉しいです。
関数にされている方がいましたので使わせていただきました
凄い感謝です
任意の点を中心にムービークリップを回転させる(その2)
ちょっと関数がたりなかったのと、AS3用に一部改造しました。
//任意の中心点で回転
function rotate(trg:MovieClip, rotation:Number, x:Number, y:Number):void {
//現在のクリックした点の座標(x1,y1)
var x1:Number, y1:Number;
var rad1 = degreesToRadians(trg.rotation);
x1 = x * Math.cos(rad1)-y*Math.sin(rad1);
y1 = x * Math.sin(rad1)+y*Math.cos(rad1);
//rotation度回転した点の座標(x2,y2)
var x2:Number, y2:Number;
var rad2 = degreesToRadians(rotation);
x2 = x * Math.cos(rad2) - y *Math.sin(rad2);
y2 = x * Math.sin(rad2) + y * Math.cos(rad2);
trg.rotation = rotation;
trg.x += x1 - x2;
trg.y += y1 - y2;
}
//角度(degree) ラジアン(radian)に変換
function degreesToRadians(degrees):Number {
return (degrees/180) * Math.PI;
}