Exercise 2 solution (Python) import math def drift(distance, error_deg): return distance * math.tan(math.radians(error_deg)) for err in (2, 5, 10): for d in (100, 300): print(f"error {err} deg over {d} m: {round(drift(d, err))} m off line") print("Longest leg:", round(30 / math.tan(math.radians(3))), "m") Output: error 2 deg over 100 m: 3 m off line error 2 deg over 300 m: 10 m off line error 5 deg over 100 m: 9 m off line error 5 deg over 300 m: 26 m off line error 10 deg over 100 m: 18 m off line error 10 deg over 300 m: 53 m off line Longest leg: 572 m Sideways drift is distance times the tangent of the error angle. The drift grows in proportion to the distance, so long legs in poor visibility are risky: a 5 degree error is harmless over 100 m but 26 m over 300 m. With 30 m of visibility and a 3 degree error you could in theory go 572 m before the drift exceeds what you can see, but this ignores pacing error and the fact that the error is rarely a clean 3 degrees, so in practice you use much shorter legs (a few hundred metres at most, and often under 200 m).