本文主要从数学的角度来证明如何求解地球的法向量。从以下几个方面进行介绍:
1、地球坐标系
2、笛卡尔坐标系下法向量证明
3、经纬度坐标系下法向量证明
4、经纬度转笛卡尔证明
5、东北天的坐标向量证明
地球坐标系
这里解释用笛卡尔坐标系表示和用经纬度来表示。
地心地固坐标系(Earth-Centered, Earth-Fixed) 又简称地心坐标系,英文简称(ECEF)。
用笛卡尔坐标系表示:

笛卡尔坐标系
其中:
1、O为椭球的中心点
2、Z轴指向椭球的北极N
3、X轴指向起始子午面与赤道的交点
4、Y轴位于赤道面上,且按右手坐标系与X轴成90度夹角
经纬度表示

假设空间某点P,用经纬度表示的话,你们B代表纬度,L代表经度,H代表大地高。
纬度B:P点沿着地球法线方向与赤道面的夹角。向北为正称为北纬(0-90),向南为负称为南纬(0-90) 实际表示可以用(-90 --90)
纬度L:NPS面与参考椭球起始子午面NGS的夹角。由起始子午面起算,向东为正称为东经(0-180),向西为负称为西经(0-180)。实际表示用(-180-180)。
大地高H:表示P点沿该点法线到椭球面的距离,向上为正,向下为负。
笛卡尔坐标系下法向量证明
笛卡尔坐标系下,地球曲面可以用下面函数表达:

我们先从曲线的切线开始研究,先选择曲面上的任意一条曲线,可以用下面函数表示:

曲线上任意一点的切线,可以用下面函数表达式表示:

为什么可以这么表示呢?我的思路如下:
假设取曲线上两点:A(x1,y1,z1) 和 B(x2,y2,z2)
那么AB向量可以表示如下:

AB向量相同方向的向量可以表示如下:

当我们x2和x1无线接近的时候,其实曲线的任意一点的切线即为

接下来我们回到地球曲面函数

我们对曲面函数对x求偏导。

换算成向量点乘的形式:

我们可以发现向量(Fx,Fy,Fz)与所有曲线的切线垂直。所以得出曲面某点的法线为(Fx,Fy,Fz)。
地球的曲面方程为:

那么椭球某点法向量为:

经纬度坐标系下法向量证明
经纬度的定义可以见上图,这里在重复一下:

我们把发现PO'平移到经过原点,可以绘制出下图,AG即新的法向量,G点位法向量平移之后与球面的交点。

我们可以算出如下结果:

最终可以求出AG的向量如下。

同时去掉R,法向量的方向性没有变化,可以写出法向量与经纬度之间的关系:

经纬度转笛卡尔证明
已知某点的经纬度和大地高,求其笛卡尔坐标系坐标。
根据经纬度坐标系下法向量证明,我们可以通过经纬度和大地高计算出地球的法向量,而且是个明确的值。假设计算法向量为n。
根据笛卡尔坐标系下法向量证明,我们可以通过笛卡尔坐标系计算出法向量如下:

我们这里只能保证法向量的方向一致,我们可以将法向量n写成下面的格式

我们两边*呈上一个向量如下:

这里的*不是点乘也不是X乘,其运行定义参考下面函数:
template<typename T, qualifier Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2)
{
return vec<3, T, Q>(
v1.x * v2.x,
v1.y * v2.y,
v1.z * v2.z);
}
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv11438