Horizontal sundial calculations: Difference between revisions

Content added Content deleted
(J: avoid principal value issue)
(J: rephrase to highlight use of atan2)
Line 482: Line 482:


<lang j>require 'trig'
<lang j>require 'trig'
atan2=: {:@*.@j. NB. arc tangent of y divided by x

horiz=: verb define
horiz=: verb define
'lat lng ref'=. y
'lat lng ref'=. y
Line 492: Line 493:
'Diff longitude ' out -diff=. ref - lng
'Diff longitude ' out -diff=. ref - lng
lbl=.'hour ';'sun hour angle ';'dial hour line angle'
lbl=.'hour ';'sun hour angle ';'dial hour line angle'
r=.((,. (,. ({:@*.@j. *&slat)/@+.@r.&.rfd)) diff + 15&*) i:6
r=.((,. (,. (atan2 *&slat)/@+.@r.&.rfd)) diff + 15&*) i:6
smoutput lbl ,: ('3.0';'7.3';'7.3') 8!:1 r
smoutput lbl ,: ('3.0';'7.3';'7.3') 8!:1 r
)</lang>
)</lang>