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中的變換應用於點。 –