Как реализовать простую физику 2D самолета?

Хочу реализовать простую физику самолета-кукурузника (вид сбоку) для анимации в canvas — с заваливанием самолета при большом угле, с планированием и т.д. Понравилось, как реализовано было в старой игре на телефоны Bluetooth Biplanes.

Sky-Aces-0.png
Видео: Youtube

По физике на самолет действует четыре силы:
  • Сила тяжести (вниз) = m * g
  • Подъемная сила (перпендикулярно крылу, вверх) = 1/2*сопротивление воздуха*подъемный коэффициент (в зависимости от угла крыла)*квадрат скорости
  • Затормаживающая сила = 1/2*сопротивление воздуха*тормозной коэффициент (в зависимости от угла крыла)*квадрат скорости
  • Сила двигателя = m * ускорение


Я догадываюсь, что это все можно упростить, но не понимаю как. Возможно, у кого-нибудь уже были наброски подобного?
  • Вопрос задан
  • 2132 просмотра
Решения вопроса 1
@napa3um
Примерно такая физика (рассчитывается каждый кадр):
цикл(вечно) {
  X1 = X0 + Vx;
  Y1 = Y0 + Vy;
  Vx1 = Vx0 + ax;
  Vy1 = Vy0 + ay;
  НарисоватьСамолёт(X1, Y1);
  X0 = X1;
  Y0 = Y1;
  { ax, ay } = ПосчитатьУскоренияВЗависимостиОтУглаСамолётаИТекущейМощностиТурбины();
  ay = ay - 9.8;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@sanex3339
Вам нужны вектора(ы).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы