Тело движется с постоянным ускорением по x и по y. Дано: начальные и конечные координаты по {x,y}, ускорение по x, y. А также соотношение Vx к Vy (начальными скоростями). Надо найти |Vx| и |Vy|. Третий день бьюсь.
Для примера: вспомните баллистику игры вормс. Так вот надо написать AI. Нужно при указанном ветре и гравитации попасть в опред точку.
Направление мыслительной деятельности:

Код:
{ x = w*t*t/2 + Vx*t + x0
{ y = g*t*t/2 + Vy*t + y0
{ w*t*t/2 + Vx*t - dx = 0
{ g*t*t/2 + Vy*t - dy = 0
Запуляем тело под углом "a" к горизонту. Тогда
Vx = V*cos(a)
Vy = V*sin(a)
тогда Vy = Vx*tg(a), подставляем в систему Vy.
{ w*t*t/2 + Vx*t - dx = 0
{ g*t*t/2 + Vx*tg(a)*t - dy = 0
домножаем верхнюю строку на tg(a) и вычитаем нижнюю. Получаем
t*t*(w*tg(a) - g)/2 - dx*tg(a) + dy = 0
, тогда
t = Math.sqrt(2*(dx*tg(a) - dy)/(w*tg(a)-g))
Из этого следует, что при слабом или противоположном по отношению к Vx ветре решения нет. А оно должно быть. Это очевидно. Стоит просто пульнуть тело посильнее в нужную сторону и оно попадет куда угодно.
Никак не могу найти ошибку в логике.