Java 如何使位图移动到中心?
我想让Java 如何使位图移动到中心?,java,Java,我想让位图自动移向我的画布的中心。 我尝试了下面的代码,但它没有按我希望的那样工作 位图通常不直接指向中心 或者,位图可能到达屏幕的两个中心轴之一,然后转到中心 canvasWidth = canvas.getWidth(); canvasHeight = canvas.getHeight(); if(mBitmapX < canvasWidth/2){ mBitmapX = mBitmapX + mBitmapSpeed; }else{ mBitmapX = mBitma
位图
自动移向我的画布的中心
。
我尝试了下面的代码,但它没有按我希望的那样工作
位图通常不直接指向中心
或者,位图可能到达屏幕的两个中心轴之一,然后转到中心
canvasWidth = canvas.getWidth();
canvasHeight = canvas.getHeight();
if(mBitmapX < canvasWidth/2){
mBitmapX = mBitmapX + mBitmapSpeed;
}else{
mBitmapX = mBitmapX - mBitmapSpeed;
}
if(mBitmapY < canvasHeight/2){
mBitmapY = mBitmapY + mBitmapSpeed;
}else{
mBitmapY = mBitmapY - mBitmapSpeed;
}
canvasWidth=canvas.getWidth();
canvasHeight=canvas.getHeight();
如果(mBitmapX<画布宽度/2){
mBitmapX=mBitmapX+mBitmapSpeed;
}否则{
mBitmapX=mBitmapX-mBitmapSpeed;
}
如果(mbitmay<画布高度/2){
mbitmay=mbitmay+mBitmapSpeed;
}否则{
mbitmay=mbitmay-mBitmapSpeed;
}
这将使您从任何起始位置向中心点移动一步距离mBitmapSpeed:
double x = /* canvas.getX() + */ canvas.getWidth() / 2 - mBitmapX;
double y = /* canvas.getY() + */ canvas.getHeight() / 2 - mBitmapY;
double dist = Math.sqrt(x*x + y*y);
double step = Math.min(dist, mBitmapSpeed);
if (dist != 0) {
mBitmapX += x * step / dist;
mBitmapY += y * step / dist;
}
注意,这假设画布坐标从(0,0)开始。如果没有,您需要将等效调用添加到注释掉的位。欢迎使用SO。你已经清楚地描述了应该发生的事情。请描述实际发生的情况,这可能会帮助那些想回答你问题的人。您可以使用按钮来执行此操作