如标题所述,如何在不偏差的情况下随机选择地球表面上的坐标?简单的解决方案是使用 rand(-90, 90) 和 rand(-180, 180),但这会使极地区域比赤道区域更有利。
如标题所述,如何在不偏差的情况下随机选择地球表面上的坐标?简单的解决方案是使用 rand(-90, 90) 和 rand(-180, 180),但这会使极地区域比赤道区域更有利。
因此,如果您在圆柱体的曲面上随机均匀分布的选取一个点(因为它与矩形同构),然后将该点水平投影回球面,那么您的分布将具有以下属性:点在任何区域中的概率与该区域的面积成比例。
这意味着选择经度在范围(-pi,pi]内均匀分布,并将纬度设置为arccos(y)-pi/2
,其中y在范围(-1,1]内均匀分布。
由于您使用的arccos
浮点类型的精度(或者说缺乏精度),仍然会有一些偏差。我不确定是否会注意到这一点,但如果确实如此,而且您想要修复它,那么可以使y值在接近+/-1时更加精确(实际上是通过在小数点后生成更多位)。或者,将范围分成两个部分,在接近0的地方生成额外的位,然后使用准确的arccos_1_minus_x
函数。