我有一个包含遮罩位图的容器。该容器在运行时更改缩放和旋转,我需要绘制遮罩位图,但无法找到适当的矩阵计算方法。
我的代码可以正确反映位置、缩放和居中偏移量,但未进行旋转时。当旋转后,角度是正确的,但位置不正确 - 我认为这是因为矩形在旋转时尺寸会发生变化。
请问有人能帮我解决这个位置调整问题吗?以下是一些代码:
感谢您提供的任何帮助。
编辑:如果我没有解释清楚,很抱歉,让我再试一次并附上图片支持。我在容器中有一个掩蔽位图,我正在使用它作为绘制新位图的源。用户可以在捕获之前在运行时缩放/旋转此容器。为了实现这一点,我根据容器矩阵传递了一个变换矩阵给绘制方法,并调整tx和ty值以考虑非零原点(由于居中)。到这个地步它工作得很好,捕获了我所期望的内容。
然而,一旦这个容器被旋转,捕获的位置又会偏移 - 可能是由于尺寸的改变,因此新尺寸的容器的tx/ty偏移量现在不正确。我只需要弥补这一点,但无法想出如何做到这一点。
有谁有变换矩阵的经验可以帮忙吗?再次感谢您的努力!
我的代码可以正确反映位置、缩放和居中偏移量,但未进行旋转时。当旋转后,角度是正确的,但位置不正确 - 我认为这是因为矩形在旋转时尺寸会发生变化。
请问有人能帮我解决这个位置调整问题吗?以下是一些代码:
// 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();
感谢您提供的任何帮助。
编辑:如果我没有解释清楚,很抱歉,让我再试一次并附上图片支持。我在容器中有一个掩蔽位图,我正在使用它作为绘制新位图的源。用户可以在捕获之前在运行时缩放/旋转此容器。为了实现这一点,我根据容器矩阵传递了一个变换矩阵给绘制方法,并调整tx和ty值以考虑非零原点(由于居中)。到这个地步它工作得很好,捕获了我所期望的内容。
然而,一旦这个容器被旋转,捕获的位置又会偏移 - 可能是由于尺寸的改变,因此新尺寸的容器的tx/ty偏移量现在不正确。我只需要弥补这一点,但无法想出如何做到这一点。
有谁有变换矩阵的经验可以帮忙吗?再次感谢您的努力!