求纬度线上任意两点的球面距离

阅读: 评论:0

求纬度线上任意两点的球面距离

求纬度线上任意两点的球面距离

已知地球的平均半径为6371.393千米,并已知位于同一纬度上两点的纬度、经度值(单位为度),编写程序计算这两点之间的弦长和球面距离分别是多少千米。要求所有的实数使用double类型,圆周率的近似值取3.141592653589793。 提示:可以用正负来区分北纬与南纬、东经与西经。即北纬为正,南纬为负;东经为正,西经为负。

输入格式:

在第一行中输入一个位于区间[-90,90]内代表纬度的实数;在第二行中输入两个位于区间[-180,180]内代表经度的实数,以空格分隔。

输出格式:

输出弦长和球面距离的值,保留3位小数,以空格分隔,最后换行。

输入样例:

32.6
-56.1 163.8

输出样例:

10090.980 11645.760

#include <stdio.h>
#include <math.h>
#define pi 3.141592653589793
#define R 6371.393
int main()
{double c1,c2;double w,j1,j2,angle,r,a,y;scanf("%lf%lf%lf",&w,&j1,&j2);angle=j1-j2;if(angle<0){angle=-angle;}if(angle>180){angle=360-angle;}if(w<0){w=-w;}w=(w/180)*pi;angle=(angle/180)*pi;r=R*cos(w);if(r<0){r=-r;}c1=sqrt(2*r*r*(1-cos(angle)));y=(2*R*R-c1*c1)/(2*R*R);a=acos(y);c2=a*R;printf("%.3lf %.3lfn",c1,c2);return 0;
}

本文发布于:2024-01-30 14:38:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659669120718.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:球面   纬度   线上   两点   距离
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23