




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 . #include<math.h>#include<stdio.h>#define PI 3.97932#define P 206264.5void main()long double AngleToRadian(long double alfa); long double RadianToAngle(long double alfa); long double Bf(long double a,long double b,long double x); void GSZS(long double a,long double b,long double l,long
2、 double B,long double *x,long double *y); void GSFS(long double a,long double b,long double Bf,long double y,long double *B,long double *l); char XZ,XZZF,XZSL; int N,num; long double a,b,B,L,x,y; char YN='O' long double L1,B1,L0,l; long double *pointer_x,*pointer_y; long double FSB,FSL;long
3、double *pointer_B,*pointer_L;long double DH; pointer_B=&FSB;pointer_L=&FSL;pointer_x=&x;pointer_y=&y;printf("n=歡迎使用高斯投影計(jì)算程序=n");printf(" 說(shuō)明n");printf("1.程序可實(shí)現(xiàn)在任意橢球上進(jìn)行高斯三度帶和六度帶正算和反算;n");printf("2.經(jīng)緯度的輸入輸出格式為:度分秒,例如:113°05'13.68466"輸入時(shí)為:
4、113.051368466;n");printf("3.y坐標(biāo)的輸入輸出格式為:帶號(hào)*10E6+500公里+自然坐標(biāo),例如:y=18637682.388,18為帶號(hào),自然坐標(biāo)為137682.388;n");printf("4.其余可按照提示完成,如有疑問(wèn)可發(fā)送Email至gys_long126.,我們將盡快為您解答。");printf("n=n");printf("請(qǐng)選擇計(jì)算方式:A.三度帶正算;tB.三度帶反算;tC.六度帶正算;tD.六度帶反算n");printf("請(qǐng)選擇字母后回車(chē):&qu
5、ot;);scanf("%c",&XZ);if(XZ='A'|XZ='a')XZZF='Z'XZSL='S'printf("注意:您將要進(jìn)行的是三度帶正算!");else if(XZ='B'|XZ='b')XZZF='F'XZSL='S'printf("注意:您將要進(jìn)行的是三度帶反算!");else if(XZ='C'|XZ='c')XZZF='Z'XZ
6、SL='L'printf("注意:您將要進(jìn)行的是六度帶正算!");else if(XZ='D'|XZ='d')XZZF='F'XZSL='L'printf("注意:您將要進(jìn)行的是六度帶反算!");else printf("警告:您操作有誤!"); printf("是否繼續(xù)Y/N:");scanf("%s",&YN);printf("n");doif(YN='N'|YN=
7、39;n')printf("歡迎您繼續(xù)使用此程序,如有疑問(wèn)可發(fā)送Email至gys_long126.,我們將盡快為您解答!n");break; if(XZZF='Z'|XZZF='z')printf("請(qǐng)選擇橢球:n1.克拉索夫斯基橢球; 2.1975年國(guó)際橢球體; 3.WGS-84橢球體; 4.自定義橢球n");printf("請(qǐng)選擇數(shù)字后回車(chē):");scanf("%d",&num);switch(num)case 1: a=6378245.0000000000;b
8、=6356863.0187730473;printf("注意:您選擇的是克拉索夫斯基橢球!n請(qǐng)輸入經(jīng)度L和緯度B:(輸入時(shí)經(jīng)度和緯度之間用逗號(hào)隔開(kāi))n");scanf("%lf,%lf",&L,&B);L0=(XZSL='L'|XZSL='l')?(N=(int)(L+3)/6.+0.5)*6-3):(N=(int)(L/3.+0.5)*3);printf("t=中間計(jì)算過(guò)程結(jié)果=nn");printf("ttN=%dnttL0=%fn",N,L0);B1=Angle
9、ToRadian(B);/printf("HD=%lf",B1);L0=AngleToRadian(L0);L1=AngleToRadian(L);l=L1-L0;GSZS(a,b,l,B1,pointer_x,pointer_y);printf("nt=計(jì)算結(jié)果=n");printf("nttx=%-20.4lftty=%-20.4lfn",x,(y+500000+N*1000000);printf("nt=n");break;case 2: a=6378140.0000000000;b=6356755.2881
10、575287;printf("注意:您選擇的是1975年國(guó)際橢球體!n請(qǐng)輸入經(jīng)度L和緯度B:(輸入時(shí)經(jīng)度和緯度之間用逗號(hào)隔開(kāi))n");scanf("%lf,%lf",&L,&B);L0=(XZSL='L'|XZSL='l')?(N=(int)(L+3)/6.+0.5)*6-3):(N=(int)(L/3.+0.5)*3);printf("t=中間計(jì)算過(guò)程結(jié)果=nn");printf("ttN=%dnttL0=%fn",N,L0);B1=AngleToRadian(B)
11、;L0=AngleToRadian(L0);L1=AngleToRadian(L);l=L1-L0;GSZS(a,b,l,B1,pointer_x,pointer_y);printf("nt=計(jì)算結(jié)果為=n");printf("nttx=%-20.3lftty=%-20.3lfn",x,(y+500000+N*1000000);printf("nt=n");break;case 3: a=6378137.0000000000;b=6356752.3142;printf("注意:您選擇的是WGS-84橢球體!n請(qǐng)輸入經(jīng)度L和緯
12、度B:(輸入時(shí)經(jīng)度和緯度之間用逗號(hào)隔開(kāi))n");scanf("%lf,%lf",&L,&B);L0=(XZSL='L'|XZSL='l')?(N=(int)(L+3)/6.+0.5)*6-3):(N=(int)(L/3.+0.5)*3);printf("t=中間計(jì)算過(guò)程結(jié)果=nn");printf("ttN=%dnttL0=%fn",N,L0);B1=AngleToRadian(B);L0=AngleToRadian(L0);L1=AngleToRadian(L);l=L1-L
13、0;GSZS(a,b,l,B1,pointer_x,pointer_y);printf("nt=計(jì)算結(jié)果為=n");printf("nttx=%-20.3lftty=%-20.3lfn",x,(y+500000+N*1000000);printf("nt=n");break;case 4: printf("注意:您選擇的是自定義橢球體!n請(qǐng)輸入長(zhǎng)半軸a、短半軸b、經(jīng)度L和緯度B:(輸入時(shí)數(shù)據(jù)之間用逗號(hào)隔開(kāi))n");scanf("%lf,%lf,%lf,%lf",&a,&b,&am
14、p;L,&B);L0=(XZSL='L'|XZSL='l')?(N=(int)(L+3)/6.+0.5)*6-3):(N=(int)(L/3.+0.5)*3);printf("t=中間計(jì)算過(guò)程結(jié)果=nn");printf("ttN=%dnttL0=%fn",N,L0);B1=AngleToRadian(B);L0=AngleToRadian(L0);L1=AngleToRadian(L);l=L1-L0;GSZS(a,b,l,B1,pointer_x,pointer_y);printf("nt=計(jì)算結(jié)果為
15、=n");printf("nttx=%-20.3lftty=%-20.3lfn",x,(y+500000+N*1000000);printf("nt=n");break;default:printf("您選擇了錯(cuò)誤的數(shù)字n");printf("是否繼續(xù)Y/N:");scanf("%s",&YN);if(YN='N'|YN='n')printf("歡迎您下次使用此程序,如有疑問(wèn)可發(fā)送Email至gys_long126.,我們將盡快為您解答
16、!n");break;else if(XZZF='F'|XZZF='f')printf("請(qǐng)選擇橢球:n1.克拉索夫斯基橢球; 2.1975年國(guó)際橢球體; 3.WGS-84橢球體; 4.自定義橢球n");printf("請(qǐng)選擇數(shù)字后回車(chē):");scanf("%d",&num);/printf("請(qǐng)輸入中央子午線(xiàn)L0:");/scanf("%d",&N);switch(num)case 1:a=6378245.0000000000;b=63
17、56863.0187730473;printf("注意:您選擇的是克拉索夫斯基橢球!n請(qǐng)輸入x坐標(biāo)和y坐標(biāo):(輸入時(shí)x坐標(biāo)和y坐標(biāo)之間用逗號(hào)隔開(kāi))n");scanf("%lf,%lf",&x,&y);printf("t=中間計(jì)算過(guò)程結(jié)果=nn");FSB=Bf(a,b,x);printf("ttBf=%-20.10lfn",FSB); /DH=floor(y/1000000); /y=y-DH*1000000-500000;/GSFS(a,b,FSB,y,pointer_B,pointer_L);F
18、SB=RadianToAngle(FSB);FSL=RadianToAngle(FSL);L0=(XZSL='L')?(DH*6-3):(DH*3);printf("ttDH=%-20.0lfnttL0=%-20.0lfnttl=%-20.10lfn",DH,L0,FSL);/printf("nt=計(jì)算結(jié)果=n");printf("nttB=%-20.10lfttL=%-20.10lfn",FSB,L0+FSL);printf("nt=n");break;case 2: a=6378140.0000
19、000000;b=6356755.2881575287;printf("注意:您選擇的是1975年國(guó)際橢球體!n請(qǐng)輸入x坐標(biāo)和y坐標(biāo):(輸入時(shí)x坐標(biāo)和y坐標(biāo)之間用逗號(hào)隔開(kāi))n");scanf("%lf,%lf",&x,&y);printf("t=中間計(jì)算過(guò)程結(jié)果=nn");FSB=Bf(a,b,x);printf("ttBf=%-20.10lfn",FSB); /DH=floor(y/1000000); /y=y-DH*1000000-500000;/GSFS(a,b,FSB,y,pointer_B
20、,pointer_L);FSB=RadianToAngle(FSB);FSL=RadianToAngle(FSL);L0=(XZSL='L')?(DH*6-3):(DH*3);/printf("ttDH=%-20.0lfnttL0=%-20.0lfnttl=%-20.10lfn",DH,L0,FSL);/printf("nt=計(jì)算結(jié)果=n");printf("nttB=%-20.10lfttL=%-20.10lfn",FSB,L0+FSL);printf("nt=n");break;case 3:a
21、=6378137.0000000000;b=6356752.3142;printf("注意:您選擇的是WGS-84橢球體!n請(qǐng)輸入x坐標(biāo)和y坐標(biāo):(輸入時(shí)x坐標(biāo)和y坐標(biāo)之間用逗號(hào)隔開(kāi))n");scanf("%lf,%lf",&x,&y);printf("t=中間計(jì)算過(guò)程結(jié)果=nn");FSB=Bf(a,b,x);printf("ttBf=%-20.10lfn",FSB); /DH=floor(y/1000000); /y=y-DH*1000000-500000;/GSFS(a,b,FSB,y,poi
22、nter_B,pointer_L);FSB=RadianToAngle(FSB);FSL=RadianToAngle(FSL);L0=(XZSL='L')?(DH*6-3):(DH*3);/printf("ttDH=%-20.0lfnttL0=%-20.0lfnttl=%-20.10lfn",DH,L0,FSL);/printf("nt=計(jì)算結(jié)果=n");printf("nttB=%-20.10lfttL=%-20.10lfn",FSB,L0+FSL);printf("nt=n");break;ca
23、se 4: printf("注意:您選擇的是自定義橢球體!n請(qǐng)輸入長(zhǎng)半軸a、短半軸b、x坐標(biāo)和y坐標(biāo):(輸入時(shí)數(shù)據(jù)之間用逗號(hào)隔開(kāi))n");scanf("%lf,%lf,%lf,%lf",&a,&b,&x,&y);printf("t=中間計(jì)算過(guò)程結(jié)果=nn");FSB=Bf(a,b,x);printf("ttBf=%-20.10lfn",FSB); DH=floor(y/1000000); y=y-DH*1000000-500000;GSFS(a,b,FSB,y,pointer_B,p
24、ointer_L);FSB=RadianToAngle(FSB);FSL=RadianToAngle(FSL);L0=(XZSL='L')?(DH*6-3):(DH*3);printf("ttDH=%-20.0lfnttL0=%-20.0lfnttl=%-20.10lfn",DH,L0,FSL);/printf("nt=計(jì)算結(jié)果=n");printf("nttB=%-20.10lfttL=%-20.10lfn",FSB,L0+FSL);printf("nt=n");break;default:pri
25、ntf("您選擇了錯(cuò)誤的數(shù)字n");printf("是否繼續(xù)Y/N:");scanf("%s",&YN);if(YN='N'|YN='n')printf("歡迎您下次使用此程序,如有疑問(wèn)可發(fā)送Email至gys_long126.,我們將盡快為您解答!n");break;else printf("警告:您選擇錯(cuò)誤!n");printf("是否繼續(xù)Y/N:");scanf("%s",&YN);while(YN=&
26、#39;Y'|YN='y'); long double AngleToRadian(long double alfa) long double alfa1,alfa2;long double HS;alfa = alfa + 0.001; alfa1=floor(alfa)+floor(alfa-floor(alfa)*100.)/60;alfa2=(alfa*100.-floor(alfa*100.0)/36;alfa1+=alfa2;HS=alfa1/180.*PI;return(HS);long double RadianToAngle(long double a
27、lfa)long double alfa1,alfa2;alfa=alfa*180./PI;alfa1=floor(alfa)+floor(alfa-floor(alfa)*60.)/100.;alfa2=(alfa*60.-floor(alfa*60.)*0.006;alfa1+=alfa2;return(alfa1);void GSZS(long double a,long double b,long double l,long double B,long double *x,long double *y) long double e,e1,t,u2; long double m0,m2,
28、m4,m6,m8,a0,a2,a4,a6,a8,X; long double n0,n2,n4,n6,n8,sin2B,sin4B,sin6B,sin8B,N; e=(sqrt(a*a-b*b)/a; e1=(sqrt(a*a-b*b)/b; t=tan(B);u2=e1*e1*cos(B)*cos(B);m0=a*(1-e*e);m2=3.0/2.0*e*e*m0;m4=5.0/4.0*e*e*m2;m6=7.0/6.0*e*e*m4;m8=9.0/8.0*e*e*m6;a0=m0+m2/2.0+3.0/8.0*m4+5.0/16.0*m6+35.0/128.0*m8;a2=m2/2.0+m
29、4/2.0+15.0/32.0*m6+7.0/16.0*m8;a4=m4/8.0+3.0/16.0*m6+7.0/32.0*m8;a6=m6/32.0+m8/16.0;a8=m8/128.0;X=a0*B-a2/2.0*sin(2*B)+a4/4.0*sin(4*B)-a6/6.0*sin(6*B)+a8/8.0*sin(8*B);printf("ttX=%20.10lfn",X);n0=a;n2=1.0/2.0*e*e*n0;n4=3.0/4.0*e*e*n2;n6=5.0/6.0*e*e*n4;n8=7.0/8.0*e*e*n6;sin2B=pow(sin(B),2);
30、sin4B=pow(sin(B),4);sin6B=pow(sin(B),6);sin8B=pow(sin(B),8);N=n0+n2*sin2B+n4*sin4B+n6*sin6B+n8*sin8B;printf("ttN=%20.10lfn",N);*x=X+N/2.0*t*cos(B)*cos(B)*l*l+N/24.0*t*(5-t*t+9*u2+4*pow(u2,2)*pow(cos(B),4)*pow(l,4)+N/720.0*t*(61-58*t*t+pow(t,4)*pow(cos(B),6)*pow(l,6); *y=N*cos(B)*l+N/6.0*(1
31、-t*t+u2)*pow(cos(B),3)*pow(l,3)+N/120.0*(5-18*t*t+pow(t,4)+14*u2-58*u2*t*t)*pow(cos(B),5)*pow(l,5);long double Bf(long double a,long double b,long double x)long double e,m0,m2,m4,m6,m8; long double a0,a2,a4,a6,a8;long double B,FB,Bn1,Bn;int n=0;e=(sqrt(a*a-b*b)/a; m0=a*(1-e*e);m2=3.0/2.0*e*e*m0;m4=5.0/4.0*e*e*m2;m6=7.0/6.0*e*e*m4;m8=9.0/8.0*e*e*m6;a0=m0+m2/2.0+3.0/8.0*m4+5.0/16.0*m6+35.0/128.0*m8;a2=m2/2.0+m4/2.0+15.0/32.0*m6+7.0/16.0*m8;a4=m
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文具企業(yè)競(jìng)爭(zhēng)力分析與提升策略考核試卷
- 搬家行業(yè)節(jié)能減排與綠色物流考核試卷
- 期貨市場(chǎng)交易風(fēng)險(xiǎn)監(jiān)測(cè)與預(yù)警考核試卷
- 小學(xué)生抗旱主題班會(huì)課件
- 客廳家具批發(fā)考核試卷
- 工業(yè)氣體批發(fā)考核試卷
- 2023視頻監(jiān)控及火災(zāi)報(bào)警系統(tǒng)施工作業(yè)指導(dǎo)書(shū)
- 上海建房合同范本
- 空調(diào)技術(shù)入股合同范本
- 汽修門(mén)頭合作合同范本
- 2025年山東青島自貿(mào)發(fā)展有限公司招聘筆試參考題庫(kù)含答案解析
- 液化氣罐的使用和安全防范
- 2025年中考物理總復(fù)習(xí)《內(nèi)能》專(zhuān)項(xiàng)測(cè)試卷含有答案
- 會(huì)計(jì)法律法規(guī)答題答案
- 2024年無(wú)錫工藝職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 劇本殺范本完整版
- 北師大版一年級(jí)語(yǔ)文下冊(cè)第一單元元宵節(jié)《1元宵節(jié)》
- 2024年全球協(xié)作機(jī)器人產(chǎn)業(yè)發(fā)展白皮書(shū)
- 消防設(shè)施維保過(guò)程風(fēng)險(xiǎn)及保障措施
- 智能交通系統(tǒng)概論 課件全套 朱文興 第1-10章 緒論 - 城市交通子區(qū)控制系統(tǒng)
- 一鍵自動(dòng)生成spccpkmsappk數(shù)據(jù)工具
評(píng)論
0/150
提交評(píng)論