我有一个Canvas
和一个Bitmap
。我必须在画布上绘制位图两次并旋转它们。这是我的代码:
Bitmap bitmap = ... ;
Matrix matrix = new Matrix();
Camera camera = new Camera();
camera.save();
// First drawing:
camera.rotateX(x_rotate_angle);
camera.rotateY(y_rotate_angle);
camera.getMatrix(matrix);
matrix.postTranslate(0, 0);
matrix.postScale(3, 3);
canvas.drawBitmap(bitmap, matrix, null);
camera.restore();
// Second drawing:
camera.rotateX(x_rotate_angle);
camera.rotateY(y_rotate_angle);
camera.getMatrix(matrix);
matrix.postTranslate(10, 10 + bitmap.getHeight());
matrix.postScale(3, 3);
canvas.drawBitmap(bitmap, matrix, null);
旋转前的结果:
当位图仅旋转 X 轴时,一切都很好。在这种情况下,结果如下所示:
在上面的两个图像中,您可以看到所有边缘都是parallel
。但是当位图旋转Y 轴时,边缘将不平行(顶部位图的底部边缘与底部位图的顶部边缘交叉):
我做错什么了吗?