im пытается повернуть растровое изображение в соответствии с направлением движения на моем событии движения, скажем, у меня есть изображение автомобиля с высоты, я хочу, чтобы автомобиль столкнулся в направлении моего движения , если им двигаться влево он должен повернуть на 180 град, и до он должен обратиться к 90 и так далее, пожалуйста excuss мой плохой английский, IV удалось лишь повернуть изображение acording до 0 является центромПоверните растровое изображение в направлении движения
//this is how i rotate
double ComputeAngle(float x, float y){
final double RADS_TO_DEGREES = 360/(Math.PI * 2);
double result = Math.atan2(y,x) * RADS_TO_DEGREES;
if (result < 0){
result = 360 + result;
}
return result;
}
//bitmap to rotate pretend its a car from top view
Bitmap bitmap;
//draws bitmap
private final RectF tmpRF = new RectF();
final void drawStrokePoint(Canvas c, float x, float y, float r) {
tmpRF.set(x-r,y-r,x+r,y+r);
//compute rotation
float rotation = (float)ComputeAngle(x, y);
Matrix matrix = new Matrix();
matrix.postTranslate(-bitmap.getWidth()/2, -bitmap.getHeight()/2);
matrix.postRotate(rotation);
matrix.postTranslate(x, y);
//draw bitmap
c.drawBitmap(mAirbrushBits, matrix, null);
}
//get x y cords and draw at x y position
@Override
public boolean onTouchEvent(MotionEvent event)
{
float x = event.getX();
float y = event.getY();
switch (event.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
strokeX = x;
strokeY = y;
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_MOVE:
drawStrokePoint(drawCanvas, x, y, currentWidth);
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
}
return true;
}
Спасибо за переигрывая так быстро, я немного запутался с oldx, старый у, где я могу получить, что, плз простите мой английский, спасибо –