在Windows 7上,查看文件
C:\ WINDOWS \ WINSXS ... \ weather.js
有一个函数computeSunRiseSunSet(Latitude, Longitude, TimeZone, Year, Month, Day)
。
他们没有引用算法的来源。
一行代码是
var C2=RD*(Math.atan(Math.tan(L0+C)) - Math.atan(.9175*Math.tan(L0+C))-C);
为什么有Math.atan(Math.tan(L0 + C))?
是否与(L0 + C)相同或存在极端情况?
答案 0 :(得分:8)
atan(tan(x))
是一个定期的“锯齿”功能:
for -pi/2 < x < pi/2, atan(tan(x)) = x
for pi/2 < x < 3pi/2, atan(tan(x)) = x - pi
for 3pi/2 < x < 5pi/2, atan(tan(x)) = x - 2pi
...
你可以在Wolfram Alpha上plot it and see other details about it。