计算月球面自转与地球坐标的关系 [英] Calculating moon face rotation as a function of Earth coordinates

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

问题描述

我正在编写一个Android应用程序,该程序显示任何日期的月相.目前,我正在展示北半球的全景图(月亮的阳光照射部分从 right 移到 left 且旋转角度为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.

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

我做了更多的研究,并意识到这个问题可能与天球,而不是月亮.地球上所有可见的天体,包括我们的月亮,都被固定在天球上,这就是相对于我们在地球上位置的旋转.因此,我不必关注于以月球为中心的解决方案,而是需要弄清楚如何计算天球自身的旋转.仍然没有把我的头缠住这个头.

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.

我在新月形倾斜上找到了一篇文章,是解决我的问题的关键.数学显然是可以推导出的,因为大多数天文模拟软件都可以显示任何天体的确切位置和从地球的角度.我认为最困难的部分是我想要的单件包装成更复杂的方程式,这些方程式涵盖了整体定位.我将通过阅读和重新阅读这些有用的信息来努力获得一个更简单的版本.

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天全站免登陆