版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
測(cè)繪類(lèi)C#程序代碼測(cè)繪類(lèi)C#程序代碼測(cè)繪類(lèi)C#程序代碼常用測(cè)量程序設(shè)計(jì)代碼(1)用全站儀在A點(diǎn)觀測(cè)了B點(diǎn)斜邊和垂直角,求A到B得高差。(提示:,D--斜邊,--垂直角,--儀器高,--反光鏡高,--大氣折光系數(shù))usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespaceConsoleApplication1{classApplicat(yī)ion{staticvoidMain(string{Console、Write("請(qǐng)輸入斜邊=");doubleD=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入垂直角[ddd、mmss]=");doublea=DEG(double、Parse(Console、ReadLine()));Console、Write("請(qǐng)輸入儀器高=");doublei=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入反光鏡高=");doublev=double、Parse(Console、ReadLine());doubleh=D*Math、Sin(a)+(1-0、13)*D/6371000、0*D/6371000、0*Mat(yī)h、Cos(a)*Math、Cos(a)/2、0+i-v;Console、WriteLine("高差為{0}",h);}//將ddd、mmss轉(zhuǎn)為弧度staticpublicdoubleDEG(doubleang){intfuhao=(int)(ang/Mat(yī)h、Abs(ang));ang=Mat(yī)h、Abs(ang);intd=(int)ang;intm=((int)(ang*100))-d*100;doubles=ang*10000-m*100-d*10000;return((d+m/60、0+s/3600、0)*fuhao)/180、0*Math、PI;}}}(2)如圖所示,已知A點(diǎn)得坐標(biāo)及A點(diǎn)到B點(diǎn)得邊長(zhǎng)及方位角,計(jì)算B點(diǎn)得坐標(biāo)。usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespaceConsoleApplication1{classApplication{staticvoidMain(string{Console、Write("請(qǐng)輸入A點(diǎn)得X坐標(biāo)=");doubleXA=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得Y坐標(biāo)=");doubleYA=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A到B得方位角[ddd、mmss]=");doublea=DEG(double、Parse(Console、ReadLine()));Console、Write("請(qǐng)輸入A到B得水平距離=");doubleS=double、Parse(Console、ReadLine());doubleXB=XA+S*Math、Cos(a);doubleYB=YA+S*Math、Sin(a);Console、WriteLine("B點(diǎn)得坐標(biāo)({0},{1})",XB,YB);}//將ddd、mmss轉(zhuǎn)為弧度stat(yī)icpublicdoubleDEG(doubleang){intfuhao=(int)(ang/Math、Abs(ang));ang=Math、Abs(ang);intd=(int)ang;intm=((int)(ang*100))-d*100;doubles=ang*10000-m*100-d*10000;return((d+m/60、0+s/3600、0)*fuhao)/180、0*Math、PI;}}}(3)如圖所示,已知A點(diǎn)和B點(diǎn)得坐標(biāo),計(jì)算A點(diǎn)到得邊長(zhǎng)及方位角。usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespaceConsoleApplication1{classApplication{staticvoidMain(string[]arg{Console、Write("請(qǐng)輸入A點(diǎn)得X坐標(biāo)=");doubleXA=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得Y坐標(biāo)=");doubleYA=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得X坐標(biāo)=");doubleXB=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得Y坐標(biāo)=");doubleYB=double、Parse(Console、ReadLine());doubleS=距離(XA,YA,XB,YB);doublea=方位角(XA,YA,XB,YB);Console、WriteLine("AB間得距離={0},從A到B得方位角={1}",S,DMS(a));}//將弧度轉(zhuǎn)為ddd、mmssstaticpublicdoubleDMS(doubleang){ang+=1、0E-15;//加上一個(gè)小量,以保證進(jìn)位intfuhao=(int)(ang/Mat(yī)h、Abs(ang));ang=Math、Abs(ang)*180、0/Math、PI;intd=(int)ang;ang=(ang-d)*60、0;intm=(int)ang;doubles=(ang-m)*60、0;return(d+m/100、0+s/10000、0)*fuhao;}//計(jì)算方位角,返回弧度值publicstaticdouble方位角(doublex1,doubley1,doublex2,doubley2){doubledeltaX=x2-x1;doubledeltaY=y(tǒng)2-y1;doubleangle=Math、PI*0、5;if(Math、Abs(deltaX)>0、000000001){angle=Mat(yī)h、Atan2(deltaY,deltaX);}if(angle<0){angle+=Math、PI;}if(deltaY<0、0){angle+=Math、PI;}returnangle;}//計(jì)算距離publicstaticdouble距離(doublex1,doubley1,doublex2,doubley2){returnMath、Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));}}}(4)在如圖所示得支中導(dǎo)線(xiàn),已知A點(diǎn)到M點(diǎn)得坐標(biāo)方位角及每個(gè)左角,求每條邊得坐標(biāo)方位角。usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespaceConsoleApplication1{classApplication{staticvoidMain(string[]args){Console、Write("請(qǐng)輸入A點(diǎn)到M點(diǎn)得坐標(biāo)方位角=");//將A點(diǎn)到M點(diǎn)得坐標(biāo)方位角換算為M點(diǎn)到A點(diǎn)得坐標(biāo)方位角,以便利用公式doublea0=DEG(double、Parse(Console、ReadLine())+180、0);if(a0>2*Math、PI){a0-=2*Math、PI;}List<double>導(dǎo)線(xiàn)轉(zhuǎn)角集合=newList<double>();inti=1;do{Console、Write("請(qǐng)輸入第{0}個(gè)轉(zhuǎn)角得水平角[左角為正,右角為負(fù)]<直接回車(chē)結(jié)束輸入>=",i++);stringstr=Console、ReadLine();if(str!=""){導(dǎo)線(xiàn)轉(zhuǎn)角集合、Add(DEG(double、Parse(str)));}else{break;}}while(true);i=1;foreach(doubleain導(dǎo)線(xiàn)轉(zhuǎn)角集合){a0+=a+Math、PI;if(a0>2*Math、PI){a0-=2*Math、PI;}elseif(a0<0、0){a0+=2*Mat(yī)h、PI;}Console、WriteLine("第{0}條邊得方位角為{1}",i++,DMS(a0));}}//將弧度轉(zhuǎn)為ddd、mmssstaticpublicdoubleDMS(doubleang){ang+=1、0E-15;//加上一個(gè)小量,以保證進(jìn)位intfuhao=(int)(ang/Math、Abs(ang));ang=Math、Abs(ang)*180、0/Math、PI;intd=(int)ang;ang=(ang-d)*60、0;intm=(int)ang;doubles=(ang-m)*60、0;return(d+m/100、0+s/10000、0)*fuhao;}//將ddd、mmss轉(zhuǎn)為弧度stat(yī)icpublicdoubleDEG(doubleang){intfuhao=(int)(ang/Math、Abs(ang));ang=Mat(yī)h、Abs(ang);intd=(int)ang;intm=((int)(ang*100))-d*100;doubles=ang*10000-m*100-d*10000;return((d+m/60、0+s/3600、0)*fuhao)/180、0*Math、PI;}}}(5)在如圖所示得支中導(dǎo)線(xiàn),已知A點(diǎn)和M點(diǎn)得坐標(biāo)及每個(gè)左角和每條邊長(zhǎng),求每個(gè)點(diǎn)得坐標(biāo)。usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespaceConsoleApplication1{classApplicat(yī)ion{stat(yī)icvoidMain(string[]args{Console、Write("請(qǐng)輸入M點(diǎn)得x坐標(biāo)=");doubleMx=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入M點(diǎn)得y坐標(biāo)=");doubleMy=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得x坐標(biāo)=");doubleAx=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得y坐標(biāo)=");doubleAy=double、Parse(Console、ReadLine());List<double>導(dǎo)線(xiàn)轉(zhuǎn)角集合=newList<double>();List<double>導(dǎo)線(xiàn)邊長(zhǎng)集合=newList<double>();inti=1;do{Console、Write("請(qǐng)輸入第{0}個(gè)轉(zhuǎn)角得水平角[左角為正,右角為負(fù)]<直接回車(chē)結(jié)束輸入>=",i);stringstr=Console、ReadLine();if(str!=""){導(dǎo)線(xiàn)轉(zhuǎn)角集合、Add(DEG(double、Parse(str)));}else{break;}Console、Write("請(qǐng)輸入第{0}條邊長(zhǎng)值=",i++);導(dǎo)線(xiàn)邊長(zhǎng)集合、Add(double、Parse(Console、ReadLine()));}while(true);//計(jì)算M到A得坐標(biāo)方位角doublea0=方位角(Mx,My,Ax,Ay);//計(jì)算每個(gè)點(diǎn)得坐標(biāo)doublex0=Ax;doubley0=Ay;for(intj=0;j<導(dǎo)線(xiàn)轉(zhuǎn)角集合、Count;j++){a0+=導(dǎo)線(xiàn)轉(zhuǎn)角集合[j]+Mat(yī)h、PI;if(a0>2*Math、PI)a0-=2*Math、PI;x0=x0+導(dǎo)線(xiàn)邊長(zhǎng)集合[j]*Math、Cos(a0);y0=y0+導(dǎo)線(xiàn)邊長(zhǎng)集合[j]*Math、Sin(a0);Console、WriteLine("P{0}點(diǎn)得坐標(biāo)就就是:{1},{2}",j+2,x0,y0);}}//將ddd、mmss轉(zhuǎn)為弧度staticpublicdoubleDEG(doubleang){intfuhao=(int)(ang/Math、Abs(ang));ang=Math、Abs(ang);intd=(int)ang;intm=((int)(ang*100))-d*100;doubles=ang*10000-m*100-d*10000;return((d+m/60、0+s/3600、0)*fuhao)/180、0*Math、PI;}//計(jì)算方位角,返回弧度值publicstat(yī)icdouble方位角(doublex1,doubley1,doublex2,doubley2){doubledeltaX=x2-x1;doubledeltaY=y2-y1;doubleangle=Math、PI*0、5;if(Mat(yī)h、Abs(deltaX)>0、000000001){angle=Math、Atan2(deltaY,deltaX);}if(angle<0){angle+=Math、PI;}if(deltaY<0、0){angle+=Math、PI;}returnangle;}}}(6)在如圖所示得單一附合水準(zhǔn)路線(xiàn)中,已知A點(diǎn)和B點(diǎn)得高程及每段得長(zhǎng)度和高差,求每個(gè)點(diǎn)得高程。usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespaceConsoleApplication1{classApplication{stat(yī)icvoidMain(string[]a{Console、Write("請(qǐng)輸入A點(diǎn)得高程=");doubleHa=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得高程=");doubleHb=double、Parse(Console、ReadLine());List<double>路線(xiàn)段長(zhǎng)度集合=newList<double>();List<double>路線(xiàn)段高差集合=newList<double>();inti=1;do{Console、Write("請(qǐng)輸入第{0}段長(zhǎng)度[公里為單位]<直接回車(chē)結(jié)束輸入>=",i);stringstr=Console、ReadLine();if(str!=""){路線(xiàn)段長(zhǎng)度集合、Add(double、Parse(str));}else{break;}Console、Write("請(qǐng)輸入第{0}段高差=",i++);路線(xiàn)段高差集合、Add(double、Parse(Console、ReadLine()));}while(true);//計(jì)算水準(zhǔn)路線(xiàn)閉合差doublew=0;double總長(zhǎng)度=0;for(intj=0;j<路線(xiàn)段長(zhǎng)度集合、Count;j++){w+=路線(xiàn)段高差集合[j];總長(zhǎng)度+=路線(xiàn)段長(zhǎng)度集合[j];}w=w-(Hb-Ha);//閉合差doublev=-w/總長(zhǎng)度;//每公里改正數(shù)//計(jì)算每個(gè)點(diǎn)得高程doubleH=Ha;for(intj=0;j<路線(xiàn)段長(zhǎng)度集合、Count;j++){H+=路線(xiàn)段高差集合[j]+v*路線(xiàn)段長(zhǎng)度集合[j];Console、WriteLine("P{0}點(diǎn)得高程就就是:{1}",j+1,H);}Console、WriteLine("最后一點(diǎn)就就就是B點(diǎn)!");}}}(7)在如圖所示得前方交會(huì)中,ABJ三點(diǎn)按逆時(shí)針?lè)较蚺帕?已知AB兩點(diǎn)得坐標(biāo)和兩個(gè)交會(huì)角度,求J點(diǎn)得坐標(biāo)。usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespaceConsoleApplication1{classApplication{staticvoidMain(string[]args){Console、Write("請(qǐng)輸入A點(diǎn)得x坐標(biāo)=");doubleAx=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得y坐標(biāo)=");doubleAy=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得x坐標(biāo)=");doubleBx=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得y坐標(biāo)=");doubleBy=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入α得角度值=");doubleα=DEG(double、Parse(Console、ReadLine()));Console、Write("請(qǐng)輸入β得角度值=");doubleβ=DEG(double、Parse(Console、ReadLine()));//計(jì)算A到B得坐標(biāo)方位角doublea0=方位角(Ax,Ay,Bx,By);//計(jì)算A到J得坐標(biāo)方位角a0-=α;//計(jì)算A到B得邊長(zhǎng)doubles=距離(Ax,Ay,Bx,By);//計(jì)算A到J得邊長(zhǎng)s=s/Mat(yī)h、Sin(Math、PI-α-β)*Math、Sin(β);//計(jì)算J得坐標(biāo)doubleJx=Ax+s*Math、Cos(a0);doubleJy=Ay+s*Mat(yī)h、Sin(a0);Console、WriteLine("J點(diǎn)得坐標(biāo)={0},{1}",Jx,Jy);}//將ddd、mmss轉(zhuǎn)為弧度staticpublicdoubleDEG(doubleang){intfuhao=(int)(ang/Mat(yī)h、Abs(ang));ang=Mat(yī)h、Abs(ang);intd=(int)ang;intm=((int)(ang*100))-d*100;doubles=ang*10000-m*100-d*10000;return((d+m/60、0+s/3600、0)*fuhao)/180、0*Math、PI;}//計(jì)算方位角,返回弧度值publicstaticdouble方位角(doublex1,doubley1,doublex2,doubley2){doubledeltaX=x2-x1;doubledeltaY=y(tǒng)2-y1;doubleangle=Mat(yī)h、PI*0、5;if(Math、Abs(deltaX)>0、000000001){angle=Math、Atan2(deltaY,deltaX);}if(angle<0){angle+=Mat(yī)h、PI;}if(deltaY<0、0){angle+=Math、PI;}returnangle;}//計(jì)算距離publicstaticdouble距離(doublex1,doubley1,doublex2,doubley2){returnMath、Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));}}}(8)在如圖所示得單個(gè)多邊形中,已知每個(gè)點(diǎn)得坐標(biāo),求多邊形得面積。提示面積得計(jì)算公式為:usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespaceConsoleApplication1{classApplicat(yī)ion{stat(yī)icvoidMain(string[]a{List<double>多邊形X坐標(biāo)集=newList<double>();List<double>多邊形Y坐標(biāo)集=newList<double>();inti=1;do{Console、Write("請(qǐng)輸入第{0}點(diǎn)得x坐標(biāo)<直接回車(chē)就結(jié)束輸入>=",i);stringstr=Console、ReadLine();if(str!=""){多邊形X坐標(biāo)集、Add(double、Parse(str));}else{break;}Console、Write("請(qǐng)輸入第{0}點(diǎn)得y坐標(biāo)=",i++);多邊形Y坐標(biāo)集、Add(double、Parse(Console、ReadLine()));}while(true);//計(jì)算面積doublearea=0;//點(diǎn)得個(gè)數(shù)intCount=多邊形X坐標(biāo)集、Count;for(intj=0;j<Count-1;j++){area+=多邊形X坐標(biāo)集[j]*多邊形Y坐標(biāo)集[j+1]-多邊形X坐標(biāo)集[j+1]*多邊形Y坐標(biāo)集[j];}//計(jì)算最后一點(diǎn)到起點(diǎn)得項(xiàng)area+=多邊形X坐標(biāo)集[Count-1]*多邊形Y坐標(biāo)集[0]-多邊形X坐標(biāo)集[0]*多邊形Y坐標(biāo)集[Count-1];Console、WriteLine("多邊形得面積={0}",Math、Abs(area*0、5));}}}(9)在如圖所示得僅有一個(gè)連接角得附合導(dǎo)線(xiàn)中,已知A點(diǎn)和B點(diǎn)得高程及每條邊得斜邊、垂直角、儀器高和反光鏡高,求每個(gè)點(diǎn)得高程。(提示:,D--斜邊,--垂直角,--儀器高,--反光鏡高,--大氣折光系數(shù))usingSystem;usingSystem、Collections、Generic;usingSystem、Linq;usingSystem、Text;namespace導(dǎo)線(xiàn){classProgram{staticvoidMain(s{Console、Write("請(qǐng)輸入A點(diǎn)得高程=");doubleHA=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得高程=");doubleHB=double、Parse(Console、ReadLine());List<double>高差集合=newList<double>();List<double>水平距離平方集合=newList<double>();inti=1;double高差和=0;double水平距離平方和=0;do{Console、Write("請(qǐng)輸入{0}點(diǎn)到{1}點(diǎn)得斜距D<直接回車(chē)結(jié)束輸入>=",i,i+1);stringstr=Console、ReadLine();if(str=="")break;doubleD=double、Parse(str);Console、Write("請(qǐng)輸入{0}點(diǎn)到{1}點(diǎn)得垂直角=",i,i+1);doubleα=導(dǎo)線(xiàn)、DEG(double、Parse(Console、ReadLine()));//并化為弧度Console、Write("請(qǐng)輸入{0}得儀器高=",i);double儀器高=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入{0}得反光鏡高=",i+1);double反光鏡高=double、Parse(Console、ReadLine());i++;double水平距離;doubleh=導(dǎo)線(xiàn)、高差(D,α,儀器高,反光鏡高,out水平距離);水平距離平方集合、Add(水平距離*水平距離);高差集合、Add(h);水平距離平方和+=水平距離*水平距離;高差和+=h;}while(true);//計(jì)算高差閉合差double高差閉合差=HA+高差和-HB;//計(jì)算單位長(zhǎng)度改正數(shù),三角高程得權(quán)與距離得平方成反比double單位長(zhǎng)度改正數(shù)=-高差閉合差/水平距離平方和;//計(jì)算每點(diǎn)高程doubleH=HA;for(intj=0;j<高差集合、Count;j++){H+=高差集合[j]+單位長(zhǎng)度改正數(shù)*水平距離平方集合[j];Console、WriteLine("第{0}點(diǎn)得高程H={1}",j+2,H);}Console、WriteLine("最后一個(gè)點(diǎn)得高程應(yīng)該與B點(diǎn)得高程相同!");}}class導(dǎo)線(xiàn){//將ddd、mmss轉(zhuǎn)為弧度staticpublicdoubleDEG(doubleang){intfuhao=(int)(ang/Mat(yī)h、Abs(ang));ang=Math、Abs(ang);intd=(int)ang;intm=((int)(ang*100))-d*100;doubles=ang*10000-m*100-d*10000;return((d+m/60、0+s/3600、0)*fuhao)/180、0*Math、PI;}//高差計(jì)算,返回高差publicstaticdouble高差(double斜距,double垂直角,double儀器高,double反光鏡高,outdouble水平距離){doubleh=斜距*Math、Sin(垂直角)+斜距*Mat(yī)h、Cos(垂直角)/6371000、0*斜距*Math、Cos(垂直角)*(1-0、13)+儀器高-反光鏡高;水平距離=斜距*Math、Cos(垂直角);returnh;}}}(10)在如圖所示得僅有一個(gè)連接角得附合導(dǎo)線(xiàn)中,已知M點(diǎn)、A點(diǎn)和B點(diǎn)得坐標(biāo),每個(gè)點(diǎn)得左角及每條邊得水平距離,求每個(gè)點(diǎn)得坐標(biāo)。usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespace導(dǎo)線(xiàn){classProgram{staticvoidMain(string[]args){Console、Write("請(qǐng)輸入M點(diǎn)得X坐標(biāo)=");doubleMX=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入M點(diǎn)得Y坐標(biāo)=");doubleMY=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得X坐標(biāo)=");doubleAX=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得Y坐標(biāo)=");doubleAY=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得X坐標(biāo)=");doubleBX=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得Y坐標(biāo)=");doubleBY=double、Parse(Console、ReadLine());//計(jì)算M到A得方位角doubleα0=導(dǎo)線(xiàn)、方位角(MX,MY,AX,AY);List<double>坐標(biāo)增量X集合=newList<double>();List<double>坐標(biāo)增量Y集合=newList<double>();inti=1;double坐標(biāo)增量X和=0;double坐標(biāo)增量Y和=0;double坐標(biāo)增量X絕對(duì)值和=0;double坐標(biāo)增量Y絕對(duì)值和=0;double水平距離和=0;do{Console、Write("請(qǐng)輸入{0}點(diǎn)到{1}點(diǎn)得水平距離S<直接回車(chē)結(jié)束輸入>=",i,i+1);stringstr=Console、ReadLine();if(str=="")break;doubleS=double、Parse(str);Console、Write("請(qǐng)輸入{0}點(diǎn)得水平角<左角為正,右角為負(fù)>=",i);doubleβ=導(dǎo)線(xiàn)、DEG(double、Parse(Console、ReadLine()));i++;//計(jì)算坐標(biāo)增量doubledx,dy;α0=導(dǎo)線(xiàn)、坐標(biāo)(0,0,β,S,α0,outdx,outdy);坐標(biāo)增量X集合、Add(dx);坐標(biāo)增量Y集合、Add(dy);坐標(biāo)增量X和+=dx;;坐標(biāo)增量Y和+=dy;;坐標(biāo)增量X絕對(duì)值和+=Math、Abs(dx);坐標(biāo)增量Y絕對(duì)值和+=Math、Abs(dy);水平距離和+=S;}while(true);//計(jì)算閉合差double閉合差X=AX+坐標(biāo)增量X和-BX;double閉合差Y=AY+坐標(biāo)增量Y和-BY;//計(jì)算單位長(zhǎng)度改正數(shù)doubleX坐標(biāo)單位長(zhǎng)度改正數(shù)=-閉合差X/坐標(biāo)增量X絕對(duì)值和;doubleY坐標(biāo)單位長(zhǎng)度改正數(shù)=-閉合差Y/坐標(biāo)增量Y絕對(duì)值和;//計(jì)算導(dǎo)線(xiàn)相對(duì)精度intf=(int)(水平距離和/Math、Sqrt(閉合差X*閉合差X+閉合差Y*閉合差Y));Console、WriteLine("導(dǎo)線(xiàn)得相對(duì)精度為1/{0}",f);//計(jì)算每點(diǎn)坐標(biāo)doubleX=AX;doubleY=AY;for(intj=0;j<坐標(biāo)增量X集合、Count;j++){X+=坐標(biāo)增量X集合[j]+X坐標(biāo)單位長(zhǎng)度改正數(shù)*Math、Abs(坐標(biāo)增量X集合[j]);Y+=坐標(biāo)增量Y集合[j]+Y坐標(biāo)單位長(zhǎng)度改正數(shù)*Mat(yī)h、Abs(坐標(biāo)增量Y集合[j]);Console、WriteLine("第{0}點(diǎn)得X坐標(biāo)={1},Y坐標(biāo)={2}",j+2,X,Y);}Console、WriteLine("最后一個(gè)點(diǎn)得坐標(biāo)應(yīng)該與B點(diǎn)得坐標(biāo)相同!");}}class導(dǎo)線(xiàn){//將ddd、mmss轉(zhuǎn)為弧度stat(yī)icpublicdoubleDEG(doubleang){intfuhao=(int)(ang/Math、Abs(ang));ang=Math、Abs(ang);intd=(int)ang;intm=((int)(ang*100))-d*100;doubles=ang*10000-m*100-d*10000;return((d+m/60、0+s/3600、0)*fuhao)/180、0*Mat(yī)h、PI;}//計(jì)算方位角,返回弧度值publicstaticdouble方位角(doublex1,doubley1,doublex2,doubley2){doubledeltaX=x2-x1;doubledeltaY=y2-y1;doubleangle=Math、PI*0、5;if(Mat(yī)h、Abs(deltaX)>0、000000001){angle=Math、Atan2(deltaY,deltaX);}if(angle<0){angle+=Math、PI;}if(deltaY<0、0){angle+=Mat(yī)h、PI;}returnangle;}//計(jì)算坐標(biāo),返回已知點(diǎn)到計(jì)算點(diǎn)得方位角publicstaticdouble坐標(biāo)(doublex0,doubley0,double左角,double水平距離,double已知方位角,outdoublex,outdoubley){double方位角=已知方位角+左角+Mat(yī)h、PI;//將方位角調(diào)整到0到2π之間if(方位角>=Math、PI*2)方位角-=Math、PI*2;if(方位角<0、0)方位角+=Math、PI*2;x=x0+水平距離*Math、Cos(方位角);y=y0+水平距離*Mat(yī)h、Sin(方位角);return方位角;}}}(11)在如圖所示得僅有一個(gè)連接角得附合導(dǎo)線(xiàn)中,已知M點(diǎn)、A點(diǎn)和B點(diǎn)得坐標(biāo),A點(diǎn)和B點(diǎn)得高程,每個(gè)點(diǎn)得左角及每條邊得斜邊、垂直角、儀器高和反光鏡高,求每個(gè)點(diǎn)得坐標(biāo)和高程。(提示:,D--斜邊,--垂直角,--儀器高,--反光鏡高,--大氣折光系數(shù))usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespace導(dǎo)線(xiàn){classProgram{staticvoidMain(string[]a{Console、Write("請(qǐng)輸入M點(diǎn)得X坐標(biāo)=");doubleMX=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入M點(diǎn)得Y坐標(biāo)=");doubleMY=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得X坐標(biāo)=");doubleAX=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得Y坐標(biāo)=");doubleAY=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入A點(diǎn)得高程=");doubleHA=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得X坐標(biāo)=");doubleBX=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得Y坐標(biāo)=");doubleBY=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入B點(diǎn)得高程=");doubleHB=double、Parse(Console、ReadLine());//計(jì)算M到A得方位角doubleα0=導(dǎo)線(xiàn)、方位角(MX,MY,AX,AY);List<double>坐標(biāo)增量X集合=newList<double>();List<double>坐標(biāo)增量Y集合=newList<double>();List<double>高差集合=newList<double>();List<double>水平距離平方集合=newList<double>();inti=1;double坐標(biāo)增量X和=0;double坐標(biāo)增量Y和=0;double坐標(biāo)增量X絕對(duì)值和=0;double坐標(biāo)增量Y絕對(duì)值和=0;double水平距離和=0;double高差和=0;double水平距離平方和=0;do{Console、Write("請(qǐng)輸入{0}點(diǎn)到{1}點(diǎn)得斜距D<直接回車(chē)結(jié)束輸入>=",i,i+1);stringstr=Console、ReadLine();if(str=="")break;doubleD=double、Parse(str);Console、Write("請(qǐng)輸入{0}點(diǎn)得水平角<左角為正,右角為負(fù)>=",i);doubleβ=導(dǎo)線(xiàn)、DEG(double、Parse(Console、ReadLine()));Console、Write("請(qǐng)輸入{0}點(diǎn)到{1}點(diǎn)得垂直角=",i,i+1);doubleα=導(dǎo)線(xiàn)、DEG(double、Parse(Console、ReadLine()));//并化為弧度Console、Write("請(qǐng)輸入{0}得儀器高=",i);double儀器高=double、Parse(Console、ReadLine());Console、Write("請(qǐng)輸入{0}得反光鏡高=",i+1);double反光鏡高=double、Parse(Console、ReadLine());i++;//計(jì)算高差double水平距離;doubleh=導(dǎo)線(xiàn)、高差(D,α,儀器高,反光鏡高,out水平距離);水平距離平方集合、Add(水平距離*水平距離);高差集合、Add(h);水平距離平方和+=水平距離*水平距離;高差和+=h;//計(jì)算坐標(biāo)增量doubledx,dy;α0=導(dǎo)線(xiàn)、坐標(biāo)(0,0,β,水平距離,α0,outdx,outdy);坐標(biāo)增量X集合、Add(dx);坐標(biāo)增量Y集合、Add(dy);坐標(biāo)增量X和+=dx;;坐標(biāo)增量Y和+=dy;;坐標(biāo)增量X絕對(duì)值和+=Math、Abs(dx);坐標(biāo)增量Y絕對(duì)值和+=Math、Abs(dy);水平距離和+=水平距離;}while(true);//計(jì)算高差閉合差double高差閉合差=HA+高差和-HB;//計(jì)算單位長(zhǎng)度改正數(shù),三角高程得權(quán)與距離得平方成反比double單位長(zhǎng)度改正數(shù)=-高差閉合差/水平距離平方和;//計(jì)算閉合差double閉合差X=AX+坐標(biāo)增量X和-BX;double閉合差Y=AY+坐標(biāo)增量Y和-BY;//計(jì)算單位長(zhǎng)度改正數(shù)doubleX坐標(biāo)單位長(zhǎng)度改正數(shù)=-閉合差X/坐標(biāo)增量X絕對(duì)值和;doubleY坐標(biāo)單位長(zhǎng)度改正數(shù)=-閉合差Y/坐標(biāo)增量Y絕對(duì)值和;//計(jì)算導(dǎo)線(xiàn)相對(duì)精度intf=(int)(水平距離和/Math、Sqrt(閉合差X*閉合差X+閉合差Y*閉合差Y));Console、WriteLine("導(dǎo)線(xiàn)得相對(duì)精度為1/{0}",f);//計(jì)算每點(diǎn)坐標(biāo)doubleX=AX;doubleY=AY;doubleH=HA;for(intj=0;j<坐標(biāo)增量X集合、Count;j++){H+=高差集合[j]+單位長(zhǎng)度改正數(shù)*水平距離平方集合[j];X+=坐標(biāo)增量X集合[j]+X坐標(biāo)單位長(zhǎng)度改正數(shù)*Math、Abs(坐標(biāo)增量X集合[j]);Y+=坐標(biāo)增量Y集合[j]+Y坐標(biāo)單位長(zhǎng)度改正數(shù)*Math、Abs(坐標(biāo)增量Y集合[j]);Console、WriteLine("第{0}點(diǎn)得X坐標(biāo)={1},Y坐標(biāo)={2},高程H={3}",j+2,X,Y,H);}Console、WriteLine("最后一個(gè)點(diǎn)得坐標(biāo)和高程應(yīng)該與B點(diǎn)得坐標(biāo)和高程相同!");}}class導(dǎo)線(xiàn){//將ddd、mmss轉(zhuǎn)為弧度stat(yī)icpublicdoubleDEG(doubleang){intfuhao=(int)(ang/Math、Abs(ang));ang=Mat(yī)h、Abs(ang);intd=(int)ang;intm=((int)(ang*100))-d*100;doubles=ang*10000-m*100-d*10000;return((d+m/60、0+s/3600、0)*fuhao)/180、0*Mat(yī)h、PI;}//計(jì)算方位角,返回弧度值publicstaticdouble方位角(doublex1,doubley1,doublex2,doubley2){doubledeltaX=x2-x1;doubledeltaY=y(tǒng)2-y1;doubleangle=Math、PI*0、5;if(Mat(yī)h、Abs(deltaX)>0、000000001){angle=Math、Atan2(deltaY,deltaX);}if(angle<0){angle+=Math、PI;}if(deltaY<0、0){angle+=Math、PI;}returnangle;}//高差計(jì)算,返回高差publicstat(yī)icdouble高差(double斜距,double垂直角,double儀器高,double反光鏡高,outdouble水平距離){doubleh=斜距*Math、Sin(垂直角)+斜距*Math、Cos(垂直角)/6371000、0*斜距*Math、Cos(垂直角)*(1-0、13)+儀器高-反光鏡高;水平距離=斜距*Math、Cos(垂直角);returnh;}//計(jì)算坐標(biāo),返回已知點(diǎn)到計(jì)算點(diǎn)得方位角publicstaticdouble坐標(biāo)(doublex0,doubley0,double左角,double水平距離,double已知方位角,outdoublex,outdoubley){double方位角=已知方位角+左角+Math、PI;//將方位角調(diào)整到0到2π之間if(方位角>=Mat(yī)h、PI*2)方位角-=Math、PI*2;if(方位角<0、0)方位角+=Math、PI*2;x=x0+水平距離*Math、Cos(方位角);y=y0+水平距離*Math、Sin(方位角);return方位角;}}}(12)在如圖所示得具有兩個(gè)連接角得附合導(dǎo)線(xiàn)中,已知M點(diǎn)、N點(diǎn)、A點(diǎn)和B點(diǎn)得坐標(biāo),A點(diǎn)和B點(diǎn)得高程,每個(gè)點(diǎn)得左角及每條邊得斜邊、垂直角、儀器高和反光鏡高,請(qǐng)采用近似平差方法求每個(gè)點(diǎn)得坐標(biāo)和高程。(提示:,D--斜邊,--垂直角,--儀器高,--反光鏡高,--大氣折光系數(shù))usingSystem;usingSystem、Collections、Generic;usingSystem、Text;namespace導(dǎo)線(xiàn){classProgram{staticvoidMain(string[]arg{Console、Write("請(qǐng)輸入M點(diǎn)得X坐標(biāo)=");doubleMX=double、Parse(Console、
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年福州大學(xué)至誠(chéng)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)含答案詳解
- 2026年汝州職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)含答案詳解
- 2026年浙江舟山群島新區(qū)旅游與健康職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)參考答案詳解
- 2026年福建林業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)及參考答案詳解1套
- 超市堆碼陳列培訓(xùn)課件
- 2026年淮北職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案詳解
- 2026年天津藝術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)參考答案詳解
- 2026年常德科技職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)及參考答案詳解
- 2026年江蘇航空職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案詳解一套
- 2026年青海省黃南藏族自治州單招職業(yè)適應(yīng)性考試題庫(kù)帶答案詳解
- 2026富滇銀行公司招聘面試題及答案
- 2025年南京鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案
- 2025年網(wǎng)絡(luò)維護(hù)管理人員工作總結(jié)例文(2篇)
- 城銀清算服務(wù)有限責(zé)任公司2026年校園招聘16人備考題庫(kù)附答案
- 2025年河南豫能控股股份有限公司及所管企業(yè)第二批社會(huì)招聘18人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年《項(xiàng)目管理認(rèn)證考試》知識(shí)考試題庫(kù)及答案解析
- 安徽消防筆試題及答案
- 書(shū)籍借閱營(yíng)銷(xiāo)方案
- 生態(tài)冷鮮牛肉銷(xiāo)售創(chuàng)業(yè)策劃書(shū)范文
- 2025年高級(jí)煤礦綜采安裝拆除作業(yè)人員《理論知識(shí)》考試真題(含解析)
評(píng)論
0/150
提交評(píng)論