Страница: 1 |
Страница: 1 |
Вопрос: Выстрел с упреждением
Добавлено: 05.06.06 16:59
Автор вопроса: AgentFire | ICQ: 192496851
Имеется 2х-мерная система координат, имеется 2 объекта(первый и второй), первый стоит на месте, второй движется прямолинейно-равномерно со скоростью V2. Первому объекту необходимо выстрелить по второму.
Снаряд, выпущенный первым объекстом имеет V1=const, причем V1 > V2 т.е. снаряд ВСЕГДА догонит второй объект.
Имеются координаты двух объектов (x1,y1), (x2,y2).
Необходимо всего лишь найти угол, под которым нужно выстрелить по второму объекту чтоб снаряд 99% попал по нему(можно 100%)
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #1
Добавлено: 05.06.06 18:02
Во во! я тоже пытался решить, но немного с другого угла: вот я играю в баскетбол и мимо меня передо мной прокатывается мяч, который мне надо поймать. Допустим, я иду быстрее, чем он катится но я так и не понял (хотя пытался) по какой формуле расчитать угол (мепонятно даже к чему между прочим гыгы)
но мне кажется, тебе нужен треугольник типа вот этого (http://www.lesfiles.h15.ru/images/diagram.jpg) с тремя известными сторонами и тебе осталось только найти угл А
Номер ответа: 2
Автор ответа:
Sergey
ICQ: 283551900
Вопросов: 1
Ответов: 74
Профиль | | #2
Добавлено: 05.06.06 21:20
Пушка находиться в точки (x2,y2) на момент выстрела и стреляет с скоростью V и углом A или с скоростью (V2x,V2y).
V2x = V*cos
V2y = V*sin
Формула полета объекта  F1x(t),F1y(t)).
Формула полета снаряда  F2x(t,V,A),F2y(t,V,A)).
Нужно найти такие t,V,A чтоб выполнялось условие F1x(t)= (F2x(t,V,A) и F1y(t)=
У нас:
F1x(t) = x1+Vx1*t
F1y(t) = y1+Vy1*t
F2x(t,V,A) = x2+ V*cos*t
F2y(t,V,A) = y2+ V*sin*t
Подставляем
x1+V1x*t = x2+ V*cos*t
y1+V1y*t = y2+ V*sin*t
получаем
x12=x1-x2
y12=y1-y2
V=  x12*V1y-y12*V1x)/(x12*sin-y12*cos)
A для A(V):
Q(V)=(x12*V1y-y12*V1x)/V
x12*sin-y12*cos) =Q(V)
a*cos+b*sin=sqrt(a*a+b*b)*cos(A-acos(a/sqrt(a*a+b*b))
или
a*cos+b*sin=sqrt(a*a+b*b)*cos(A-asin(b/sqrt(a*a+b*b))
S = sqrt(x12*x12+y12*y12)
x12*cos-y12*sin= S*cos(A+acos(x12/S) )
или
x12*cos-y12*sin= S*cos(A+asin(y12/S) )
S*cos(A+acos(x12/S)) =Q(V)
или
S*cos(A+asin(y12/S))=Q(V)
A(V)= acos(x12/S) +(+-)acos(Q(V)/S)+Pi./2 (1)
или
A(V)= asin(y12/S) +(+-)acos(Q(V)/S)+Pi/2 (2)
Pi./2 откуда взялось не зною подбором взял!!
(+-) лучше брать (–) будет правильный угол/ если взять (+) то время будет отрицательное
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 06.06.06 08:52
Да ты гений Серега! )
Единственная поправочка - скорость снаряда у меня постоянная... но я разберусь, думаю!