Prolfiic
@Prolfiic
Интересуюсь WEB технологиями.

Как рассчитать полет снаряда в двумерном пространстве под наклоном?

Здравствуйте. Требуется рассчитать траекторию полета снаряда. Вид на карту сверху, под наклоном 45 градусов (как во многих стратегиях). Нужно что-то типа такого:
5bbba5d245a57186550403.jpeg
  • Вопрос задан
  • 566 просмотров
Решения вопроса 1
Две подзадачи:
  1. траектория полёта
  2. проекция на матрицу камеры
 

1. Траектория
  • Вертикальная составляющая скорости снаряда линейно падает. Снаряд вернется на плоскую Землю, когда верхний зуб скорость станет равна начальной со знаком минус:
    график скорости и траектория
    5bbbaf41abc02901256019.png

  • Горизонтальная составляющая скорости снаряда остаётся неизменной, считаем, что пальба в вакууме.

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

2. Проекция
Теперь надо любую точку в этом вашем мире спроецировать на экран, который под 45° к горизонтали. Не считаем, что объекты становятся меньше с удалением, что параллельные прямые сходятся в одной точке и т.п. Просто бросаем любую точку на экран, чтобы упала под прямым углом к плоскости экрана.

Центр экрана будем считать, имеет координаты (0, 0) и смотрит точно на (0, 0, 0) трехмерного мирка. У экрана ось X вправо, ось Y вверх. В мирке ось x влево, ось y вверх, ось z вдаль.

Смещение в мирке по x точно так же добавит X'у экранному.
Смещение в 3D по y добавит экранном Y чуть меньше из-за угла в 45°. Т.е. y домножим на корень-из-2 пополам.
То же со смещением по z.

X = x;
Y = (y + z) * 0.7071;


Предлагаю вам самостоятельно объединить эти два откровения в работающий код.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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