Как реализовать движение объекта? Есть объект, который должен двигаться по заданному направлению в 2д, задана скорость с которой этот объект должен двигается и угол (направление движения 0-360град). Нужно реализовать передвижение при помощи функции, которая принимает 2 параметра X и Y.
Мой ход действий:1) разложить скорость на две скорости проекции
Vx=V*cos(alpha); Vy=V*sin(alpha)
2) нахожу положение объекта в определённый момент
x=Vx*t*cos(alpha); y=Vy*t*sin(alpha);
3) подставляю получившиеся координаты в функцию (данная функция вызывается раз в t секунд, соответственно переменная t меняется)
Проблема заключается в том, что объект движется не в том направлении. Как так?

24 Апр 2020 в 19:47
203 +1
1
Ответы
1

Возможно, проблема связана с тем, что в формуле для нахождения нового положения объекта вы не учитываете его текущее положение. Для того чтобы объект двигался в заданном направлении, вам необходимо добавить к текущему положению объекта новые координаты, которые вы вычислили с учетом скорости и угла.

Попробуйте модифицировать вашу формулу следующим образом:

новая позиция по x = текущий x + Vx t cos(alpha)
новая позиция по y = текущий y + Vy t sin(alpha)

где текущий x и y - это текущие координаты объекта.

Таким образом, объект будет двигаться в переданном направлении. Попробуйте внести эту правку в вашу функцию и проверить, как будет вести себя объект.

18 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир