Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: CL | DM;

Вниз

Уравнение движения тела, брошенного под углом   Найти похожие ветки 

 
greenrul ©   (2002-10-26 11:00) [0]

Нужно написать уравнение движения снаряда, зная его начальную скорость, и координаты, КУДА он должен прилететь. Никакого начального угла не дано.

Проще говоря,
Player1.x:=?(speed,x_dest,y_dest)
Player1.y:=?(speed,x_dest,y_dest)


Раньше мне нужно было вводить еще и начальный угол, и процедура выглядела так:
y:=SelectedUnit.Y+snarad_speed*sin(DegToRad(Snarad.start_angle))*(time/speed) + g*(((time*time)/(speed*speed))/2);
x:=SelectedUnit.x+snarad_speed*cos(DegToRad(Snarad.start_angle))*(time/speed);


но теперь угла-то нет... попытался выразить угол : Snarad.start_angle:=Round(RadToDeg(ArcCos((sector*30-SelectedUnit.x)*time / 50)));
Но он почему-то всегда равен 0


 
Карлсон ©   (2002-10-26 11:31) [1]

купи учебник физики за девятый класс, а еще лучше почитай трехтомник Ландсберга.
тема "Движение тела брошенного под углом к горизонту"


 
Valt ©   (2002-10-26 11:39) [2]


> greenrul

Послушай Карлсона, он то знает толк в полетах:)


 
][рюн   (2002-10-26 12:59) [3]

а чего вы над ним издеваетесь?
я вот тоже не знаю чем помочь - учебника нет (как и у greenrul"a небось тоже)...

подсказали-бы


 
Dr_Mike ©   (2002-10-26 13:36) [4]

Ээх...не хотелось бы опозориться, но попробую... :-)))

(Просьба, если кто заметит ошибку в моих расчетах, обязательно скажите, буду благодарен.)

Запишем систему уравнений для равноускоренного движения в проекциях (фактически уравнения движения тела брошенного под углом к горизонту):

Xкон = Xнач + Vx*T + Gx*T^2 / 2
Yкон = Yнач + Vy*T + Gy*T^2 / 2

так как Gx = 0 и Gy = G , то:

Xкон = Xнач + Vx*T + 0
Yкон = Yнач + Vy*T + G*T^2 / 2

откуда:

Xкон = Xнач + Vx*T
Yкон = Yнач + Vy*T + G*T^2 / 2

теперь распишем проекции скорости (где A - начальный угол):

Vx = V * cosA
Vy = V * sinA

Итак:

Xкон = Xнач + T*V*cosA
Yкон = Yнач + T*V*sinA + G*T^2 / 2

T*V*cosA = Xкон - Xнач
T*V*sinA = Yкон - Yнач - G*T^2 / 2

Xкон - Xнач
cosA = -----------
T*V
Yкон - Yнач - G*T^2 / 2
sinA = -----------------------
T*V

теперь запишем tgA = sinA / cosA:

(Xкон - Xнач) * (T*V) Xкон - Xнач
tgA = ---------------------------------------- = ----------------------
(T*V) * (Yкон - Yнач - G*T^2 / 2) Yкон - Yнач - G*T^2 / 2




 
Карлсон ©   (2002-10-26 13:36) [5]

http://www.spin.nw.ru/MECHAN/simulations/gun.htm
фактически копия предыдущей линки http://mechanics.h1.ru/Spin/imjd2.htm
и вот еще:
http://friends.pomorsu.ru/~tanya.uryanskaya/nova.html

читайте, разбирайтесь....


 
greenrul ©   (2002-10-26 13:46) [6]

2Карлсон - читал
2Dr_Mike - я сам так пробовал, пока не понял, что время-то не дано при котором снаряд будет в конечной точке...


 
Dr_Mike ©   (2002-10-26 13:46) [7]

м-да, опозорился :(((

http://www.spin.nw.ru/MECHAN/simulations/gun.htm - действительно все расписано как нельзя лучше !!!


 
Pumpkin   (2002-10-26 13:51) [8]

Я тут на бумажке накрапал:
V - скорость; S - расстояние полета по горизонтали; A - угол (альфа); t0 - время полета до верхней точки, t - общее время полета, h - макс. высота, g - уск. своб. пад.
S и V известны, A - ищем. Выписываем известные формулы:
Vy = V*sin(A); Vx = V*cos(A); t = 2*t0;
S = Vx*t; g = Vy/t0;
отсюда имеем:
S = V*t*cos(A) = V*2*(Vy/g)*cos(A) = V*2*V*sin(A)*cos(A)/g = ((V^2)/g)*(2*sin(A)*cos(A)) = ((V^2)/g)*sin(2*A);
отсюда:
A = arcsin(S*g/(V^2))/2.
Однакож я где-то мог ошибиться.


 
Dr_Mike ©   (2002-10-26 14:35) [9]

>greenrul © (26.10.02 13:46)

одна простоя вещь - в горизонтальной плоскости ускорения-то нет ! :))

Xкон = Xнач + T*V*cosA

T = (Xкон - Xнач) / (V*cosA)

то есть Т и cosA связаны между собой - при соблюдении некоторых условий это значит, что каждого угла есть свое время, за которое прилетит снаряд

так что стоит или задавать время, за которое должен прилететь снаряд, или угол, под которым его запускать

!!! нужно только проверять, чтобы было решение - иначе снаряд не долетит :))))



 
PaRL ©   (2002-10-26 20:18) [10]

Vx = V*cosA
Vy = VsinA - gt
V = sqrt(Vx*Vx + Vy*Vy)
x = x0 + VtcosA
y = y0 + VtsinA - gt*t/2

Основные. Если угла не дано сам думай.



Страницы: 1 вся ветка

Текущий архив: 2002.11.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
14-46150
Nico1a
2002-10-28 17:44
2002.11.14
DLL


1-45975
Calm
2002-11-04 15:24
2002.11.14
Как определить высоту (height) строки TMemo?


3-45706
_ALEX70_
2002-10-23 15:01
2002.11.14
Запрос в хронимой процедуре


3-45674
Shil
2002-10-23 22:17
2002.11.14
Подскажите какой тип данных выбрать


1-45804
Cobalt
2002-11-04 22:40
2002.11.14
Размеры ListBox