计算月球表面旋转作为地球坐标的函数 [英] Calculating moon face rotation as a function of Earth coordinates

查看:23
本文介绍了计算月球表面旋转作为地球坐标的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个可以显示任意日期月相的 Android 应用.目前,我正在展示北半球的广义视图(月亮的阳光照射部分从 移动到 ,视角旋转 0°).然而,当从南半球和赤道附近观察月球时,这种运动是相反的,完全会发生其他事情.其中一些信息可以在 有关月相的网页上找到.

I'm writing an Android app that shows moon phases for any date. Currently I am showing a generalized view from the northern hemisphere (sunlit part of the moon moves from right to left with 0º viewing rotation). However, this motion is reversed when viewing the moon from the southern hemisphere, and near the equator, something else happens entirely. Some of this information can be found on this webpage on moon phases.

与其仅使用三个简化案例(北部、南部和赤道),我更希望能够根据地球上的纬度和经度计算出月球观测旋转的确切角度:

Instead of using just three simplified cases (northern, southern, and equator), I would ideally like to be able to calculate the exact angle of moon viewing rotation as a function of a latitude and longitude on Earth:

double viewingRotationAngle = calculateAngle(earthLat, earthLng);

有谁知道如何做这个数学运算,或者我可以在哪里找到更多信息来自己计算?我已经搜索了几天,还没有找到我要找的东西.提前致谢.

Does anyone know how to do this math, or where I could find more information to potentially figure it out myself? I have searched for several days and haven't yet found what I'm looking for. Thanks in advance.

澄清一下,我寻找的旋转角度是月球可见圆盘的二维旋转.

我做了更多的研究并意识到这个问题可能与 天球 一般而不是月亮.从地球上可见的所有天体,包括我们的月球,都固定在天球上,这就是相对于我们在地球上的位置旋转的东西.因此,与其专注于以月球为中心的解决方案,我还需要弄清楚如何计算天球本身的旋转.我还没有完全理解这个.

I did more research and realized this questions may have more to do with the celestial sphere in general rather than the moon specifically. All celestial bodies visible from Earth, including our moon, are fixed on the celestial sphere, and this is what rotates relative to our position on Earth. So instead of focusing on a lunar-centric solution, I need to figure out how to calculate the rotation of the celestial sphere itself. Still haven't wrapped my head around this one.

我发现了一篇关于 Crescent Moon Tilt 的文章,其中可能是解决我问题的关键.数学很明显/可以推导出来,因为大多数天文模拟软件可以显示任何天体从地球的确切位置和视角.我认为困难的部分是我想要的单件被包装成涵盖整体定位的更复杂的方程.我将努力通过阅读和重新阅读这些有用的信息来推导出一个更简单的版本.

I found an article on Crescent Moon Tilt which may be the key to solving my problem. The math is obviously out there/can be derived, since most astronomical simulation software can show the exact location and perspective from earth for any celestial body. I think the hard part is that the single piece I want is wrapped into much more complicated equations that cover overall positioning. I will work to derive a simpler version by reading and re-reading this helpful information.

推荐答案

你需要 4 个东西才能获得从地球上看到的月光方向:

You need 4 things to get Moon light direction as seen from Earth:

1- 太阳高度.2- 太阳方位角.3- 月球高度.4- 月球方位角.[所有高度都是无空气的(没有折射效应),所有角度都是度数.]

1- Sun altitude. 2- Sun azimuth. 3- Moon altitude. 4- Moon azimuth. [All altitudes are airless (without refraction effect), and all angles in degrees.]

我使用这个 PHP 函数从这些东西中获取光的旋转:

I use this PHP function to get the light's rotation from these things:

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;
}

这是新月的顺时针方向.

This is the direction of the crescent in degrees clockwise.

这篇关于计算月球表面旋转作为地球坐标的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆