How do I calculate the angle required to hit a target, I found this at Wikipedia:


This works very well but my problem is, that in my case air resistance is a factor, and especially in my case the factor is that after every second 1% of the velocity is subtracted. I tried a lot of stuff like creating my own formulas but they never quite worked out, here is an example of what I tried:

$$x = v \cdot \cos(w) \cdot 0.99^t$$

$$y = v \cdot \sin(w) \cdot 0.99^t - 0.5 g \cdot t^2$$

Maybe you know an equation that might work and a solution to it

  • $\begingroup$ As wikipedia says, for large velocities the trajectory can not be calculated analytically, but only by numerical simulations. That means there is no single "formula", you need to use numerical methods en.wikipedia.org/wiki/… perhaps you canfind some webpage or app that does that for you. $\endgroup$
    – user126422
    Mar 11 '17 at 0:17
  • $\begingroup$ Possible duplicate of Projectile trajectory with linear air resistance. $\endgroup$ Mar 11 '17 at 21:20
  • $\begingroup$ no because you didn't understand my question, I have to calculate this formula for a program, and in this program drag is represented by subtracting 1% every second, so your answer does not fit my question $\endgroup$
    – Intektor
    Mar 11 '17 at 22:27
  • $\begingroup$ you can get some inspiration at yukterez.net/ballistik/#plot $\endgroup$
    – Yukterez
    Mar 12 '17 at 1:34

Your method of incorporating air resistance (drag) is unrealistic. It reduces velocity most when it is low instead of when it is high.

Air resistace is usually modelled as a force which is proportional to speed $v$ or $v^2$. Equations for the trajectory can be developed for $F=-kv$ but not for $F=-kv^2$. The wikipedia article gives equations for the x and y positions as a function of time $t$ and the constants $g, \frac{m}{k}=\beta$ and the components $v\cos\theta,v\sin\theta$ of launch velocity $v$, where $\theta$ is the launch angle :
$x=\beta (1-e^{-\beta t})v\cos\theta$ ... (1b)
$y=-\beta gt+\beta (v\sin\theta+\beta g)(1-e^{-\beta t})$ ... (3b)

There is no way of rearranging these equations to eliminate $t$ and get $\theta$ as a function of $x,y,v,k$. You have to solve these equations by numerical methods, ie trial and improvement.

You are aiming for a target so you know values for $(x,y)$; the launch point is assumed to be $(0,0)$. I presume that you also know the initial velocity $v$ but not the launch angle $\theta$ nor the time of flight $t$. You have here 2 equations and 2 unknowns. So you can set up a spreadsheet containing these 2 equations, and solve them numerically by varying both $t$ and $\theta$ until you find values which satisfy both equations.

As with the case of no air resistance, you are likely to obtain two possible values of $\theta$, above and below 45 degrees approx. Or there may be no solution at all if the launch velocity is not high enough.

  • $\begingroup$ Thank you for your response, I am sorry but I have not studied maths so my question is what means ... (1b) or ... (3b). Tried to draw the graph for y where t = x in my drawing program and this came out: i.imgur.com/l3CnYts.png It doesn't look like a trajectory to me at all. $\endgroup$
    – Intektor
    Mar 11 '17 at 12:16
  • $\begingroup$ The equations for x and y are correct. You need to fix a value for $\theta$ then plot y vs x for a range of values for t. Then keep changing $\theta$ until you hit your target. $\endgroup$ Mar 11 '17 at 21:21
  1. Usually it was just done by computer.

  2. If you want to find exact solution, the possible way without getting crazy was through system of differential equations. The problem was that the resistance changes(angle) as the speed changes.

  3. However, you might try the variation of parameters to see if there was possible solution. Even then you face the problem of a at least 4th order system instead of the usual second order system.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.