Projectile Launching: Calculate Speed to Pass Through Point

  • Thread starter Thread starter squid
  • Start date Start date
  • Tags Tags
    Projectile
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
4 replies · 3K views
squid
Messages
14
Reaction score
0
Given a projectile at position '(x0, y0)' and a launch angle 'a', at which speed must I launch the projectile to make it pass through a point '(x, y)', assuming that the only force that acts upon it is gravity (which causes acceleration 'g')?

I came up with the following:

vx0 = s * cos(a)
vy0 = s * sin(a)

x = x0 + vx0 * t
y = y0 + vy0 * t + g/2 * t^2

x = x0 + s * cos(a) * t
y = y0 + s * sin(a) * t + g/2 * t^2

s = -((x0 - x) * sec(a)) / t

y = y0 -((x0 - x) * sec(a)) / t * sin(a) * t + g/2 * t^2

y = y0 - (x0 - x) * tan(a) + g/2 * t^2

t = +- (sqrt(2) * sqrt(y - y0 - x * tan(a) + x0 * tan(a)) / sqrt(g)

But there's no point in going any further because of 'sqrt(g)', which is a square root of a negative value.
I tried doing it the other way around, but that also yields a complex solution.

Can anyone help me out with this?
 
Physics news on Phys.org
x = x0 + s * cos(a) * t

Try solving for t here, then plugging that into the other equation (the one for y). This way, you're solving directly for s, which is what the question asks for.

One thing though, when you solved for t, it's not the sqrt(g) you're taking, it's the square root of y - y0 - x * tan(a) + x0 * tan(a)) / g

which may or may not be negative in its entirety
 
That's what I was talking about when I said "I tried solving it the other way around".
Test it for origin point '(0, 0)', destination point '(100, 10)', angle '0.4' and gravitational acceleration of '-9.8'.
You get '-32.2793'.

[EDIT]

If I use a negative angle, the solution is positive!
All this time I was chosing angles which were pointing in the opposite direction, so the projectile coudln't reach the destination point, making the equation unsolvable.
 
Last edited:
I did it solving for t in the first equation, then did your test, and got an answer of 42.3ish I'll show you what I did

we're trying to solve for v:
x = x0 + v*t*cos(a)
y = y0 + v*t*sin(a) - gt2/2

Notice how I make g a positive constant, and subtract. This will avoid the confusion you had over taking the square root of a negative number... you were taking the square root of a fraction, then broke it up into top and bottom, when both of them were really negative (so you could have canceled the - signs, and been much happier).

So v*t*cos(a) = x - x0, meaning t = (x - x0)/(v*cos(a))

Plugging that into y = y0 + v*t*sin(a) - gt2/2 gives us:

y = y0 + v*sin(a)*(x - x0)/(v*cos(a)) - g/2 * { (x-x0)/(v*cos(a)) }2

Simplifying, we call x-x0 dX, and y-y0 dY (delta x, delta y. Don't confuse with calculus terms :) ).

dY = dX*tan(a) - g/2 * { dX/(v*cos(a)) }2

or g/2 * { dX/(v*cos(a)) }2 = dX*tan(a) - dY

g/2 * dX2/cos(a)2 * 1/(dX*tan(a) - dY) = v2

In fact, you'll notice how it's conveniently set up to make sense only when dX*tan(a) - dY > 0, because you can't get to every point from any point at any angle (try getting to (10, 100) from the origin with an angle of .1 radians, it doesn't work).
 
So the solution to my equation is:
s = +- (sqrt(g) * (x - x0) * sec(a)) / (sqrt(2) * sqrt(tan(a) * (y - y0)^2 - y + y0))
Is that correct?

[EDIT]

I get 42.3 as well!
I guess it is correct, then!
Your idea of making 'g' positive was brilliant!
Thanks! :D
 
Last edited: