我正在编写一个 Android 应用程序,可以显示任何日期的月相。目前,我正在展示北半球的一般视图(月球受阳光照射的部分从right to left0° 观察旋转)。然而,当从南半球观察月球时,这种运动是相反的,而在赤道附近,则完全发生了不同的情况。其中一些信息可以在这个关于月相的网页 http://resources.woodlands-junior.kent.sch.uk/time/moon/hemispheres.html.
我理想地希望能够计算出月球观测旋转的精确角度作为地球上纬度和经度的函数,而不是仅使用三个简化的情况(北纬、南纬和赤道):
double viewingRotationAngle = calculateAngle(earthLat, earthLng);
有谁知道如何做这个数学,或者我可以在哪里找到更多信息来自己解决这个问题?我已经找了好几天了,还没有找到我要找的东西。提前致谢。
澄清一下,我寻求的旋转角度是月球可见圆盘的二维旋转。
2014 年 3 月 17 日更新
我做了更多研究并意识到这个问题可能与天球 http://astronomy.nmsu.edu/nicole/teaching/ASTR505/lectures/lecture08/slide02.html总体而言,而不是具体的月球。从地球上可见的所有天体,包括我们的月球,都固定在天球上,这就是相对于我们在地球上的位置旋转的天体。因此,我需要弄清楚如何计算天球本身的旋转,而不是专注于以月球为中心的解决方案。我仍然没有把注意力集中在这个问题上。
2014 年 4 月 13 日更新
我找到了一篇关于新月倾斜 https://planetariumweb.madison.k12.wi.us/mooncal/crescent-tilt/Crescent这可能是解决我的问题的关键。数学显然已经存在/可以导出,因为大多数天文模拟软件可以显示任何天体的确切位置和从地球的角度。我认为困难的部分是我想要的单个部分被包裹成涵盖整体定位的更复杂的方程。我将通过阅读和重新阅读这些有用的信息来努力得出一个更简单的版本。
您需要 4 件事才能获得从地球看到的月光方向:
1- 太阳高度角。 2- 太阳方位角。 3-月球高度。 4- 月球方位角。[所有高度均无空气(无折射效应),所有角度均以度为单位。]
我使用这个 PHP 函数从这些东西中获取光的旋转:
function getAngle($sunalt, $sunaz,$moonalt, $moonaz) {
$dLon = ($sunaz - $moonaz);
$y = sin(deg2rad($dLon)) * cos(deg2rad($sunalt));
$x = cos(deg2rad($moonalt)) * sin(deg2rad($sunalt)) - sin(deg2rad($moonalt)) * cos(deg2rad($sunalt)) * cos(deg2rad($dLon));
$brng = atan2($y, $x);
$brng = rad2deg($brng);
return $brng;
}
这是新月的方向(以顺时针角度为单位)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)