当canvas设置为位图时,Android.Graphics.Camera在哪里设置其X,Y和Z轴?

时间:2012-01-09 17:44:58

标签: android graphics bitmap android-canvas

我希望获得一个位图并按以下方式操作它:enter image description here

我创建了一个空位图,在这个位图上,我画了我需要的东西。现在我需要以类似于此的方式扭曲,因为我将在另一个位图的顶部绘制整个事物。将其视为将纹理应用于盒子。这个盒子只是一个盒子的图片。我认为自己这样做的方法是在主位图上创建位图,并通过Graphics.Camera.getMatrix()修改的矩阵将它们绘制到最终位图上。 我已经有了这个工作,但我的问题是理解如何操纵相机。我不知道相机在矩阵内创建X Y和Z轴的位置。或者矩阵的应用位置。或者只是它们如何结合在一起。

当画布设置为视图时,我知道我可以旋转画布并从那里绘制以创建直线对角线,例如在游戏引擎中绘制一个作用于两个矢量的抛射物。我知道在处理OpenGL时,有一种状态机方法,我可以想象矩阵在3D空间中的位置。但我只是不明白Camera,Matrix和bitmap是如何相关的。

从我的查看起,我设法为此设置了基本解决方案,但还没有能够理解如何调整这个以获得正确的旋转。我已经阅读了文档,但它并没有真正解释Camera,Matrix和canvas之间的关系,除了Camera修改矩阵然后canvas可以根据该矩阵绘制一些东西。

任何人都可以解释我将如何做我在图片中所做的事情吗?我已经知道我将在原始位图中从区域创建位图。然后将两者结合起来,创建右列上的内容,然后旋转画布/位图并从绿色部分获取另一个位图,然后重复整个过程。

由于

1 个答案:

答案 0 :(得分:1)

Camera只是一个实用程序类,可生成可在Canvas上使用的Matrix。生成的Matrix包含适当的变换。你自己说:

  

它并没有真正解释Camera,Matrix和之间的关系   画布超出了Camera修改矩阵然后画布的事实   可以根据该矩阵绘制一些东西。

这就是真的:)