3

我正在尝试使用画布和矩阵围绕 X、Y 和 Z 轴旋转常规位图。我可以使用 OpenGL,但我认为实现如此简单的效果会有点过头了,因为我很确定仅使用画布、位图和矩阵就可以做到这一点。

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

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

            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);
4

1 回答 1

2

Rotate3DAnimation 是您的答案。这是课程

这里也是教程: 3D翻转教程

于 2012-08-26T18:45:24.310 回答