Math 求地球上一点相对于中心的法向量
给定地球上的一个大地坐标位置,我试图找到相对于地球中心点的法向量。我已经找到了从大地坐标到ECEF(一个从地心到点的向量)的转换方程,反之亦然,但我不太确定如何找到法向量。谢谢 地球表面上的任何矢量都垂直于地球半径(从地球中心到点的矢量)。切线始终垂直于半径向量到切点。查找法向量:Math 求地球上一点相对于中心的法向量,math,3d,geolocation,geometry,Math,3d,Geolocation,Geometry,给定地球上的一个大地坐标位置,我试图找到相对于地球中心点的法向量。我已经找到了从大地坐标到ECEF(一个从地心到点的向量)的转换方程,反之亦然,但我不太确定如何找到法向量。谢谢 地球表面上的任何矢量都垂直于地球半径(从地球中心到点的矢量)。切线始终垂直于半径向量到切点。查找法向量: 交叉积 叉积返回与其操作数垂直的向量,因此: 拿你的点A和两个接近点B,C(不是一行) 所以你得到了大地测量位置A(lon,lat)B(lon+d,lat)和C(lon,lat+d) 将A、B、C转换为ECEF或C
- 叉积返回与其操作数垂直的向量,因此:
- 拿你的点
和两个接近点A
(不是一行)B,C
- 所以你得到了大地测量位置
B(lon+d,lat)和A(lon,lat)
C(lon,lat+d)
- 将
转换为ECEF或CartessianA、B、C
- 创建向量
,u=B-A
v=C-A
normal=交叉(u,v)代码>
- 您应该将
向量规格化为单位大小normal
normal=normal/| normal |
- 此方法适用于任何类型的曲面(不仅仅适用于球体和椭球体)
越小,得到的正常值越精确(但必须是d
)d>0
- 在圆心为
的球体上,垂直于任何曲面点C
都很容易A
- 因为法线位于穿过点
和中心A
C
- 这两个点都应位于ECEF或卡特尔西亚
normal=A-C代码>
- 如果球体未使用
radius=1.0
normal=normal/| normal |
- 如果椭球体非常接近球体,并且不需要极高的精度,那么也可以用这种方法计算法线
- 然后法向量指向上,所以:
- 让
成为你的重点A(lon,lat,alt)
- 让
位于B(lon,lat,alt+d)
a
- 让
使点之间的距离为1个单位,因此:d=1
- 将
转换为ECEF或CartessianA、B
normal=B-A
- 由于
您不需要进行规范化d=1
- 看,你可能也会感兴趣