Полезное

Мы Вконтакте

Discord канал

#
Пред.
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 138
Друзья) помогите с математикой=)
суть задачи:
нужно рассчитать необходимую начальную скорость для снаряда - так чтобы он попал в указанную мышкой точку(вектор в мировом пространстве)
при это угол стрельбы (питч) всегда 45. градусов, целимся только по XY ,гравитация стандартная

для чего нужно: топ-даун шутер, запуск снарядов по параболической траектории (красиво чтоб было в общем) типа гранаты и им подобная лабуда)


PS. есть решение при котором начальная скорость снаряда установлена и вычисляется необходимый угол для попадания) но это мне не подходит, это больше для артиллерии годится)
Аватара пользователя
Пользователь
Сообщения: 2319
v=sqrt(d*g)
d-расстояние до цели, g-ускорение свободного падения
верно при условвии если цель и точка пуска находятся в одной горизонтальной плоскости, и угол пуска к горизонту 45градусов
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 138
Snake писал(а):
v=sqrt(d*g)
d-расстояние до цели, g-ускорение свободного падения
верно при условвии если цель и точка пуска находятся в одной горизонтальной плоскости, и угол пуска к горизонту 45градусов


Спасибо) работает, не сочтите за наглость, хотя это она и есть) но может подскажите что делать если стрелок и цель находятся на разных высотах)?
Аватара пользователя
Пользователь
Сообщения: 2319
уравнение составить и решить.
для одной высоты и при 45 град -уравнение простое
могу посмотреть что там получается но конкретно сейчас- лень, так что начни своими силами, сложно быть не должно, сложно станет когда по движущейся мишени попасть надо будет.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
по сути нужно взять готовое решение "уравнения для расчета угла"(которое у тебя уже есть) и вынести V по одну сторону "="а все остальное по другую. сначала вынести чтоб корень квадратный был только по одну сторону, потом избавляемся от него(возводим в обе стороны), ну а дальше ничего сложного по одному члену уравнения перекидываем известные вправо слева сотавляем V/
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 48
Раз, два, три. Но я не понял зачем тебе уравнение. Физика в движке сама всё сделает ты только подай импульс снаряду.
_________________
by Starter
Аватара пользователя
Пользователь
Сообщения: 2319
Starter, так ему как раз нужно рассчитывать силу импульса...

вот из этого вида из последней ссылки проще всего V вынести V=бла-бла...
Изображение
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
при чем
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 раз.
Аватара пользователя
Пользователь
Сообщения: 48
Snake писал(а):
Starter, так ему как раз нужно рассчитывать силу импульса...

Зачем? Зажимаем ЛКМ и заряжаем орудие, отпускаем и снаряд летит. Аля базука из Worms.
_________________
by Starter
Аватара пользователя
Пользователь
Сообщения: 2319
Цитата:
Зажимаем ЛКМ и заряжаем орудие, отпускаем и снаряд летит. Аля базука из Worms.

и куда он попадет?
а нужно чтоб попал в неподвижную цель со 100% вероятностью.
Цитата:
нужно рассчитать необходимую начальную скорость для снаряда - так чтобы он попал в указанную мышкой точку

четко же в вопросе сформулировано.
тоесть: если продолжать сравнение с Worms то нужно узнать на сколько времени нужно зажать "кнопку огонь".
тоесть: узнать какая начальная скорость у снаряда должна быть чтоб попасть в цель.

и еще сюрприз: физические обьекты физикса не летают по параболе! у них довольно большая погрешность(в принципе которую можно уменьшить)
расчитать траекторию на CPU и двигать обьект в коде - дешевле чем на физиксе кстати, уравнение баллистической траектории - очень простое.
и доступно положение обьекта в любой момент времени сразу. Все столкновения со статическими обьектами тоже известны мгновенно.
Абсолютно детерминированная система.
давно делал:

немного по нубски, но я им и был 2 года назад... но тем не менее это "пруф оф концепт".

я не заглядывал в код проджектайл мувмент компонента, что он там использует для вычисления траектории( матан свой или физикса),
но те кто хотят его использовать нужно ознакомиться сначала как он работает.
_________________
we need to go deeper


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница