Я вращал некоторые растровые данные в 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);
Я предполагаю, что мог бы использовать матрицу, чтобы найти все точки, но я просто сделал это вручную, чтобы сохранить здравый смысл.Еще раз спасибо