3d куб с использованием холста. Нужно немного улучшить

Я сделал этот 3d куб, используя следующий код

Matrix mMatrix = canvas.getMatrix();
canvas.save();
camera.save();
camera.rotateY(-angle);
camera.getMatrix(mMatrix);
mMatrix.preTranslate(-width, 0);
mMatrix.postTranslate(width, 0);
canvas.concat(mMatrix);
canvas.drawBitmap(bmp1, 0, 0, null);
camera.restore();
canvas.restore();
camera.rotateY(90 - angle);
camera.getMatrix(mMatrix);
mMatrix.preTranslate(-width, 0);
mMatrix.postTranslate(width2, 0);
canvas.concat(mMatrix);
canvas.drawBitmap(bmp2, width, 0, null);

Это то, что он дает

Но мне нужно

Это потому, что, когда камера поворачивает изображения, часть изображения скрывается. Как это

Но я думаю, что это можно сделать.

1 ответ

На самом деле это было довольно легко. Изображение должно было быть переведено на половину ширины/высоты вдоль оси, в которую он поворачивался.

Итак, следующие изменения сделали это:

mMatrix.preTranslate(-width, -height / 2);
mMatrix.postTranslate(width, height / 2);

licensed under cc by-sa 3.0 with attribution.