【问题标题】:Android rotating bitmap around its centerAndroid围绕其中心旋转位图
【发布时间】:2012-08-26 18:25:41
【问题描述】:

我正在尝试使用画布和矩阵围绕 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);

【问题讨论】:

    标签: java android 3d android-canvas


    【解决方案1】:

    Rotate3DAnimation 是您的答案。这是class

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

    【讨论】:

    • 谢谢,谢谢,再次谢谢! :) 它工作得很好,很高兴听到为什么我的解决方案不起作用?翻译前和翻译后是什么关系?
    • 矩阵转换计算转换的“公式”。 [矩阵类](developer.android.com/reference/android/graphics/…, float))。只是想知道,你上过线性代数课程吗?如果您要玩动画和 OpenGL,这是一个很好的基础
    • 不,我没有,我在这个领域几乎是自学成才的。我不久前订购了线性代数书,希望能解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多