При изображении поведения брошенного тела (без учета сопр. воздуха) следует заметить, что по горизонтали движение тела является равномерным: проекция скорости на горизонтальную ось не меняется. Поэтому координата тела по оси икс зависит от времени линейно:
x(t) = x0 + v_x*t
Где x0 - начальная координата, v_x - скорость по горизонтали, обе константы.
Движение тела по вертикальной оси является равноускоренным под действием силы тяжести, и координата зависит от времени квадратично:
y(t) = y0 + v_y*t + g*t*t/2
где y0 - начальная координата, v_y - начальная скорость по вертикали, g - ускорение свободного падения.

Так что синусы здесь вычислять не надо, нужны только умножения - и то, если не заметить возможности устранить и их.

Для изображения движения на экране нужно знать значения координат через равные промежутки времени dt. Если вычислять не сами координаты, а их разность с предыдущими значениями, то можно выразить значение каждой координаты в следующий момент времени через ее значение в предыдущий момент времени. Для координаты по горизонтали получим:

x[i] = x[i-1] + v_x*dt
Поскольку v_x и dt обе являются константами - то их произведение нет необходимости вычислять каждый раз заново. Можно его вычислить один раз и получить для координаты по оси икс:
x[i] = x[i-1] + dx.
Где dx = v_x*dt - константа. Умножение уходит, остается только сложение.

Аналогично можно поступить с вертикальной координатой:
y[i] = y[i-1] + v_y[i-1]*dt + g*dt*dt/2
v_y[i] = v_y[i-1] + g*dt
Здесь g*dt*dt/2 и g*dt являются постоянными величинами, так что их не надо вычислять каждый кадр, можно вычислить один раз перед выстрелом. В результате снова имеем только сложение, без умножений, не то что синусов.

Эффективный способ вычисления синусов (если для каких-то целей нужно много синусов в последовательности) через разностные уравнения подсказал Titus. Если нужен каждый раз синус разного угла (а не в последовательности) - то нужно использовать таблицы. Размер таблиц подбирать исходя из требуемой точности. Если нужна такая точность, что таблицы не умещаются в память - то использовать линейную интерполяцию между соседними значениями в таблице.