0
ビットマップデータをAS3で回転しています。私がビットマップの回転を開始すると、コーナーが途切れてしまいます。私はビットマップが新しく回転されたビットマップに合っているはずのサイズを把握しようとしています。ビットマップを回転すると、コーナーがオフになる
現在、私はこの作業を取得することができた答えの助けを借りて
var point:Point=new Point(BMPHolder.x+BMPHolder.width/2,BMPHolder.y+BMPHolder.height/2);
var RotateMatrix:Matrix = new Matrix();
var radains:Number = 45 * (Math.PI/180);
myMatrix.tx -= point.x;
myMatrix.ty -= point.y;
myMatrix.rotate(radains);
myMatrix.tx += point.x;
myMatrix.ty += point.y;
preApply = new BitmapData (BMPHolder.width,AdjustY, false);
preApply.draw(BMPHolder,myMatrix, null, null, null, false);
を使用してコードイム。これは私が追加しなければならなかったコードです。
//Anchor point.
xArray.push(0);
yArray.push(0);
xArray.push((BMPHolder.width * Math.cos(radains)) - (BMPHolder.height * Math.sin(radains)));
yArray.push((BMPHolder.width * Math.sin(radains)) + (BMPHolder.height * Math.cos(radains)));
xArray.push((BMPHolder.width * Math.cos(radains)) - (BMPHolder.y * Math.sin(radains)));
yArray.push((BMPHolder.width * Math.sin(radains)) + (BMPHolder.y * Math.cos(radains)));
xArray.push((BMPHolder.x * Math.cos(radains)) - (BMPHolder.height * Math.sin(radains)));
yArray.push((BMPHolder.x * Math.sin(radains)) + (BMPHolder.height * Math.cos(radains)));
var NewWidth:Number = MaxValue(xArray) - MinValue(xArray);
var NewHeight:Number = MaxValue(yArray) - MinValue(yArray);
myMatrix.tx -= point.x;
myMatrix.ty -= point.y;
myMatrix.rotate(radains);
myMatrix.tx += Math.abs(NewWidth/2);
myMatrix.ty += Math.abs(NewHeight/2);
私はすべてのポイントを見つけるために行列を使用することもできましたが、私はちょうど私の正気を保つために手でそれをやったと仮定しています。ありがとうございました
申し訳ありませんが、正確にxformは何ですか? – MrB
この場合、xformはmyMatrixの変換をポイントに適用するためのものです。 –