📄 c_xy.c
字号:
#include"p30f4013.h"
#include"math.h"
#include"stdio.h"
void main(void)
{
float a0,a3,a4,a5,a6,N,cb,sb,c2b,rjd,rwd,L0,L1,L,m,t,L2,L3,x,y;
int N1;
const float pi=3.141592653589,p=206264.806247; //定义π值及一弧度的秒值
rwd=30.49;
rjd=114.3;
N1=(int)(rjd/6); //计算某点已知经度后的带号,以便下一步计算中央子午线的经度
L0=6*N1-3; //按6°带计算中央子午线的经度
L1=rjd-L0; //计算与中央子午线的经度差;
m=(int)L1; //经度于中央子午线的差值的度提取出来
t=L1-m; //再将分提取出来
L2=m*3600+t*3600; //转换成秒的格式
L=L2/p; //标准化为弧度
L3=L*L; //计算差值的平方
rwd=(rwd*pi)/180; //将经纬度都化成弧度
rjd=(rjd*pi)/180;
cb=cos(rwd); //计算经纬度的正余弦
sb=sin(rwd);
c2b=cb*cb; //计算余弦的平方
a0=32140.404-(135.3302-(0.7092-0.0040*c2b)*c2b)*c2b;
a3=(0.3333333+0.001123*c2b)*c2b-0.1666667;
a4=(0.25+0.00252*c2b)*c2b-0.04166;
a5=0.0083-(0.1667-(0.1968+0.0040*c2b)*c2b)*c2b;
a6=(0.166*c2b-0.084)*c2b;
N=6399698.902-(21562.267-(108.973-0.612*c2b)*c2b)*c2b; //计算公式所需系数
x=6367558.4969*rwd-(a0-(0.5+(a4+a6*L3)*L3)*L3*N)*sb*cb;
y=(1+(a3+a5*L3)*L3)*L*N*cb; //按优化公式计算高斯-克吕格投影下的x,y坐标
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -