How Can Parabolic Shooting Be Optimized for Minimum Travel Time in a Game?

  • Thread starter Thread starter xev
  • Start date Start date
AI Thread Summary
The discussion revolves around optimizing parabolic shooting in a tank-based real-time strategy game to minimize bullet travel time. The user is attempting to calculate the optimal launch angle (alpha) given an initial point, final point, and initial velocity using standard projectile motion equations. They struggle with calculus, specifically in deriving a function for time as a function of alpha and setting its derivative to zero for optimization. The conversation highlights the need to eliminate time from the equations to isolate alpha, ultimately revealing that the system is overdetermined, indicating that the angle cannot vary freely to optimize travel time. The conclusion suggests that the approach may need reevaluation to effectively solve the problem.
xev
Hi!

As a part of a subject project I'm developing a game. It is a kind of real-time strategy game where two teams of tanks have to destroy each other (not very original, but interesting enough).

I have come across a problem I cannot solve: applying parabollic shooting to simulate their bullets.

I use the typical formulas:
x=x0+vx*t
vx=v0*cos(a)
y=y0+vy*t-0.5*g*(t)^2
vy=v0*sin(a)

where a=alpha, g=gravity (9.8 default) and v0=initial velocity modulus

What happens is that I had always used these formulas to calculate some typical things like: maximum height reached, ending x, etc.

But now, given an initial point, a final point and an initial velocity, I need to calculate the alpha that would take the bullet the minimum time.

I need to have a function f(t), to minimize it to know the minimum time and then get the alpha. But I always get struck in the depths of the calculus.

Can anybody help me, please? Thank you.
 
Last edited by a moderator:
Physics news on Phys.org


Originally posted by xev
Hi!

Hi, and welcome to PF. Same Xev from sciforums and philosophyforums I presume?

I use the typical formulas:
x=x0+vx*t[/color]
vx=v0*cos(a)
y=y0+vy*t-0.5*g*(t)^2
vy=v0*sin(a)

But now, given an initial point, a final point and an initial velocity, I need to calculate the alpha that would take the bullet the minimum time.

I need to have a function f(t),

Actually, what you need is t as a function of α. You will want to differentiate t(α) with respect to α and set derivative equal to 0, yadda yadda yadda.

to minimize it to know the minimum time and then get the alpha. But I always get struck in the depths of the calculus.
]

It sounds like you've got the calculus and are getting lost in the depths of the algebra. :smile:

I've highlighted the function[/color] you need above. You could alternatively use the equation for y, but it is more complicated so I'm sticking with the equation for x. What you do is solve it for t.

x-x0=v0cos(α)t
(x-x0)/(v0cos(α))=t

Now, can you fill in the yaddas?
 
ballistics(2)

Hi there

>>Same Xev from sciforums and philosophyforums I presume?

I am afraid I don't even know of the existence these sci/philosofyforums.

>>yadda

Since English is not my native language, I don't know what you mean by yadda yadda (maybe it means etc or something more specific?)

-> my progress: I've taken care of your funcion, trying to minimize it. But I reach the following statement:
cos(a) + x * sin(a)=0

I should get the alpha as a function of x, but I cannot find any way to be able to isolate the alpha and to continue working on it. Do you know how these equations are solved? Thank you!

>>Welcome to PF

Thanks!
 


Originally posted by xev
>>yadda

Since English is not my native language, I don't know what you mean by yadda yadda (maybe it means etc or something more specific?)

Yes, it means "et cetera". It's from Seinfeld. :D

-> my progress: I've taken care of your funcion, trying to minimize it. But I reach the following statement:
cos(a) + x * sin(a)=0

t as a function of α is:

t(α)=((x-x0)/v0)(cosα)-1

You need to take the derivative of that with respect to α. Use the chain rule:

t'(α)=((x-x0)/v0)(-1)(cosα)-2(-sinα)
t'(alpha;)=((x-x0)/v0)sinα/cos2α

That is what you should set equal to zero. Solve for α, and you have your angle that minimizes the time.

I should get the alpha as a function of x, but I cannot find any way to be able to isolate the alpha and to continue working on it. Do you know how these equations are solved? Thank you!

Why are you looking for α as a function of x? x is fixed, and anyway you are trying to minimize the time. If I am understanding you correctly, you definitely need t as a function of α, as I outlined above.
 
Ballistics(3)

t'(alpha;)=((x-x0)/v0)sin¥á/cos2¥á

then I do:

((x-x0)sin¥á)/(v0*cos2¥á)) = 0

then:

(x-x0)sin(a)=0

we get: a=k*PI

referring to the original function, I substitute the reached alpha:

t(k*PI)=((x-x0)/v0)/(cos(K*PI))

Because we need positive times, I restrict alpha to being 2*k*PI

then t(2*k*PI)=t(¥á)=((x-x0)/v0)/(cos(2*k*PI))= (x-x0)/v0

So the conclusion is: the best alpha is 0¨¬
This isn't useful for me, am I doing something wrong or maybe I amb approaching the problem with the incorrect method?

Thank you !
 
OK, I think I see the problem. What you have here is an overdetermined system, and this will become apparent when I eliminate the t from the parametric equations for x and y.

x-x0=v0cos(α)t
y-y0=v0sin(α)t-(1/2)gt2

Solve the first equation for t.

t=(x-x0)/(v0cos(α))

Plug this into t in the second equation.

y-y0=v0sin(α)((x-x0)/v0cos(α))-(1/2)g((x-x0)/v0cos(α))2

I could clean this up a bit, but I don't need to to make my point. y, y0, x, x0, v0 and g are all fixed. α is the only thing left, so it is fixed too.[/color] You don't have freedome to let it vary to optimize the time.
 
I multiplied the values first without the error limit. Got 19.38. rounded it off to 2 significant figures since the given data has 2 significant figures. So = 19. For error I used the above formula. It comes out about 1.48. Now my question is. Should I write the answer as 19±1.5 (rounding 1.48 to 2 significant figures) OR should I write it as 19±1. So in short, should the error have same number of significant figures as the mean value or should it have the same number of decimal places as...
Thread 'A cylinder connected to a hanging mass'
Let's declare that for the cylinder, mass = M = 10 kg Radius = R = 4 m For the wall and the floor, Friction coeff = ##\mu## = 0.5 For the hanging mass, mass = m = 11 kg First, we divide the force according to their respective plane (x and y thing, correct me if I'm wrong) and according to which, cylinder or the hanging mass, they're working on. Force on the hanging mass $$mg - T = ma$$ Force(Cylinder) on y $$N_f + f_w - Mg = 0$$ Force(Cylinder) on x $$T + f_f - N_w = Ma$$ There's also...
Back
Top