// Horizontal sundial calculations function deg2rad(d) { return d * Math.PI / 180; } function rad2deg(r) { return r / Math.PI * 180; } document.write(""); lat = prompt("Enter latitude"); document.write("

Latitude: ", lat); lng = prompt("Enter longitude"); document.write("
Longitude: ", lng); ref = prompt("Enter legal meridian"); document.write("
Legal meridian: ", ref); document.write("

"); sLat = Math.sin(deg2rad(lat)); document.write("

Sine of latitude: ", sLat.toFixed(5)); document.write("
Diff longitude: ", (lng - ref).toFixed(5)); document.write("

"); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write("", ""); for (hour = -6; hour <= 6; hour++) { hourAngle = 15 * hour - (lng - ref); hourLineAngle = rad2deg(Math.atan(sLat * Math.tan(deg2rad(hourAngle)))); document.write(""); document.write(""); document.write(""); document.write(""); } document.write("
TimeSun hour angleDial hour line angle
", (hour + 12).toFixed(), ":00", hourAngle.toFixed(5), "", hourLineAngle.toFixed(5), "
"); document.write("
");