好的,我有一个接受变量的方法:一个图像,int x,int y,浮点角。
我使用画布,并使用Matrix transform = new Matrix();旋转图像的中心。但是,我希望在x和y的坐标下绘制图像。由于某种原因,我使用的所有不同方法都不起作用。有时它会在0,0处绘制,或者甚至不显示在屏幕上。
下面是我的伪代码:
//pseudo-code: img_width, img_height
public void drawImage(Bitmap img, int x, int y, float angle)
{
transform.setTranslate(x, y);
我试着旋转一个位图(比画布大),使它与画布居中,并在时间上重复,以使它看起来像旋转。我想发布一张图片来解释这种情况,但我做不到(没有足够的声誉;这很可悲,因为我花了很多时间:( )。不管怎样,我希望你能理解问题出在哪里。
因为我不希望绘制到画布上的其余可绘制内容也被旋转,所以我不能使用Canvas.rotate()。因此,我尝试了使用矩阵的所有不同组合,并使用偏移量将位图绘制到画布上,例如:
Matrix matrix = new Matrix();
matrix.postRotate(degree); //degree is increasing with time
mrotatedback
我在我的游戏中有一些代码,可以在画布上旋转图标,如下所示: if (rotate > 0) {
context.translate(canvasWidth / 2, canvasHeight / 2);
context.rotate(rotate);
context.translate(-canvasWidth / 2, -canvasHeight / 2);
} 没什么你没见过的。我还添加了一个函数,可以在更大的画布中平铺图标,如下所示: var x = 0;
var y = 0;
for (var i = 0; i < totalUnits; i++