Ускорение колеса
Я пытаюсь вычислить ускорение вращающегося колеса, которое я реализовал.
Но мне трудно понять, как я это вычислю. Так что любые советы, которые могут мне помочь, приветствуются
Само колесо создано на моем onDraw()
метод.
Как я вращаю колесо
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (rotationEnabled) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_MOVE:
double currentAngle = getAngle(motionEvent.getX(), motionEvent.getY());
rotateMe((float) (startAngle - currentAngle));
startAngle = startAngle - currentAngle;
break;
case MotionEvent.ACTION_UP:
break;
}
}
return false;
}
private double getAngle(double xTouch, double yTouch) {
double x = xTouch - (getMeasuredWidth() / 2d);
double y = getMeasuredHeight() - yTouch - (getMeasuredHeight() / 2d);
switch (getQuadrant(x, y)) {
case 1:
return Math.asin(y / Math.hypot(x, y)) * 180 / Math.PI;
case 2:
return 180 - Math.asin(y / Math.hypot(x, y)) * 180 / Math.PI;
case 3:
return 180 + (-1 * Math.asin(y / Math.hypot(x, y)) * 180 / Math.PI);
case 4:
return 360 + Math.asin(y / Math.hypot(x, y)) * 180 / Math.PI;
default:
return 0;
}
}
private static int getQuadrant(double x, double y) {
if (x >= 0) {
return y >= 0 ? 1 : 4;
} else {
return y >= 0 ? 2 : 3;
}
}
private void rotateMe(float degrees) {
setRotation(degrees);
}
Обновить
Цель состоит в том, чтобы установить таймер. Это идет от минут до часов. Мне нужно ускорение, чтобы прыгать с минут до часов быстрее. Все должно зависеть от того, насколько быстро пользователь тянет колесо
То есть после события касания (когда пользователь перестает касаться колеса). Не должно быть никакой скорости, связанной с этим.