计算球面面积?

时间:2010-12-26 05:36:41

标签: c++ math

我使用了“ Girard定理”来计算具有大圆边的球面多边形的面积,如前一个answer中所述。

在大多数情况下,它工作正常,但我遇到负面区域案例。逆时针方向的那些顶点的坐标(lon / lat)是(弧度):

5.240747351 1.016447132

5.268216612 1.067869338

5.216315614 1.072132414

5.129855176 1.00109075

5.080803026 0.950935874

5.134615486 0.9460488828

我用NCL绘制了多边形(对不起,我现在无法发布图像:()

如您所见,内角4接近180度(179.77708422692623)。计算出的过量是-0.16533548347651544度。任何的想法?如果您需要查看代码,我可以稍后发布。 :)

1 个答案:

答案 0 :(得分:1)

我已经弄明白了!由于“acos”的值范围是[0,PI],因此有问题的内角不是~179而是~181。因此,应对每个角度进行一些判断(无论计算的角度是内部还是外部)。