Войти
ПрограммированиеФорумФизика

Полет мины по параболе.

Страницы: 1 2 3 4 Следующая »
#0
9:05, 28 сен. 2018

Всем здравствуйте.
Такой вопрос, буду говорить простым языком, что бы было понятнее.
Значит так:
1. Есть миномет.
2. Есть конечная точка попадания мины (aim).

Так как aim скрыт за неким препятствием (например за стеной), мне нужно рассчитать параболу полета мины до aim, или проще, нужно рассчитать начальную скорость и угол выстрела мины.

Кто может подсказать, каким путем можно это сделать проще.
Может быть есть готовый программный код или есть нечто похожее?


#1
9:14, 28 сен. 2018

Снаряды летят не по параболе в реальном мире. Баллистическая кривая - не парабола.

#2
9:16, 28 сен. 2018

Zab

Ну и.... Дальше то что? Суть вопроса от этого не меняется.
Мне не нужен точный расчет, хотя бы примерный.

Изменил тему, что бы было понятнее. Полет не снаряда а мины.

Я сколько смотрел тем (математика, физика, программирование) в основном, везде, построение траектории от начальной точки (миномета), а мне нужно наоборот от конечной точки до миномета.
Расчет наподобие как в игре Angry Birds

#3
9:21, 28 сен. 2018

Проблема то в чем? Берешь формулу Эйлера и считаешь. Тут всего две силы - тяжесть и сопротивление воздуха.
Парабола будет, кстати, если воздуха нет.
Численно посчитать легко, все необходимое есть в школьном учебнике. А вот аналитически, с сопротивлением воздуха - фиг посчитаешь.

#4
9:34, 28 сен. 2018

Zab
> Численно посчитать легко, все необходимое есть в школьном учебнике.
Численно от конечной к начальной точке не посчитаешь.
tonline_kms65
> Мне не нужен точный расчет, хотя бы примерный.
Тогда про сопротивление воздуха забудь, а дальше - квадратное уравнение.
tonline_kms65
> нужно рассчитать начальную скорость и угол выстрела мины.
У тебя миномёт позволяет задать начальную скорость? Она фиксирована, нужно рассчитать только угол.

#5
9:40, 28 сен. 2018

Mikle
> У тебя миномёт позволяет задать начальную скорость? Она фиксирована, нужно
> рассчитать только угол.

Конечно могу изменить как направление выстрела(угол)  так и начальную скорость выстрела мины.
Я хочу что бы ствол гранатомета (3d модели) устанавливался по просчитанному вектору, хотя бы примерно(это нужно просто для визуального эффекта), сам взрыв я могу произвести в любой точке, независимо ни от чего.
Конечно было бы вообще прекрасно если удастся получить правильные данные выстрела, тогда можно стрелять реальными 3d моделями гранат, и уже эти модельки взрывать в конечной точке.

#6
10:02, 28 сен. 2018

tonline_kms65
> Конечно могу изменить как направление выстрела(угол)  так и начальную скорость
> выстрела мины.
Углы и начальная скорость как-то ограничены?
Я бы, наверное, добавил ограничение снизу на скорость..
Миномет и цель могут находится на разных высотах? Высота стены известна?
Миномет должен выстрелить так, чтоб 100% не попасть в стенку, а сразу точно в цель?

#7
10:07, 28 сен. 2018

Для миномета характерна низкая начальная скорость снаряда и большой его размер. Т.е. кривая его полета - ну вообще ни разу не парабола, даже приблизительно. Дальность полета меньше более чем втрое, по сравнению с параболой, насчитанной по той же начальной скорости. Это вам не противотанковая пушка. Если начальный участок траектории еще чем-то параболу напоминает, то низходящая часть - почти вертикально вниз, причем, с установившейся фиксированной скоростью. Очень сильно влияет ветер.
Аналитически баллистическая кривая не считается. Либо по таблицам, либо численно.
Если надо вычислить как прицелиться чтобы попасть, самое простое - считать дихотомией.

#8
10:28, 28 сен. 2018

Zegalur
> Углы и начальная скорость как-то ограничены?
Углы я ограничил, что бы не было визуальных косяков. Но по идее я конечно могу снять эти ограничения, а уже по ходу можно будет определиться нужны эти ограничения или нет.

Сам миномет установлен на 3d модели дрона-танка. Пулемет с авто-наведением и гранатомет.
Вот с гранатометом я и хочу поэкспериментировать. Для начала нужно понять принцип расчета траектории мины, потом на основе этого работать с самой моделью гранатомета (подогнать кости для поворотов pitch, yaw, сделать анимацию на выстрел и т.д.).
Сколько смотрел похожих тем, почему то не нахожу подобного. В основном все прямолинейно. Ракеты, пулеметы и т.д.
Безымянный1 | Полет мины по параболе.

#9
10:33, 28 сен. 2018

Zegalur
> Миномет и цель могут находится на разных высотах?
> Высота стены известна?
Да, могут находиться на разной высоте.
Честно сказать, об этом пока не думал. Как то даже не сообразил. Дрон это даже не игрок, это HPC. Должен сам принимать решение как стрелять.


> Миномет должен выстрелить так, чтоб 100% не попасть в стенку, а сразу точно в цель?
Не обязательно, я задам или задержку до взрыва, или взрывать буду на определенном расстоянии от цели, над землей. (Мина взрываться будет обязательно).

#10
10:44, 28 сен. 2018

Численный расчет траектории:
dx = v*dt + (f/m)*dt*dt/2
dv = (f/m)*dt
f - сумма сил
dt - шаг моделирования по времени
v - текущая скорость на этом шаге
m - масса снаряда

Сила тяжести: f1 = mg, направлена вниз.
Сила сопротивления воздуха: f2 = s*mod(v)^3, направлена против вектора скорости.

Мог бы и сам все это прочитать в учебнике физики за 9й класс.

#11
10:49, 28 сен. 2018

Zab

Вот посмотри что я нашел:

procedure TForm1.Button2Click(Sender: TObject);
G = 9.81;
Pi = 3.14;

V0:real;    //начальная скорость
A:real;     //угол броска
X:integer;  //координата Х
Y:integer;  //координата Y
T:real;     //время

Form1.DoubleBuffered:=True;
with Image1.Canvas do
  begin
      while T<5 Do
      begin
        MoveTo(0,380); LineTo(600,380);  //ось X
        MoveTo(5,0); LineTo(5,500);      //ось Y
        T:=T+0.005;
        Y := 380-Round(30*(V0*Sin(A*Pi/180)*T-G*T*T/2));
        X := 5+Round(10*(V0*Cos(A*Pi/180)*T));
        if y < 380 then Pixels[X,Y]:=clRed else break;
        sleep(20);
        image1.Refresh;
      end;
  end;

Не знаю, что за язык, в принципе всё-равно. Хотелось бы понять насколько правильный код, если кто знаком может быть подскажете?
G = 9.81; сколько везде смотрел - похоже что это сила гравитации.

#12
10:50, 28 сен. 2018

tonline_kms65
Просто есть траектории, когда мина попадет в цель, но проходит через стенку (1) и когда она в стенку точно не попадает (2):
Dron Pic | Полет мины по параболе.

#13
10:52, 28 сен. 2018

Для случая без трения:
[cht]x=v_0 \cdot t \cdot \cos \alpha[/cht]
[cht]y=-\frac{g \cdot t^2}{2} + v_0 \cdot t \cdot \sin \alpha[/cht]
Откуда:
[cht]y=-\frac{g \cdot x^2}{2 \cdot v_0^2 \cdot \cos^2 \alpha} + x \cdot \tan \alpha[/cht]
[cht]y=-\frac{g \cdot x^2}{2 \cdot v_0^2} \cdot \sec^2 \alpha + x \cdot \tan \alpha[/cht]
[cht]y=-\frac{g \cdot x^2}{2 \cdot v_0^2} \cdot (1 + \tan^2 \alpha) + x \cdot \tan \alpha[/cht]
решая квадратное уравнение относительно [cht]\tan \alpha[/cht] получаем угол.
В общем случае решения 2, для миномёта видимо логично выбрать более "навесное".

В 3D рассматриваем вертикальную плоскость, проходящую через миномёт и цель.

#14
10:53, 28 сен. 2018

Здесь миномёт в (0,0), а (x,y) - координаты цели.

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумФизика

Тема в архиве.