【问题标题】:3d cube using canvas. Need a little improvement使用画布的 3d 立方体。需要一点改进
【发布时间】:2012-08-30 21:02:13
【问题描述】:

我使用以下代码制作了这个 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);

这就是它所提供的

但我需要的是

这是因为当相机旋转图像时,图像的某些部分会被隐藏。 赞这个

但我认为这是可以做到的。

【问题讨论】:

  • 能分享一下创建cube的代码吗

标签: android android-animation android-canvas live-wallpaper


【解决方案1】:

其实很简单。图像必须沿其旋转的轴平移其宽度/高度的一半。

所以下面的改动做到了

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

【讨论】:

  • @Vivekanand 代码在问题中。在对答案进行更改后使用它。
  • 很抱歉这么不正式,因为情况危急。我真的不想要完整的代码一些关于如何完成的教程将不胜感激,谢谢
  • @ShubhadeepChaudhuri,你能分享创建 3d 立方体的代码吗
猜你喜欢
  • 2013-05-20
  • 1970-01-01
  • 2011-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多