可以计算旋转矩阵的宽度/高度?

时间:2012-11-08 16:45:35

标签: android matrix rotation scale dimensions

如果我使用它:

mCamera.rotateY(45);
mCamera.getMatrix(mMatrix);
mMatrix.preTranslate(-pivotX, -pivotY);
mMatrix.postTranslate(pivotX + centerX, pivotY + centerY);

并做:

canvas.drawBitmap(bitmap, mMatrix, null);

然后绘制的图片将更高更纤细,矩阵将很好地应用于整个图片。现在,有没有办法计算旋转尺寸?我希望通过缩放来适应图像,现在当我旋转它时,由于父母的约束,一些顶部和底部被剪裁。谢谢!

编辑:

我要做的是旋转图像,rotateY的范围是0到90.

2 个答案:

答案 0 :(得分:1)

好吧,您可以轻松地让矩阵映射位图的角,然后计算边界,因为映射的角将是x和y坐标的最大值/最小值。也许你可以在没有太多if条款的情况下做到这一点:)

修改 看看

RectF r = new RectF(/*your bitmap's corners*/);
matrix.mapRect(r);

这样你就可以获得r的新尺寸。

答案 1 :(得分:0)

如果你坚持45°那么毕达哥拉斯是关键