Друзья) помогите с математикой=) суть задачи: нужно рассчитать необходимую начальную скорость для снаряда - так чтобы он попал в указанную мышкой точку(вектор в мировом пространстве) при это угол стрельбы (питч) всегда 45. градусов, целимся только по XY ,гравитация стандартная
для чего нужно: топ-даун шутер, запуск снарядов по параболической траектории (красиво чтоб было в общем) типа гранаты и им подобная лабуда)
PS. есть решение при котором начальная скорость снаряда установлена и вычисляется необходимый угол для попадания) но это мне не подходит, это больше для артиллерии годится)
v=sqrt(d*g) d-расстояние до цели, g-ускорение свободного падения верно при условвии если цель и точка пуска находятся в одной горизонтальной плоскости, и угол пуска к горизонту 45градусов
_________________ we need to go deeper
v=sqrt(d*g) d-расстояние до цели, g-ускорение свободного падения верно при условвии если цель и точка пуска находятся в одной горизонтальной плоскости, и угол пуска к горизонту 45градусов
Спасибо) работает, не сочтите за наглость, хотя это она и есть) но может подскажите что делать если стрелок и цель находятся на разных высотах)?
уравнение составить и решить. для одной высоты и при 45 град -уравнение простое могу посмотреть что там получается но конкретно сейчас- лень, так что начни своими силами, сложно быть не должно, сложно станет когда по движущейся мишени попасть надо будет.
_________________ we need to go deeper
по сути нужно взять готовое решение "уравнения для расчета угла"(которое у тебя уже есть) и вынести V по одну сторону "="а все остальное по другую. сначала вынести чтоб корень квадратный был только по одну сторону, потом избавляемся от него(возводим в обе стороны), ну а дальше ничего сложного по одному члену уравнения перекидываем известные вправо слева сотавляем V/
_________________ we need to go deeper
при чем tg(45)=1 cos(45)=1/sqrt(2) -> cos^2(45) =1/2 тогда: y=x-gx^2/V^2 y-x=-gx^2/V^2 x-y=gx^2/V^2 gx^2 / x-y =V^2 получается V=sqrt(g*x^2 / x-y) V=sqrt((g*x^2)/( x-y)) - если скобки расставить как в коде... проверь а то мало ли где-то и затупить мог. xy - корды цели в плоскости вертикальной, относительно стрелка, стрелок в нулевых координатах.
_________________ we need to go deeper Последний раз редактировалось Snake 15 янв 2018, 13:52, всего редактировалось 1 раз.
Зажимаем ЛКМ и заряжаем орудие, отпускаем и снаряд летит. Аля базука из Worms.
и куда он попадет? а нужно чтоб попал в неподвижную цель со 100% вероятностью.
Цитата:
нужно рассчитать необходимую начальную скорость для снаряда - так чтобы он попал в указанную мышкой точку
четко же в вопросе сформулировано. тоесть: если продолжать сравнение с Worms то нужно узнать на сколько времени нужно зажать "кнопку огонь". тоесть: узнать какая начальная скорость у снаряда должна быть чтоб попасть в цель.
и еще сюрприз: физические обьекты физикса не летают по параболе! у них довольно большая погрешность(в принципе которую можно уменьшить) расчитать траекторию на CPU и двигать обьект в коде - дешевле чем на физиксе кстати, уравнение баллистической траектории - очень простое. и доступно положение обьекта в любой момент времени сразу. Все столкновения со статическими обьектами тоже известны мгновенно. Абсолютно детерминированная система. давно делал:
немного по нубски, но я им и был 2 года назад... но тем не менее это "пруф оф концепт".
я не заглядывал в код проджектайл мувмент компонента, что он там использует для вычисления траектории( матан свой или физикса), но те кто хотят его использовать нужно ознакомиться сначала как он работает.
_________________ we need to go deeper