Langage C pour calculer la longueur de l'arc du méridien entre deux latitudes

1. Entrez deux latitudes pour calculer la longueur de l'arc du cercle méridien entre les lignes de latitude.

Entrez 2 pour sélectionner l'ellipsoïde de Kirschner. Entrez 1 ° 2'3 ″ pour la latitude 1 et 51 ° 52′53 ″ pour la latitude 2, et calculez la longueur de l'arc du méridien entre les deux latitudes à 5541608,672 mètres.
Insérez la description de l'image ici

2. Une partie du code source

#include<stdio.h>
#include<math.h>
#define guoji75_a 6378140.00
#define guoji75_b 6356755.2881575287
#define PI 3.1415926535897932
#define keshi_a 6378245.0
#define keshi_b 6356863.0187730473

double zwxhc(int w[],int tuoqiu)
{
	double X,B;
	B =...
	if(tuoqiu==1)
		X=111133.005*B*180/PI-16038.528*sin(2*B)+16.833*sin(4*B)-0.022*sin(6*B);
	if(tuoqiu==2)
		X=111134.861*B*180/PI-16036.48*sin(2*B)+16.828*sin(4*B)-0.022*sin(6*B);
	return X;
}

main()
{
	double a, e1,e2,M,N,R,_a,_b,A,B,X,P,x1,x2;
	int weidu[3],fangweijiao[3],L1[3],L2[3],B1[3],B2[3],weidu1[3],weidu2[3];
	int i,fg;

	printf("请输入计算所用的椭球(国际75椭球请输1,克氏椭球请输2,回车结束。):\n\n");
	scanf_s("%d", &fg);
	if (fg == 1)
	{
		_a = guoji75_a;
		_b = guoji75_b;
	}
	else if (fg == 2)
	{
		_a = keshi_a;
		_b = keshi_b;
	}

	printf("下面计算两条纬线间的子午线弧长\n");
	printf("请输入第一个纬度:(度分秒之间用空格隔开,按回车结束)\n");
	for(i=0;i<3;i++)
		scanf_s("%d",&weidu1[i]);
	x1 = zwxhc(weidu1,fg);
	printf("请输入第二个纬度:(度分秒之间用空格隔开,按回车结束)\n");
	for(i=0;i<3;i++)
		scanf_s("%d",&weidu2[i]);
	x2 = zwxhc(weidu2,fg);
	printf("纬度%d°%d′%d″到纬度%d°%d′%d″之间的子午线弧长为%f米\n\n",weidu1[0],weidu1[1],weidu1[2],weidu2[0],weidu2[1],weidu2[2],x2-x1);
}

Je suppose que tu aimes

Origine blog.csdn.net/peter_young1990/article/details/114802377
conseillé
Classement