2016-11-01 8 views
0

Я использую эту перетащить формулу в игре моделирования:Java Простой Drag Уравнение

double drag = (p * Math.pow(u, 2) * C * A)/2; 

(см Drag on Wikipedia)

Это уравнение работает на короткое время, пока сила сопротивления больше, чем скорость , и объект (ракета) начинает падать, а не замедляться. В настоящее время я вычитаю силу перетаскивания из y и x, используя триггер для вычисления изменения для каждого.

Является ли их более простая формула или способ, которым я могу заставить это работать, включая кадры в секунду, которые установлены в 60?

+0

FPS? Что это? «футов в секунду»? Это всего лишь единицы скорости. – duffymo

+0

Кадры в секунду – theTechnoKid

+2

Сила не может быть больше скорости (единицы несовместимы). Если сила сопротивления больше тяги, ваша ракета замедляется. Перетаскивание не может сделать что-либо падать (перетащить затем начнет работать, чтобы замедлить падение) – Tibrogargan

ответ

1

Сила не может быть больше скорости (единицы несовместимы). Если сила сопротивления больше тяги, ваша ракета замедляется. Перетаскивание не может сделать что-либо падать (перетаскивание затем начнет работать, чтобы замедлить падение).

Force = масса * ускорение, поэтому ускорение = сила/масса. Ускорение - это изменение скорости. На вашей ракете действуют три отдельные силы: удар ракеты, гравитация и сопротивление. Вам нужно вычислить конечную силу (векторный продукт), которая работает на вашей ракете [путем «добавления» их вместе], чтобы определить ускорение, а затем, как это изменит скорость, изменит каждый кадр.