type
Post
status
Published
date
Apr 9, 2023
slug
globe3d/1
summary
在渲染三维地球时大地表面法线很有用,比如计算阴影,在地理坐标系中精确的定义高度。
tags
教程
理论地球
category
教程
icon
password
学完本章你将了解:
- 地球的数学模拟
- WGS84坐标系
- 什么是大地坐标系和笛卡尔坐标系(空间直角坐标系)
地球的数学模拟
构建一个3D地球,首先需要用数学公式描述出地球,但地球表面高低起伏,高处珠穆拉玛峰8848米,低处马里亚纳海沟11000米,上下相差19848米,极其不规则,所以我们只能用数学公式近似描述。
WGS84椭球体
长轴为6378137m
短轴为6356752.3142m
原点在地球质心
WGS84坐标系
WGS84坐标原点在地球质心,Z轴指向北极,X轴指向0度经线的位置,Y轴通过右手规则确定,指向。赤道在XY平面上。
WGS84坐标系固定在地球上,地球旋转,坐标系也旋转,地球上的物体跟着旋转。
在理论地球中,WGS84坐标系的单位是米。

右手定则:中指指向X轴指向自己,食指指向Z轴指向北极,大拇指即是Y轴的方向。XYZ三轴互相垂直。

有了坐标系,相当于我们有了一把尺子,有了一个空间,拿着尺子在空间中一点点量测,我们就能构建出一个接近真实的地球。
大地坐标系和地理坐标系
大地坐标系是大地测量中以参考椭球面为基准面建立起来的坐标系,也就是地理坐标系,地面点的位置用大地经度L、大地纬度B和大地高度H表示,单位为度分秒。大地坐标系以纬度B、经度L、大地高H描述一点的空间位置。 纬度的定义是某点的地面法线与赤道面的夹角,以赤道面为起算点,向南为负,范围为-90°~0°,向北为正,范围为0°~90°;经度L由起始大地子午面起算,向东为正,向西为负,范围是-180°~180°。
大地坐标系上任一点可对应笛卡尔坐标系中一点
计算大地表面某点的法线
在渲染三维地球时大地表面法线很有用,比如计算阴影,在地理坐标系中精确的定义高度。
球面点的法线很简单,假如球的中心在原点,我们可以把当作向量,归一化()该向量即可得到的法线。将这个过程应用在地心椭球体(比如WGS84椭球体)即可得到地心表面法线(geocentric surface normal),之所以叫地心,是因为它从椭球体的原点发出穿过。如果椭球不是一个完美球体,这个向量对于大多数点来说实际上不是垂直于曲面的。
大地表面法线(geodetic surface normal)是椭球体上的点的实际表面法线,可以理解为铅垂线。当椭球是正球时,大地表面法线和地心表面法线相等,椭球越扁,两者相差越大。

大地表面法线计算公式要比地心表面法线稍微复杂些。
a,b,c是椭球体的半径,是椭球体表面点,是大地表面法线。
JL1
文字表述:椭球半径和表面点已知时,能计算出大地表面法线。
函数表述:
//p是地球表面一点 //e是椭球体默认值为WGS84椭球体 //返回:点P的大地表面法线 JL1 = (p:Vec3,e:Ellipsoid = WGS84Ellipsoid)⇒Vec3
结论的用处:
一是用公式总结上述过程
二是定义一个函数JL1 = (p:Vec3,e:Ellipsoid = WGS84Ellipsoid)⇒Vec3
三是当使用JL1(P(x,y,z))时,意味着将得到一个点P的大地表面法线
- 作者:南山无物
- 链接:http://www.supony.top//article/globe3d/1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。