By simply observing how much of an object is hidden by the ocean (or lake) horizon we can calculate the radius of the Earth. Take the three values (h = height of camera about the water, d = distance to object, x = amount of object hidden) and get the radius of the earth (r)

https://www.metabunk.org/radius/

For the math we take the curve calculator and just reverse the equations. We have:

Distance to horizon, a = sqrt((r+h)*(r+h) - r*r)

Amount obscured x = sqrt(a*a - 2*a*d + d*d + r*r)-r

Substitute the first equation for a into the second to get x in terms of r, h and d

x = sqrt(((r+h)*(r+h) - r*r) - 2*sqrt(((r+h)*(r+h) - r*r))*d + d*d + r*r)-r

Solve for r:

r = (d^2*h+d^2*x +/- 2 * sqrt(d^4*h*x-d^2*h^3*x+2*d^2*h^2-d^2*h*x^3) - h^3 +h^2*x+h*x^2-x^3)/(2*(h^2-2*h*x+x^2))))

The negative solution is the correct one for short distances, so, in Javascript:

r = (d*d*h+d*d*x - 2 * Math.sqrt(d*d*d*d*h*x-d*d*h*h*h*x+2*d*d*h*h-d*d*h*x*x*x) - h*h*h +h*h*x+h*x*x-x*x*x)/(2*(h*h-2*h*x+x*x))

https://www.metabunk.org/radius/

For the math we take the curve calculator and just reverse the equations. We have:

Distance to horizon, a = sqrt((r+h)*(r+h) - r*r)

Amount obscured x = sqrt(a*a - 2*a*d + d*d + r*r)-r

Substitute the first equation for a into the second to get x in terms of r, h and d

x = sqrt(((r+h)*(r+h) - r*r) - 2*sqrt(((r+h)*(r+h) - r*r))*d + d*d + r*r)-r

Solve for r:

r = (d^2*h+d^2*x +/- 2 * sqrt(d^4*h*x-d^2*h^3*x+2*d^2*h^2-d^2*h*x^3) - h^3 +h^2*x+h*x^2-x^3)/(2*(h^2-2*h*x+x^2))))

The negative solution is the correct one for short distances, so, in Javascript:

r = (d*d*h+d*d*x - 2 * Math.sqrt(d*d*d*d*h*x-d*d*h*h*h*x+2*d*d*h*h-d*d*h*x*x*x) - h*h*h +h*h*x+h*x*x-x*x*x)/(2*(h*h-2*h*x+x*x))

Last edited: