Before jumping into formulas it makes sense to get an intuitive understanding of forces at work. School-level knowledge of Newton's laws of motion and basic trigonometry will suffice.
The black dashed line on the picture above shows trajectory of a .50 cal armor-piercing incendiary bullet. Red line of sight (LOS) goes straight from shooter's eye to the target. We are primarily interested in distances between trajectory and LOS, because that's what we'll compensate with scope's elevation turret.
Blue arrow shows vector of gravity acting on the bullet. By the time my favorite GP11 bullet reaches 800 meters, it drops 7 meters below line of sight (throughout this document I will assume 100 meter zero).
Here's how things change when shooting at an upward angle:
Exact same gravity is still pulling down, but "down" is no longer "perpendicular to LOS". Only one component of gravity is bending trajectory towards LOS, the perpendicular one. Which means that bullet flies higher than when shooting horizontally.
Side note: the other component does act to slow the bullet down, but given typical speed of modern rifle bullets the effect is barely noticeable.
Opposite scenario - this time we're high on the hill, shooting down.
The logic is the same - only the perpendicular component of gravity is bending bullet trajectory towards LOS, therefore bullet flies higher than when shooting horizontally.
Replay: when shooting at an angle, no matter if it's up or down, bullet goes higher than when shooting horizontally. Given the same angle, depressed fire trajectory is slightly higher than elevated one, but the difference is so small it can be ignored at most practical distances.
How much is 1 MIL
Let's say your scope has MIL turrets (one click is 0.1 MIL), and you are asked "how much is 1 click at 500 m". You'd be inclined to say "5 cm" - but that's not the right answer, at least as far as inclined fire is concerned.
Let's start with a simple horizontal example:
We changed our aim by a small angle r when shooting at distance D. (Picture is not to scale; in reality 0.1 MIL ≃ 0.00573 degrees.) Corresponding change in heigh would be
d = D * tan(r)
Remember SohCahToa? That's toa, or Tangent = Opposite / Adjacent. For small angles r expressed in radians tan(r) ≃ r. For example, one click is 0.1 MIL, which is 0.0001 radians, and tan(0.0001) = 0.000100000000333... (very close to 0.0001).
So if r is in MILs, then d ≃ D * r / 1000.
Now back to our hills.
The whole thing is now rotated by angle α, which is much bigger than r and convenient
approximation no longer holds.
It's not like d is now different. It's the same distance, perpendicular to LOS, but just no longer vertical. The "true" vertical distance, perpendicular to the Earth surface is h = d / cos(α). One click in the mountains is taller than one click in the flatlands. For example, if α = 30º one click raises point of impact 15% more. You need to keep that in mind when correcting vertical miss (and divide clicks by cosine). Better yet do all math in MILs (or other angular units) rather than meters (or other length units). Another point to MIL/MIL scopes.
Last point here: all ballistic calculators I have seen so far measure bullet path in direction perpendicular to LOS, not in vertical direction.
This subject requires a separate article (what makes ballistic calculator good, why in practice there is a difference between theory and practice, etc.) For now I'll keep it short:
1. Use a good ballistic calc:
1.1. Bryan Litz's excellent http://appliedballisticsllc.com/ calculator
(also good, convenient interface, intelligent tech support)
2. Calculator has to support G7 model. G1 does not fit modern bullets at speeds approaching the speed of sound (starting roughly at Mach 1.2), and sometimes even closer than that.
3. Calculator should show different adjustments for angles of same magnitude but opposite signs (up vs. down).
4. If possible, calculator should take into consideration air density change with altitude.
(Pts. 3 and 4 are a reasonable indication that the solver correctly predicts trajectory with inclined line of sight.)
After handing a rifle with Angle Cosine Indicator (ACI), I was surprised at how far perceived angle is from reality.
Perception: really steep angle, "maybe 45 degrees"
Perception: "barrel points to the sky, approximately 60 degrees"
Perception: "nearly straight up"
Talking to more experienced shooters provided confirmation: yep, that's the way it is, especially hunters are known to brag about "a goat at 800 m 45º up".
But play a bit with ACI (or even school protractor with a piece of string attached) and illusion quickly goes away.
Data parameters and colours
The tables that follow are based on data from JBM ballistic calculator
http://www.jbmballistics.com/cgi-bin/jbmtraj_simp-5.1.cgi ("simplified" version)
with the following parameters:
Pressure: 1014 hPa
Temperature: 15 ºС
I probably should have used 1000/15/50 common in Soviet manuals or 955/15/55 like in Swiss manuals, but what's done is done. Besides, it doesn't matter much.
GP90 5.56x45 -- bullet weight 4.1 g, caliber 5.56 mm, BC G7 0.167, V0 905 m/s, sight height 7 cm. (for our foreign friends -- this is Swiss army ordnance issue of 5.56x45 NATO)
GP11 7.5x55 -- bullet weight 174 gr, caliber 7.62 mm, BC G7 0.278, V0 780 m/s, sight height 4 cm. (for our foreign friends -- the ballistics are very close to a good .308)
.338 Lapua Magnum 8.6x70 -- bullet weight 250 gr, caliber 8.61 мм, BC G7 0.322, V0 905 m/s, sight height 4 cm.
All zeroed at 100 m unless explicitly stated otherwise. Distances in meters, angles in degrees, drops and bullet paths in centimetres.
Positive path values mean that bullet is above LOS.
Cell colouring is based on torso target size.
||< ±10 cm = excellent.
||< ±20 cm = good, still more or less on target.
||< ±40 cm = acceptable, can hit the target if you know the sign of correction (up or down).
||> ±40 см = definitely bad, a very likely miss (unless by coincidence another dramatic error cancels it out).