# Linear and circular distance to horizon

I recently had a chance to go to a sea-shore and to also ponder the question:

"What is the farthest point on the horizon that I can theoretically see, ignoring the effects of fog, clouds, waves, tide, and non-uniform curvature of Earth?"

So, I got to work, and derived the formula thus:

Assuming...

• Earth to be a perfect sphere of radius, r;

• My height (at eye-level) to be, h; and

• The linear distance to the horizon to be, d;

Then,

$(r+h)^2 = d^2 + r^2$ (via Pythagoras theorem)

Or,

$d = (h^2 + 2rh) ^.5$

Also, the curved distance, c, to the horizon, would be:

$c = r . arccos (r / (r+h) )$

However, here begins my difficulty. When I substitute the values...

r = 6370 km
h = 180 cm   (or, 6 ft)


... I get,

d = 4.58 km   (reasonable, appears correct)
c = 274 km    (!!!)


... which doesn't make sense to me!

Why so much difference between c and d? Intuitively, I am expecting c to be very close to d. Why? Because, the surface of Earth is more or less flat, and when dealing with a linear distance, d, in the vicinity of merely 5 km, the curved distance, c, should also be very close to d. Isn't it?

Where am I wrong in my intuitive thinking (as, afaik, my formula and computation are correct)?

• I think maybe you just punched it in wrong. For me (in radians mode): 6370 / 6370.0018 INV COS * 6370 I get 4.7887. I know this is an old post, but I was just trying to calc something similar. It took me a little while to get it right, too. – Octopus May 8 '18 at 18:14

What are you using to calculate this? Since $r/(r+h)$ is very close to 1, your (correct) formula for $c$ will be very sensitive to small precision errors in computing arccos. With an inexpensive calculator I got a result close to your 274 km, but when I asked Mathematica for the result I got an answer that was for all practical purposes equal to the straight-line distance, 4.78874 km.
• O boy! THAT never occurred to me, and could never have - so I'm glad I posted this here. Now, I used gnome-calculator on Ubuntu 13.x, which I thought was an 'arbitrary precision' calculator. Apparently, it's not. My $r/(r+h)$ came out to be 0.99999971. – Harry Jul 5 '13 at 13:12
• Rick, since I'm not familiar with Mathematica, would you also post the function (or, the relevant code snippet) you used to calculate $r/(r+h)$ to arbitrary precision? Thanks. – Harry Jul 5 '13 at 13:16
• Btw, I found out that /usr/bin/bc -l can also do the job; the -l option uses a precision of 20 digits which can give you a value that is fairly precise, and if you want more precision, you can specify scale=50 or higher inside your bc script. – Harry Jul 9 '13 at 6:09