Мне нужно написать метод, который перемещает объект (например, круг) по прямой линии от одной координаты к другой с заданной скоростью. Объект должен попасть в целевую точку и остановиться. Скорость коррелирует со временем, когда объект достигает точки (скорость = 15 эквивалентна времени = 15 мс, например). Если бы кто-то помог мне с математикой здесь, я был бы изящным, пожалуйста.Метод перемещения объекта из точки (x1, y1) в точку (x2, y2) с заданной скоростью по прямой в java
Q
Метод перемещения объекта из точки (x1, y1) в точку (x2, y2) с заданной скоростью по прямой в java
2
A
ответ
7
Формула интерполяции для перехода от точки р0 до точки p1 при постоянной скорости является:
p(t) = p0*(1-t) + p1*t
, где t
время, которое было уменьшено, чтобы варьировать от 0 в начале 1 в конце и p
, p0
и p1
- пары координат (x, y). Поскольку Java не имеет встроенного способа записи формулы интерполяции, вы просто применяете ее к компонентам x и y параллельно. Результат:
t = (time_now - start_time)/total_time;
x = x0*(1-t) + x1*t;
y = y0*(1-t) * y1*t;
Это основной расчет. Для того, чтобы получить объект двигаться, вы выполните следующие действия:
- [Дано: start_time, Total_time, x0, y0, x1, y1]
- положить круг в точке (x0, y0) и установить time_now = start_time
- до time_now == start_time + total_time, вычислить (x, y), используя вышеизложенное, переместить круг в (x, y) и увеличить time_now.
Приращение времени может быть обычным настенным временем, определяемым System.getTimeMillis()
.
Смежные вопросы
- 1. рисовать точки используя matplotlib.pyplot [[x1, y1], [x2, y2]]
- 2. createjs, анимировать линию с x1, y1, x2, y2 координаты
- 3. Как разделить строку (x1, y1) (x2, y2) формат
- 4. лихие d3js с x, y, x1, y1, x2, y2, z
- 5. Как найти Y-Intercept с X1, X2, Y1, Y2
- 6. Рассчитать x2, если мы знаем расстояние, x1, y1, y2
- 7. Как вычислить точку (x2, y2) с точкой (x1, y1) и углом
- 8. SVG, оживить линию от x1, y1 до x2, y2?
- 9. точки линий x1, x2, y1, y2 не совпадают с узлами в радиальном дереве
- 10. Центрируйте штырь в середине квадрата с четырьмя координатами (x1, y1) (x2, y2) (x3, y3), (x4, y4)
- 11. , строя данные с x1, y1, x2, y2 на том же рисунке - matlab
- 12. Управляйте на y из списка {{x1, y1}, {x2, y2}, ... {xn, yn}}
- 13. Python разрыв строки в длинный «с x1 как y1, x2, как y2, x3, как у3» заявление
- 14. как бы я конвертировать SQRT (x2 - x1)^2 (y2 - y1)^2 для соответствующего кода Java
- 15. Перемещение объекта из точки A в точку B по прямой линии с постоянной скоростью
- 16. C# Windows 10 App - Draw Line Slowly From X1, Y1 to X2, Y2
- 17. Любой лучший способ генерации кортежа всех возможных кортежей в виде (x1, y1, x2, y2)?
- 18. При рисовании дуги с использованием CGContextAddArcToPoint(), что означает (x1, y1) и (x2, y2)?
- 19. Кнопка не работает, чтобы нарисовать линейный график с его координатой (x1, x2, y1, y2)
- 20. Рассчитать x1 x2 y1 y2 от центра координат, высоты и ширины
- 21. Как нарисовать цилиндр с использованием matplotlib вдоль длины точки (x1, y1) и (x2, y2) с заданным радиусом?
- 22. Нарисуйте линию между двумя точками (x1, y1, z1) до (x2, y2, z2)
- 23. Рассчитать атрибут линейного градиента SVG x1 y1 x2 y2, если мы знаем угол?
- 24. Построение двух точек (x1, y1) и (x2, y2), которые сохраняются в матрице, а затем присоединяют их по строке в R
- 25. В файле с 10 000 точками формы X1 y1 X2 y2 ,,, Как определить не менее 4, которые образуют квадрат? Java
- 26. Jquery UI сдерживания x1, x2
- 27. Найти Min (x1, x1 * x2, x1 * x2 * x3, ..., x1 * x2 * ... * xN) в Matlab
- 28. Алгоритм для отражения точки по прямой
- 29. Перемещение тела из точки A (x1, 0) в B (x2, 0) со скоростью v
- 30. Переместить спрайт из точки в точку с той же скоростью
++ Возможно, вы захотите немного поспать в цикле или, возможно, отключите его от события таймера. Также используйте> = для сравнения времени, потому что == может быть пропущен. –
Хорошие очки. Эффект краевого эффекта, когда требуется увеличить инкремент за считанные секунды, нужно учитывать ... вы не хотите перевыполнять конечную точку только потому, что время прошло за прошедшее время. –