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 に答える