【发布时间】:2011-01-10 05:14:52
【问题描述】:
我有一个带有蒙版位图的容器。这个容器的缩放和旋转在运行时会发生变化,我需要绘制蒙版位图,但无法计算出合适的矩阵计算。
我的代码可以正确地反映位置、比例、偏移,以便在不旋转的情况下进行居中。旋转时,角度正确但定位不正确 - 我相信是因为旋转矩形时尺寸会发生变化。
有人可以帮我弄清楚如何在定位中弥补这一点 - 这是一些代码:
// Adjust the transformation matrix to account for the position of the container
var tMatrix:Matrix = _imgContainer.transform.matrix;
//Offset for container
tMatrix.translate(this.x,this.y);
//Offset for bounds centering
tMatrix.translate(-_imgContainer.width/2,-_imgContainer.height/2);
// Compensate for rotation
// ????
var result_bitmap:BitmapData = new BitmapData(_maskedImg.width,_maskedImg.height,true,0x00FFFFFF);
result_bitmap.lock();
result_bitmap.draw(_maskedImg,tMatrix,null,null,null,true);
result_bitmap.unlock();
提前感谢您提供的任何帮助 -
b
编辑: 抱歉,如果我没有正确解释这一点,让我再试一次以支持图像。我在一个容器中有一个蒙版位图,我将其用作绘制新位图的源。在捕获之前,用户可以在运行时缩放/旋转该容器。为了实现这一点,我将基于容器矩阵的变换矩阵传递给 draw 方法,并调整 tx 和 ty 值以考虑非零原点(由于居中)。到目前为止,它运行良好并符合我的预期。
但是 - 一旦这个容器被旋转,捕获的 POSITION 现在再次关闭 - 可能是由于尺寸发生变化,因此 tx/ty 偏移现在对于容器的新尺寸不正确。我只是需要对此进行补偿,但无法弄清楚如何。
有没有人对变换矩阵有帮助的经验?再次感谢您的努力!
【问题讨论】:
-
不要以为我明白你在做什么:你能做一张图片或截图吗?
-
更新了问题,提供了更好的解释和 2 张图片供参考 - 感谢您的努力。
标签: flash actionscript-3 matrix bitmap bitmapdata