地心地固坐标系与北天东坐标系的转换

地心地固坐标系的原点在地心,Z轴指向北极点,X轴指向本初子午线与赤道的交点,Y轴指向符合右手定则,如下图所示。
图1 地心地固坐标系

北天东坐标系的原点在任选的一点,X轴指向北,Y轴指向天,Z轴指向东,如下图所示。
图2 北天东坐标系

下面实现地心地固坐标系到北天东坐标系的转换,问题描述为:设一点在地心地固坐标系下的坐标是,设北天东坐标系的原点点在地心地固坐标系下的坐标是点的经度和纬度分别是。求在北天东坐标系下的坐标


要实现坐标系转换,其实就是平移和旋转

**第一步,**进行平移,令,相当于得到点在图3坐标系下的坐标。
图3

**第二步,**将图3的坐标系旋转成图2的样子。这里需要多次旋转,每次以某个轴为对称轴进行旋转,对应的坐标变换参考这篇文章。这里共需要3次旋转。

**(1)**以y1轴为对称轴,顺时针旋转90°,得到图4的样子。
图4

这里绕y1轴顺时针旋转90°,相当于逆时针旋转-90°,因此得到旋转矩阵:

点在图4坐标系下的坐标是,则

(2) 以x2轴为对称轴,顺时针旋转,得到图5的样子。经过这一步旋转,x3轴和y3轴就处在过O3点的经度线所在的平面了,而且z3轴指向了东。
图5

对应的旋转矩阵为

点在图5坐标系下的坐标是,则

(3) 以z3轴为对称轴,顺时针旋转。经过这一步,把x3轴拧向了北,y3轴拧向了天,于是得到图2中的北天东坐标系。

对应的旋转矩阵为

因此,点在北天东坐标下的坐标为

综上,变换到的公式可以写成:

化简得:

相关推荐
6Hzlia1 天前
【Hot 100 刷题计划】 LeetCode 739. 每日温度 | C++ 逆序单调栈
c++·算法·leetcode
良木生香1 天前
【C++初阶】:STL——String从入门到应用完全指南(1)
c语言·开发语言·数据结构·c++·算法
XWalnut1 天前
LeetCode刷题 day16
数据结构·算法·leetcode·链表·动态规划
foundbug9991 天前
基于混合整数规划的电池容量优化 - MATLAB实现
数据结构·算法·matlab
memcpy01 天前
LeetCode 2452. 距离字典两次编辑以内的单词【暴力;字典树】中等
算法·leetcode·职场和发展
王老师青少年编程1 天前
csp信奥赛C++高频考点专项训练之贪心算法 --【排序贪心】:魔法
c++·算法·贪心·csp·信奥赛·排序贪心·魔法
wearegogog1231 天前
基于和差波束法的单脉冲测角MATLAB实现
人工智能·算法·matlab
AI科技星1 天前
灵魂商数(SQ) · 全域数学统一定义【乖乖数学】
算法·机器学习·数学建模·数据挖掘·量子计算
晓觉儿1 天前
【GPLT】2026年第十一届团队程序设计天梯赛赛后题解(已写2h,存档中)
数据结构·c++·算法·深度优先·图论