0

私はEclipseでAndroidアプリを開発しており、android.graphics.cameraを使用して画像を3D変換しています。簡単に言えば、私のアプリは 2D 画像を取得し、遠近感を与えます。私の問題は、変換中に画面の周りで画像を回転させたいということです。

        final Matrix mMatrix = canvas.getMatrix();
        canvas.save();
        mCamera.save();
        mCamera.rotateX(60);
        mCamera.rotateY(0);
        mCamera.rotateZ(0); 
        mCamera.getMatrix(mMatrix);
        mMatrix.preTranslate(-this.gridWidth / 2, -this.gridHeight);
        mMatrix.postTranslate(this.gridWidth / 2, this.gridHeight);
        canvas.concat(mMatrix);
        mCamera.restore();
        //Draw and move image here          
        canvas.restore();

カメラが移動する画面の下部に画像が到達すると、画像が歪んでしまいます。画面に断片が表示されますが、後ろまたは横に描かれているようです。また、rotateZ プロパティを使用して画像を回転させてみましたが、同じ効果が発生します。画像が移動ポイントの「後ろ」に来ると、おかしなことになります。

エミュレータのバグかもしれないと思ったので、Droid X と Acer Iconia にロードしましたが、効果は変わりません。

他の誰かがこの問題を抱えているのを見たことがないので、ここの誰かが何が起こっているのかについての手がかりを持っているかもしれないと思いました.

何か案は?

4

1 に答える 1

0

この問題は、カメラの距離を変更できる新しいバージョンの Android で対処できます。

http://developer.android.com/reference/android/graphics/Camera.html#setLocation (フロート、フロート、フロート)

于 2012-04-26T06:13:37.430 に答える