Две подзадачи:
- траектория полёта
- проекция на матрицу камеры
1. Траектория- Вертикальная составляющая скорости снаряда линейно падает. Снаряд вернется на плоскую Землю, когда верхний зуб скорость станет равна начальной со знаком минус:
график скорости и траектория
- Горизонтальная составляющая скорости снаряда остаётся неизменной, считаем, что пальба в вакууме.
Разложили начальный вектор пальбы на верт. и гор. составляющие и получаете положение снаряда в любой момент времени в виде координат
(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;
Предлагаю вам самостоятельно объединить эти два откровения в работающий код.