我正在 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 上,效果保持不变。
我还没有看到其他人有这个问题,所以我想这里有人可能知道发生了什么。
有任何想法吗?