#!/usr/bin/python3 # =================================================================== # solution to round earth problem # =================================================================== import numpy as np # ---- earth radius and circumference (2*Pi*r) radius_ml = 3959 radius_km = 6371 circumference_ml = 24875.11 circumference_km = 40030.14 # ---- sailboat mast height (feet) mast_height = [ 50, 100, 150, 200, 250, 300, 350, 400, 450, 500 ] # ---- generate data (degrees, miles) for mst_ft in mast_height: mst_ml = mst_ft / 5280.0 # mast height (miles) hyp = radius_ml + mst_ml # hypotenuse (miles) rad = np.arccos(radius_ml / hyp) # radians deg = np.degrees(rad) # degrees dst = circumference_ml * (deg/360.0) # distance (miles) print(f'mast_height = {mst_ft:3} (feet) ' + \ f'degrees = {deg:.3} ' + \ f'distance = {dst:.6} miles')