求c语言编写的经纬高转换成XYZ的程序,只要能简单运行的程序,不要复杂的界面,悬赏20个币,求帮忙.程序要求能读取存储经纬高数据的文本,转换成XYZ存成文本,给力的话可以再加币,多谢多谢!
纬度和高度都是可以直接转换的。只有经度,经度根据纬度可以换算,公式是cos(维度)*(赤道周长/360)
以地球为严格的球体来做的话,以球心画出一个参考的三围坐标系,不难得到
#include <stdio.h>
#include <math.h>
#define EARTH_RADIUS 6371
#define PI 3.1415926
int main()
{
float longitude = 0;
float latitude = 0;
float x = EARTH_RADIUS * cos(latitude) * cos(longitude);
float y = EARTH_RADIUS * cos(latitude) * sin(longitude);
float z = EARTH_RADIUS * sin(latitude);
printf("x: %f, y: %f, z: %f\n", x, y, z);
return 0;
}