Horizontal sundial calculations: Difference between revisions
Content deleted Content added
Add Seed7 example |
→{{header|AutoHotkey}}: AutoHotkey example added |
||
Line 143: | Line 143: | ||
HR= +6; HRA= +90.500; HLA= +84.225 |
HR= +6; HRA= +90.500; HLA= +84.225 |
||
</pre> |
</pre> |
||
=={{header|AutoHotkey}}== |
|||
{{trans|F#}} |
|||
AutoHotkey is not a command-line programming language, let me make that clear. However, in translating the F# I found that the command line really is best for this type of app. The first 3 comments in the script describe the workarounds used to interface with the commandline. |
|||
<lang AutoHotkey>DllCall("AllocConsole") ; Open a console window for this application |
|||
Pi := 4*ATan(1) |
|||
,Degrees := Pi/180 |
|||
FileAppend, Enter Latitude: , CONOUT$ ; write to stdout |
|||
FileReadLine, latitude, CONIN$, 1 ; read from stdin |
|||
FileAppend, Enter Longitude: , CONOUT$ |
|||
FileReadLine, longitude, CONIN$, 1 |
|||
FileAppend, Enter Legal meridian: , CONOUT$ |
|||
FileReadLine, meridian, CONIN$, 1 |
|||
sineLatitude := Sin(latitude*Degrees) |
|||
FileAppend, `n, CONOUT$ |
|||
FileAppend, Sine of latitude: %sineLatitude%`n, CONOUT$ |
|||
FileAppend, % "Difference of Longitudes (given longitude - meridian): " . longitude-meridian . "`n", CONOUT$ |
|||
FileAppend, `n, CONOUT$ |
|||
FileAppend, Numbers from 6 AM to 6 PM:`n, CONOUT$ |
|||
FileAppend, Hour`t`tSun Hour Angle`t Dial hour line angle`n, CONOUT$ |
|||
hour := -7 |
|||
While (++hour < 7) |
|||
{ |
|||
clockHour := hour < 0 ? abs(hour) . "AM" : hour . "PM" |
|||
shr := RTrim("" . (15.0*hour - (longitude-meridian)), "0") ; RTrim() removes trailing zeroes |
|||
dhla := Atan(sineLatitude*Tan(shr*degrees))/Degrees |
|||
FileAppend, %clockhour%`t`t%shr%`t`t%dhla%`n, CONOUT$ |
|||
} |
|||
MsgBox close me when done.</lang> |
|||
Sample Output: |
|||
<pre>Enter Latitude:-4.95 |
|||
Enter Longitude:-150.5 |
|||
Enter Legal meridian:-150 |
|||
Sine of latitude: -0.086286 |
|||
Difference of Longitudes (given longitude - meridian): -0.500000 |
|||
Numbers from 6 AM to 6 PM: |
|||
Hour Sun Hour Angle Dial hour line angle |
|||
6AM -89.5 84.224833 |
|||
5AM -74.5 17.282934 |
|||
4AM -59.5 8.333712 |
|||
3AM -44.5 4.846709 |
|||
2AM -29.5 2.794874 |
|||
1AM -14.5 1.278353 |
|||
0PM 0.5 -0.043144 |
|||
1PM 15.5 -1.370788 |
|||
2PM 30.5 -2.909643 |
|||
3PM 45.5 -5.018023 |
|||
4PM 60.5 -8.671397 |
|||
5PM 75.5 -18.450999 |
|||
6PM 90.5 84.224833</pre> |
|||
=={{header|BBC BASIC}}== |
=={{header|BBC BASIC}}== |