Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

What's the velocity vector to hit a ground target.

  1. Jul 27, 2005 #1
    I'm a computer programmer, but I'm having trouble with this one. I need help figuring out how to calculate a 3D velocity vector which will make a projectile follow an ARC between two points on the ground, firing with a fixed speed.

    I have a cannon at point a (x, y, z)
    I have a target on the ground at point b (x, y, z)

    I'm trying to figure out vx, vy, vz so that the cannonball will land exactly on point b. There is no wind resistance. Gravity and muzzle velocity are fixed. Every shot comes out at the same speed. What vx, vy and vz would cause a projectile fired from point a to arc up and then down to hit point b precisely?

    Thanks very much,
  2. jcsd
  3. Jul 27, 2005 #2
    Ok, I'm going to take a shot at this one.

    There are two angles involved here, one in the xy plane and one that controls the angle at which the cannonball is shot. The one in the xy plane is given by
    [tex]\tan\phi=\frac {y_b-y_a} {x_b-x_a}[/tex]
    All this equation is telling you to do is point the cannon at the target.

    To work out the vertical angle at which to fire is a bit harder, so we can reduce it to a two dimensional problem.For an angle [tex]\Theta[/tex], velocity [tex]v[/tex] and gravitational acceleration [tex]g[/tex] the cannonball will follow a parabola given by the DEs
    \frac {dy} {dt} = v\sin\theta -gt[/tex]
    [tex]\frac {dx} {dt} = v\cos\theta

    Eliminating time gives

    y=x\tan\theta -\frac {gx^2} {2v^2}\sec^2\theta[/tex]

    Now we replace [tex]x[/tex] and [tex]y[/tex] with the x,y coordinates of your target [tex]X,Y[/tex], and solve for [tex]v[/tex].
    Without going through all the steps (since this is my first time using latex), we get.
    [tex]v = \sqrt(\frac {gX^2} {X\sin2\theta - Y\cos^2\theta})[/tex]
    This equation will give you a velocity if you sub in the coordinates for your target and choose an angle. You should note that there is a range of angles and velocities that will hit the target.

    This is not a complete solution to your original problem but should get you on the right track.
  4. Jul 27, 2005 #3
    I see what you're saying. Once we've rotated towards the target, then it's just a matter of creating the 2D equation that finds the value for theta. Once I have v, then I'll rotate back into world space using phi - and that will be my vector.

    Thanks so much for your help!
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook