Две подзадачи:
- траектория полёта
- проекция на матрицу камеры
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;
Предлагаю вам самостоятельно объединить эти два откровения в работающий код.