Horizontal sundial calculations: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: calculated the legal meridian instead of using a specified amount.) |
No edit summary |
||
Line 2,126: | Line 2,126: | ||
6 pm 90.5 84.2 |
6 pm 90.5 84.2 |
||
══════════ ══════════ ════════════ |
══════════ ══════════ ════════════ |
||
</pre> |
|||
=={{header|Ring}}== |
|||
<lang ring> |
|||
# Project : Horizontal sundial calculations |
|||
# Date : 2017/10/24 |
|||
# Author : Gal Zsolt (~ CalmoSoft ~) |
|||
# Email : <calmosoft@gmail.com> |
|||
load "stdlib.ring" |
|||
pi = 22/7 |
|||
decimals(3) |
|||
latitude = -4.95 |
|||
longitude = -150.5 |
|||
meridian = -150.0 |
|||
see "enter latitude (degrees): " + latitude + nl |
|||
see "enter longitude (degrees): " + longitude + nl |
|||
see "enter legal meridian (degrees): " + meridian + nl |
|||
see "time " + " sun hour angle" + " dial hour line angle" + nl |
|||
for hour = 6 to 18 |
|||
hra = 15*hour - longitude + meridian - 180 |
|||
hla = 180/pi*(atan(sin(pi/180*latitude) * tan(pi/180*hra))) |
|||
if fabs(hra) > 90 |
|||
hla = hla + 180 * sign(hra * latitude) |
|||
ok |
|||
see "" + hour + " " + hra + " " + hla + nl |
|||
next |
|||
</lang> |
|||
Output: |
|||
<pre> |
|||
enter latitude (degrees): -4.950 |
|||
enter longitude (degrees): -150.500 |
|||
enter legal meridian (degrees): -150 |
|||
time sun hour angle dial hour line angle |
|||
6 -89.500 84.607 |
|||
7 -74.500 17.316 |
|||
8 -59.500 8.342 |
|||
9 -44.500 4.850 |
|||
10 -29.500 2.796 |
|||
11 -14.500 1.279 |
|||
12 0.500 -0.043 |
|||
13 15.500 -1.371 |
|||
14 30.500 -2.911 |
|||
15 45.500 -5.021 |
|||
16 60.500 -8.680 |
|||
17 75.500 -18.488 |
|||
18 90.500 -96.224 |
|||
</pre> |
</pre> |
||