Применить силу в ньютонах к объекту
У меня проблемы с выяснением, насколько мне нужно изменить скорость объекта, если к этому объекту приложена сила в ньютонах:
Что я имею:
нет гравитации или других сил
deltaTime - время в секундах с момента последнего тика
v - скорость движения объекта в единицах / секунду
м - масса объекта в кг
д - направление приложенной силы
Что я хочу сделать:
на время одного тика (deltaTime) я хочу применить силу x Newton
в направлении d
к объекту. На самом деле я хочу изменить скорость объекта соответственно.
Что я сделал:
Я пытался прийти из 1 N = 1 kg * m/s2
к изменению скорости, но я немного растерялся, так как не могу понять, как проверить свои предположения.
Обновление То, что мне действительно нужно, - это ускорение, вызванное силой во время deltaTime
так что я могу рассчитать мою новую скорость, добавив ускорение следующим образом:newVelocity = velocity + accelerationCausedByTheForceInNewton
1 ответ
Смотрите также: https://en.wikipedia.org/wiki/Equations_of_motion
Предполагая систему координат (направления x и y), вы можете разделить их... ваше направление d будет иметь компоненты x и y, а также вашу скорость и ускорение. На вашей картинке ускорение "прямо вниз" (ax = 0), а ваша скорость "только вправо" (vy = 0), но я сомневаюсь, что вы можете предполагать это всегда, поэтому я не буду. Они разбивают все на компоненты x и y:
x1 = x0 + vx0(t1 - t0) + (1/2)(ax0)((t1 - t0)**2)
y1 = y0 + vy0(t1 - t0) + (1/2)(ay0)((t1 - t0)**2)
также новые скорости при t1:
vx1 = vx0 + ax0(t1 - t0)
vy1 = vy0 + ay0(t1 - t0)
Итак, ваше новое местоположение x представляет собой (1) начальное местоположение x, добавленное к (2) x-компоненту скорости, умноженной на delta-t, добавленному к (3) половине x-составляющей времени ускорения, delta-t- в квадрате. Это может быть проще, если, как на вашей картинке vx = 0
и / или ay = 0
, но приведенные выше уравнения будут работать для общего случая.
PS, на основе F=ma
, если вы знаете только силу F, входящую в, то:
ax0 = Fx0 / m
ay0 = Fy0 / m