Android围绕其中心旋转位图

3

我正在尝试使用canvas和matrix围绕X、Y和Z轴旋转常规位图。我可以使用OpenGL,但我认为这样做太过浪费,因为我非常确定只需使用canvas、位图和matrix就能实现这样一个简单的效果。

我尝试使用相机及其rotateX、rotateY和rotateZ方法,然后将该矩阵应用于canvas,但由于某种原因我无法使它围绕位图中心旋转!

我找不到改变旋转原点的方法,所以我决定将相机平移,使其位于位图中心,然后再将其平移回去,但无论我尝试什么,位图都无法按其中心平移...image

            camera.save();

            camera.translate(-(team.getWidth() / 2), (team.getHeight() / 2), 0f);

            rotateY += 1f;

            camera.rotateY(rotateY);

            camera.translate((team.getWidth() / 2), -(team.getHeight() / 2), 0f);

            camera.applyToCanvas(canvas);

            camera.restore();

            /* code that has nothing to do with this..(fading) */

            canvas.drawBitmap(team, null, rect, paint);
1个回答

2
Rotate3DAnimation是您需要的答案。这里是
还有教程: 3D翻转教程

谢谢,谢谢,再次感谢! :) 它完美地运行了,只是很想知道为什么我的解决方案不起作用?预翻译和后翻译有什么关系? - Ruuhkis
矩阵转换计算“公式”。[Matrix类](http://developer.android.com/reference/android/graphics/Matrix.html#preTranslate(float, float))。只是好奇,你学过线性代数课程吗?如果你要玩动画和OpenGL,这是一个很好的基础。 - Dusean Singh
没有,我在这个领域基本上是自学的。不过我前一段时间订购了一本线性代数书,希望能够解决这个问题。 - Ruuhkis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接