高轨避让笔记1

dlat = 2asind(D/(2Re));
dlon = 2asind(Dcosd(30)/(2*Re));

这两句代码的作用是计算两个经纬度坐标点之间的球面距离。其中D是两个点在球面上的直线距离,Re是地球半径。公式中的"asin()"函数是反正弦函数,其返回值为弧度制下该角度的正弦值。因此,这里计算出的dlat和dlon分别是两个点在地球表面弧度下的纬度和经度差值。

这个公式来源于球面三角学中的"向心角公式",该公式给出了两个经纬度坐标点之间的距离。这个公式是以区分度和弧度的代码(d和q)的形式定义的,其中d是两点之间的大圆距离,q是这个距离除以地球的半径。将这个公式转化为角度制下的形式,即可得到dlat和dlon的公式:

dlat = 2asin(d/2Re)
dlon = 2asin(sin(dlon/2Re)/cos(lat1))
在这里我们使用的是第一个公式,其中d是两点之间的直线距离,Re是地球的半径。这个公式的原理是利用三角函数关系,将球面距离转化为大圆距离,然后再根据大圆距离和地球半径计算出弧度,最后将弧度转化为角度制度。这个计算公式的精度较高,可以用于地图应用等需要高精度距离计算的场合。

30°是因为在六边形的网格中,相邻两列之间的列与列之间的关系是发生偏移的。即,交错的两列网格点之间的距离,比相邻两列网格点之间的距离D要小。而这个偏移的角度正好是30°。因此,为了计算这个实际距离,我们需要将D*cos30°代入公式中,得到两个经度坐标点之间的弧度距离。换句话说,我们需要纠正因六边形网格的特殊结构而导致的误差,使得计算结果更加准确。

球面三角学中的"向心角公式"是一种计算大圆弧度的公式,它表示为:

d = 2 arcsin ⁡ ( sin ⁡ 2 ( φ 2 − φ 1 2 ) + cos ⁡ ( φ 1 ) cos ⁡ ( φ 2 ) sin ⁡ 2 ( λ 2 − λ 1 2 ) ) \displaystyle d = 2\arcsin \left(\sqrt{\sin^2\left(\frac{\varphi_2 - \varphi_1}{2}\right) + \cos(\varphi_1)\cos(\varphi_2)\sin^2\left(\frac{\lambda_2-\lambda_1}{2}\right)}\right) d=2arcsin(sin2(2φ2φ1)+cos(φ1)cos(φ2)sin2(2λ2λ1) )

其中, d d d是两个点之间的球面距离, φ 1 \varphi_1 φ1 φ 2 \varphi_2 φ2分别表示两个点的纬度, λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2表示两个点的经度。
其中,d是两个点之间的球面距离,lat1和lat2分别表示两个点的纬度,lon1和lon2表示两个点的经度。

这个公式来源于球面三角学中的"球面三角定理",它描述任意三角形的三个内角之和超过180度。在球面三角学中,两个点之间的大圆是球面上的最短路径,而球面角则用弧度制表示。根据这个定理,我们知道一个大圆的唯一性和其内角的总和是固定的,这使得我们可以通过测量大圆的一部分来计算出整个大圆的弧度。具体地,我们可以使用向心角公式计算连续两点之间的大圆弧度,从而得到它们之间的球面距离。

需要注意的是,向心角公式为我们提供了一种用于三角学测量的简单计算工具,但是它的精度不如更复杂的测量方法,例如Vincenty算法。然而,在地图应用、导航系统等领域,向心角公式已经得到了广泛应用,并且已经成为了计算球面距离的主要工具之一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值