版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、測量平差程序設(shè)計1. 角度(度分秒)到弧度 An gleToRadian#define PI 3.14159265double AngleToRadian (double angle)int D, M ;double S,radia n, degree, an gle,MS ;D=int ( angle+0.3);MS=angle-D ;M=i nt( MS)*100+0.3);S=( MS*100-M)*100;degree=D+M/60.0+S/3600.0;radia n=degree*PI/180.0;return radia n;注意:防止數(shù)據(jù)溢出,要加個微小量,例如0.3.2. 弧
2、度換角度(度分秒)RadianToAngle#define PI 3.14159265double Radia nToA ngle(double radia n)int D,M;double S,radia n, degree,MS,a ngle;degree=radia n*180/PI;D=in t(degree);MS=degree-D;M=i nt(MS*60);S=(MS*60-M)*60;an gle=D+M/100.0+S/10000.0;return an gle;3. 已知兩點求坐標方位角Azimuth#in clude <math.h>double Azimut
3、h(double xi,double yi,double xj,double yj) double Dx,Dy,S,T;Dx=xj_xi;Dy=yj-yi;S=sqrt(Dx*Dx+Dy*Dy);if(S<1e-10) return 0;T=asi n( Dy/S);if(Dx<0) T=PI-T;if(Dx>0&&(Dy<0)|T<0)T=2*PI+T;return T;4開辟二維數(shù)組的動態(tài)空間的宏#i nclude <malloc.h>5. 釋放開辟的二維數(shù)組的空間free(A i注意:釋放空間與開辟空間相反,釋放空間是先釋放列,后
4、釋放行.6. 矩陣求轉(zhuǎn)置 transformmatrixvoid transformmatrix ( double *A , double *B , int i,int j)int m,n;for(m=0;m<=i;m+)for(n=0;n<=j;n+)Bn m=Am n:7. 矩陣相乘(mulmatrix)void mulmatrix(double *A,double *B,double *C,int i,int j,int k)int m, n,p;for(m=0;m<i;m+)for(n=0;n<j;n+)Cm n =0;for(p=0;p<k;p+)Cm
5、n+=Amp*Bp n:8. 矩陣求逆(countermatrix)#in elude <math.h>void countermatrix(double *T, double *s, double *r, double *Q,double *N, double *rt,int n)for(i=0;i< n;i+)s=Nii;for(k=0;k<i;k+)s-=Tki*Tki;Tii=sqrt(s)for(j=i+1;j< n;j+)s=Nij;for(k=0;k<i;k+)s-=Tki*Tkj;Tij=s/Tii;for(i=0;i< n;i+)fo
6、r(j=0;j< n;j+)Tij=0;for(i=n _1;i>=0;i+)rii=1/Tii;for(j=i+1;j <n ;j+)s=0;for(k=i;k<j-1;k+)s-=rik*Tkj;rij=s/Tii;for(i=0;i< n;i+)for(j=0;j< n;j+)rij=0;tran sformmatrix(r,rt, n,n) mulmatrix(r,rt,Q, n,n)9平差主程序之讀入數(shù)據(jù)typedef struct POINTchar n ame8;double x,y;int type;POINT;typedef struct
7、READV ALUEPOINT *begi n;POINT *en d;double value;READV ALUE;POINT *GETPOINT(char *n ame,POINT *pPoi nt,i nt nPoi nt) int i;for(i=0;i< nPoi nt;i+)if (strcmp(pPo in ti .n ame ,n ame)=0) return (pPoi nt+i)for(i=0;i< nPoi nt;i+)if(pPoi nti=NULL) strcmp(pPo in ti .n ame ,n ame); pPo in ti.type=0; r
8、eturn(pPoi nt+i);double AngleToRadian (double angle)int D, M ;double S,radia n, degree, an gle,MS ;D=int ( angle+0.3);MS=angle-D ;M=i nt( MS)*100+0.3);S=( MS*100-M)*100;degree=D+M/60.0+S/3600.0;radia n=degree*PI/180.0;return radia n;main ()POINT *pPoi nt=NULL;READVALUE *pDirect=NULL;READVALUE *pDist
9、a nce=NULL;int nPoin t, nKnownPoint,n Direct ,n Dista nce,i;double mo,mf,ms;char begi n 8,e nd8;FILE *fp=0;fp=fopen( c:datt1.txt ”fscanf(fp, "%d,%d,%d,%dn ”&nPoint,&nKnowPoint,&nDirect,&nDistanee)if(n Poi nt>0)pPoi nt=(POINT*)malloc( nDirect*sizeof(POINT);if(n Direct>0)pDi
10、rect=(READV ALUE*)malloc(nDirect*sizeof(READV ALUE);if(n Dista nce>0)pDistance=(READV ALUE*)malloc(nDistance*sizeof(RAADVALUE);fscanf(fp, "%lf,%lf,%lfn ",&mo,&mf,&ms);for(i=0;i< nKnownPoin t;i+)fscanf(fp, "%s,%lf,%lfn ”,pP,&pPointi.x,&pPointi.y); ty
11、pe=1;for( ;i <n Poi nt;i+)pPoi nti. name=NULL;pPoi nti.x=0;pPoi nti.y=O;pPo in ti.type=0;for(i=0;i< nDirect;i+)fscanf(fp, "%s,%s,%lfn ”,begin,end,&pDirecti.value);pDirecti.begi n=GetPo in t(begi n, pPo in t, nPoin t);pDirecti.e nd=GetPo in t(e nd,pPo in t, nPoin t);for(i=0;i< nDist
12、a nce;i+)fscanf(fp, "%s,%s,%lfn ”,begin,end,&pDistancei.value);pDista ncei.beg in=GetPo in t(begi n,pPo int,nPoin t);pDista ncei.e nd=GetPo in t(e nd,pPo in t, nPoin t); fclose(fp);10. 角度檢驗(checkangle)#in elude <math.h>int checka ngle(double an gle)int M,S;double MS;if(a ngle>=0&am
13、p;&an gle<360)MS=a ngle-(i nt)(a ngle);if(M<6)S=(i nt)(MS*1000);if(S%10<6)return 1;return 0;11. 前方交會#defi ne Pl=3014159265,double DEF, double DFG,/*此處調(diào)用程序角度換弧度AngleToRadian*/Qianfang(double XE, double YE, double XF, double YF, doubleDEG double DFE, double *DFE, double *DFG)double C,A,B;
14、C=DGE-DGF;A=DEF-DEG;B=DFG-DFE;if(C<-PI&&C>-2*PI)|(C>0&&C<PI)XG=(XE/ta n(B)+XF/ta n(A)-YE+YF)/(1/ta n(A)+ 1/ta n(B);YG=(YE/ta n(B)+YF/ta n(A)+XE-XF)/ (1/ta n( A)+ 1/ta n(B);if(C>-PI&&C<0)|(C>PI &&C<2*PI)XG=(XE/ta n(B)+XF/ta n(A)+YE-YF)/(1/ta n(A
15、)+ 1/ta n(B);YG=(YE/ta n(B)+YF/ta n(A)-XE+XF)/ (1/ta n( A)+ 1/ta n(B);12坐標概算全方向法子函數(shù)取出觀測方向GetAIIDirectint GetAIIDirect(char *name,int nDirect,READVALUE *pDirect, READV ALUE *pStation)int i,nCoun t=0;for(i=0;i< nDirect;i+)if(strcmp(pDirecti.begi n->n ame ,n ame)=0)pStati onnCoun t.begi n=p(pDire
16、ct nCoun t.begi n;pStati onnCoun t.e nd=p(pDirect nCoun t.e nd;pStati onnCoun t.value=p(pDirect nCoun t.value; nCoun t+;retur n nCount;坐標概算全方向法子程序?qū)崿F(xiàn)流程(coordi nate)coordinate (入口參數(shù)設(shè)置)READV ALUE pStatio n 50,pObject50;int nCoun t,i,j,k, m,n,p,no bject;for(i=0;i< nPoi nt;i+)n Cou nt=GetAIIDirect(pPo
17、i nti. name, nDirect,pStatio n)if( nCoun t>1)|( n Cou nt=1)for(j=0;j< nCoun t;j+)if(pStatio nj.e nd->type=1)for(k=0;k< nCou nt;k+)if(pStatio nk.e nd->type=0)no bject=GetAIIDirect(pStati on j.e nd-> name, nDirect,pDirect, pobject)m=-1;n=_1;for(p=0;p <no bject;p+)if(strcmp(pobject
18、p.e nd->n ame,pPo in ti .n ame)=0)m=p;if(strcmp(pobjectp.e nd->n ame,pStati on k.e nd->n ame)=O)n=p;if(m>=0&&n>=0)pPo in ti=pStati on k.e nd-pStati on j.e nd;pStatio nj.e nd=pObjectm.value-pObject n .value;Xe=pPoi nti.x;Ye=pPoi nti.y;Xf=pStatio nj.e nd->x;Yf=pStatio nj.e nd
19、->y;Lef=pStati on j.value;Leg=pStatio n k.value;Lfe=pObjectm.value;Lfg=pObject n .value;Qia nfan g(Xe,Xf,Ye,Yf,Lef,Leg,Lfe ,L fg,*Xg,*Yg;)pStati on k.e nd->x=*xg;pStati on k.e nd->y=*yg;pStati on k.e nd.type=2;13.坐標增量法(calcoordinate)子函數(shù)由端點名稱得邊長值的函數(shù)GetDista needouble GetDistance(char *begin,
20、char *end,int nDistance,READV ALUE *pDistanee)int i;for(i=0;i< nDista nce;i+)if(strcmp(pDista ncei.begi n->n ame,begi n)=0&&strcmp(pDista ncei.e nd->n ame,e nd=O)| |(strcmp(pDista ncei.begi n->n ame,e nd)=0&&strcmp(pDista ncei.e nd,begi n)=0)retur n pDista ncei.value;retu
21、rn -1;/*函數(shù)取出觀測方向GetAllDirect*/void calcoordinate(int nDirect,READV ALUE *pDirect,int nDistace,READV ALUE *pDistance,int nPoint,POINT *pPoint)int nPoint,nCount,n Direct ,n Dista nee;int m=-1,i,j,k;double x1,y1,x2,y2,A0,A,S,dx,dy;READV ALUE*pDirect=NULL;READVALUE pStatio n 50;for(i=0;i< nPoi nt;i+)
22、if(pPoi nti .type>0)n Cou nt=GetAIIDirect(pPoi nti. name, nDirect,pDirect,pStatio n50);for(j=0;j< nCoun t;j+)if(pStatio nj.e nd->type>0)m=j;if(m!=-1)for(k=0;k< nCou nt;k+)if(pStatio nk.e nd->type=0)x1= pPoi nti. x;y1=pPoi nti.y;x2=pStati on j.e nd->x;y2=pStati on j.e nd->y;A0
23、=Beari ng(x1,y1,x2,y2);A=A0-(DMSToRAD(pStatio nm.value)-DMSToRAD(pStati on k.value);if(A<0)A=A+2*PI;if(A>2*PI)A=A-2*PI;S=GetDista nce(pPo in ti,pStati on k.e nd,n Dista nce,pDista nee);if(S<0)co ntinue;elsedx=S*cos(A);dy=S*s in( A);pStatio n k.e nd->x=pPo in ti.x+dx;pStatio n k.e nd->
24、y=pPo in ti.y+dy;pStatio nk.e nd->type=2;14.高斯正反算高斯正算:#in clude <math.h>#i nclude <stdio.h>#define PI 3.14159265double DMSToRAD ( double dDMS)int L1,L2 ;double T,L3 ;L1= (i nt) ( dDMS+0.3);L2=(i nt)(dDMS-L1)*100+0.3);L3=(dDMS-L1)*100-L2)*100;T=(L1+L2/60.0+L3/3600.0)*PI/180.0;return T;
25、void PreGausePositive(double B,double L,double L0, double a, double b, double *N, double *l,double *c, double *t, double *X,double *B1)double a0,a2,a4,a6,a8,m0,m2,m4,m6,m8;double e,e1;e=(sqrt(a*a-b*b)/a;e1=(sqrt(a*a-b*b)/b;B仁DMSToRAD(B);t=ta nB1;c=sqrt(e1*e1*cosB1*cos*B1);l=L-L0;N=a/(sqrt(1-e*e*si nB1*si nB1);m0=a*(1-e*e);m2=3/2*e*e*m0;m4=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年地產(chǎn)項目土地儲備轉(zhuǎn)讓合同范本3篇
- 短期租賃場地租賃合同
- 人力資源招聘與培訓(xùn)管理辦法
- 污水處理廠水塔施工合同
- 施工電梯大修拆卸合同
- 橄欖球場遮陽棚定制協(xié)議
- 服裝企業(yè)內(nèi)部招投標管理規(guī)定
- 乳制品銷售專員招聘協(xié)議
- 鄉(xiāng)鎮(zhèn)企業(yè)員工聘用協(xié)議書
- 2024年度鐵路貨物運輸合同范本6篇
- 客戶滿意度調(diào)查管理制度
- 2024年中國櫻桃番茄種市場調(diào)查研究報告
- 數(shù)據(jù)分析基礎(chǔ)與應(yīng)用指南
- 人教版(PEP)小學(xué)六年級英語上冊全冊教案
- 廣東省廣州市海珠區(qū)2023-2024學(xué)年六年級上學(xué)期月考英語試卷
- 急救理論知識試題庫(附參考答案)
- 《春秋》導(dǎo)讀學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 消防水域救援個人防護裝備試驗 大綱
- DL∕T 5210.2-2018 電力建設(shè)施工質(zhì)量驗收規(guī)程 第2部分:鍋爐機組
- 大數(shù)據(jù)與人工智能營銷智慧樹知到期末考試答案章節(jié)答案2024年南昌大學(xué)
- 機電樣板施工主要技術(shù)方案
評論
0/150
提交評論