Как бы я написал функцию для перемещения из точки 1 в точку 2 через некоторое время?
Например:
Point move(Point point1, Point point2, long timeInMilliseconds, int speedPerSecond)
{
// basic stuff
int pointsMoved = speedPerSecond * 1000 / timeInMilliseconds;
if (point1.x == point2.x && point1.y > point2.y)
return (new Point(point1.x, Math.min(point2.y, point1.y + pointsMoved)));
...
}
Да, на этом мои грустные математические навыки заканчиваются.
Как мне двигаться, если движение не диагональное или вертикальное? если есть угол?
Кстати, я планирую пересчитать текущую точку на основе точки 1 и 2, я не буду обновлять точку 1 и точку 2 из вызывающей стороны, поэтому вызывающая сторона будет выглядеть следующим образом:
Point currentPoint = move(originalPoint, finalPoint, getCurrentTime() - originalTime, 10);
Подпись функции не обязательно должна быть той, о которой я говорил. Он может очень хорошо использовать градусы, но это будет еще одна вещь, чтобы выяснить, если мне придется использовать градусы.