• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于對話框編寫實現(xiàn)坐標(biāo)方位角正算與反算的程序

      2013-03-06 05:44:13李香清
      城市勘測 2013年5期
      關(guān)鍵詞:甘肅蘭州蘭州市方位角

      李香清

      (1.蘭州市勘察測繪研究院,甘肅蘭州 730030; 2.蘭州市地理信息中心,甘肅蘭州 730030)

      基于對話框編寫實現(xiàn)坐標(biāo)方位角正算與反算的程序

      李香清1,2?

      (1.蘭州市勘察測繪研究院,甘肅蘭州 730030; 2.蘭州市地理信息中心,甘肅蘭州 730030)

      通過Visual C++6.0來設(shè)計坐標(biāo)正反算的程序,基于對話框來編寫,特別是在控制網(wǎng)平差計算中,用來坐標(biāo)方位角的推算和平面坐標(biāo)的正反算,在導(dǎo)線測量中,通過坐標(biāo)的正反算來確保控制網(wǎng)的精度。該程序可以廣泛應(yīng)用于施工放樣等相關(guān)工作中,并且用實際的測量工作驗證了其準(zhǔn)確性和實用性。

      坐標(biāo)正反算;Visual C++;坐標(biāo)方位角;導(dǎo)線測量

      1 引 言

      在實際測量工作時,比如在市政工程施工測量中,經(jīng)常會遇到根據(jù)已知導(dǎo)線控制點,利用經(jīng)緯儀、鋼尺測設(shè)待定點的實際問題,解決此類問題往往需要計算坐標(biāo)方位角或距離,如何能夠更快、更準(zhǔn)確的利用程序?qū)崿F(xiàn)坐標(biāo)方位角的正算與反算是一個亟待研究的問題。

      2 相關(guān)概念

      2.1 方位角

      由直線一端的基本方向起,順時針方向至該直線的水平角度稱為該直線的方位角。方位角的取值范圍是0°~360°。下面介紹相關(guān)的三種方位角:

      真方位角:由真北方向起算的方位角,用A表示。坐標(biāo)方位角:由坐標(biāo)北方向起算的方位角,用a表示。磁方位角:由磁北方向起算的方位角,用Am表示。

      2.2 方位角之間的相互換算

      由于三個指北的標(biāo)準(zhǔn)方向并不重合,所以一條直線的三種方位角并不相等,它們之間存在著一定的換算關(guān)系。如圖1所示,一條直線的真方位角A、磁北方位角Am、坐標(biāo)方位角a之間有如下的關(guān)系式,式中的δ為磁偏角,γ為子午線收斂角。

      圖1 三種方位角的關(guān)系

      關(guān)系表達式如下:

      2.3 正、反坐標(biāo)方位角

      一條直線的坐標(biāo)方位角,由于起始點的不同而存在著兩個值。如圖2所示,P1、P2為直線P1P2的兩端點,a12表示P1P2方向的坐標(biāo)方位角,a21表示P2P1方向的坐標(biāo)方位角。a12和a21互為正、反坐標(biāo)方位角。若以a12為正坐標(biāo)方位角,則稱a21為反坐標(biāo)方位角。由于在同一高斯平面直角坐標(biāo)系內(nèi)各點處坐標(biāo)北方向均是平行的,所以一條直線的正、反坐標(biāo)方位角相差180°,即a12=a21±180°。

      圖2 正、反坐標(biāo)方位角 圖3 坐標(biāo)正、反算示意圖

      3 平面直角坐標(biāo)正、反算

      如圖3所示,設(shè)A為已知點,B為未知點,當(dāng)A點坐標(biāo)(XA,YA)、A點至B點的水平距離SAB和坐標(biāo)方位角aAB均為已知時,則可求得B點的坐標(biāo)(XB,YB),通常稱為坐標(biāo)正算問題。

      由圖可知坐標(biāo)正算的公式為:

      所以上面的式子可以寫成:

      式中的△XAB和△XAB稱之為坐標(biāo)增量。

      同理可以得出坐標(biāo)反算的公式,設(shè)A、B兩已知點的坐標(biāo)分別為(XA,YA)和(XB,YB),則這條直線AB的坐標(biāo)方位角aAB和水平距離SAB分別為:

      應(yīng)當(dāng)指出,在上面的式子中△XAB和△YAB應(yīng)該取絕對值,計算得到的為象限角R,象限角取值范圍為0°~90°。而測量工作中通常用坐標(biāo)方位角表示直線的方向,因此,計算出象限角R后,應(yīng)該將其轉(zhuǎn)換為坐標(biāo)方位角,其轉(zhuǎn)換方法表1。

      象限角轉(zhuǎn)換成坐標(biāo)方位角 表1

      4 Visual C++6.0編程設(shè)計

      4.1 對話框界面的設(shè)計

      圖4 對話框的界面設(shè)計

      4.2 坐標(biāo)正算程序的核心代碼

      void Czbzs::OnButtonEqual2()//響應(yīng)坐標(biāo)正算按鈕

      {

      //TODO:Add your control notification handler code here

      UpdateData(true);//獲得輸入數(shù)據(jù)

      i=m_44; //坐標(biāo)方位角獲取

      //為減少運算,先計算幾種特殊情況

      if(i==0||i==360)

      {

      m_55=m_11+m_33;

      m_66=m_22;

      else if(i==180)

      {

      m_55=m_11-m_33;

      m_66=m_22;

      else if(i==90)

      {

      m_55=m_11;

      m_66=m_22+m_33;

      else if(i==270)

      {

      m_55=m_11;

      m_66=m_22-m_33;

      else if(i>0&&i<90)//第一象限角

      {

      j=(m_44?PI)/180;//角度轉(zhuǎn)換為弧度

      m_55=m_11+m_33?cos(j);//由表一和公式8、公式9綜合

      m_66=m_22+m_33?sin(j);

      else if(i>90&&i<180)//第二象限角

      {

      j=((m_44-90)?PI)/180;

      m_55=m_11+m_33?(-cos(j));

      m_66=m_22+m_33?sin(j);

      else if(i>180&&i<270)//第三象限角

      {

      j=((m_44-180)?PI)/180;

      m_55=m_11+m_33?(-cos(j));

      m_66=m_22+m_33?(-sin(j));

      else if(i>270&&i<360)//第四象限角

      {

      j=((m_44-270)?PI)/180;

      m_55=m_11+m_33?cos(j);

      m_66=m_22+m_33?(-sin(j));

      UpdateData(false);//更新顯示

      4.3 坐標(biāo)反算程序的核心代碼

      void Czbfs::OnButtonEqual()//響應(yīng)坐標(biāo)反算按鈕

      {

      //TODO:Add your control notification handler code here

      UpdateData(true);//獲得輸入數(shù)據(jù)

      dx=m_3-m_1;

      dy=m_4-m_2;

      az1=dxdy_az(dx,dy);//計算坐標(biāo)方位角

      az=radio_to_angle(az1);//弧度轉(zhuǎn)換為角度

      s=dist(dx,dy);//計算距離

      m_5=m_9;

      m_6=m_10;

      m_7=az1;

      m_8=s;

      UpdateData(false);//更新顯示

      double Czbfs::dxdy_az(double dx,double dy)//坐標(biāo)方位角計算

      {

      double R,az;

      R=atan(dy/dx);//公式10

      if(dx==0)//特殊情況

      {

      if(dy>0)

      az=PI/2;

      else

      az=3?PI/2;

      else if(dx>0)//由表一得出az與R關(guān)系

      {

      if(dy>0)

      az=R;

      else

      az=R+2?PI;

      else

      az=PI+R;

      return(az);

      double Czbfs::radio_to_angle(double radio)//弧度轉(zhuǎn)換為角度

      {

      double a1,a2,angle;

      int d,f,m;

      a1=radio?180/PI;

      d=int(a1);//計算度

      a2=(a1-d)?60;

      f=int(a2);//計算分

      m=int((a2-f)?60);//計算秒angle=d+f/100.0+m/10000.0;

      return(angle);

      double Czbfs::dist(double dx,double dy)//計算距離

      {

      return(sqrt(dx?dx+dy?dy));

      5 運行結(jié)果

      將外業(yè)實測數(shù)據(jù)進行坐標(biāo)方位角的推算和平面坐標(biāo)的正反算,通過坐標(biāo)的正反算來確保控制網(wǎng)的精度。在坐標(biāo)反算主界面中輸入起點:1點坐標(biāo)(4053345.321,486456.321),終點2點坐標(biāo)(4053323.678,486123.443),通過計算得出坐標(biāo)方位角(弧度)為4.64746249773597,1點到2點的距離為333.580848270678;在坐標(biāo)正算主界面中輸入起點:1點坐標(biāo)(4053321.476,485123.443),距離334.756,坐標(biāo)方位角(角度)213.342,通過計算得出終點坐標(biāo)為(4053041.81926841,484939.449271809)。計算結(jié)果如圖5所示:

      圖5 坐標(biāo)正反算的驗證結(jié)果

      6 結(jié) 論

      本文通過對坐標(biāo)正反算的驗證得出該程序的可靠性與實用性,基于對話框編寫的該程序,界面直觀簡潔,使計算方位角的工作變得簡單易行,實現(xiàn)坐標(biāo)方位角的正反算更加方便快捷,可以廣泛應(yīng)用于工程測量的施工放樣及相關(guān)工作中,大幅降低了測繪工作量。

      [1] 潘正風(fēng),楊正堯,程效軍等.數(shù)字測圖原理與方法[M].武漢大學(xué)出版社,2004.

      [2] 王育堅.Visual C++面向?qū)ο缶幊探坛蘙M].清華大學(xué)出版社,2007.

      [3] 沈晶,劉海波,周長建.Visual C++數(shù)字圖像處理典型案例詳解[M].機械工業(yè)出版社,2012.

      [4] 武漢大學(xué)測繪學(xué)院測量平差學(xué)科組.誤差理論與測量平差基礎(chǔ)[M].武漢大學(xué)出版社,2003.

      [5] 陳天華.面向?qū)ο蟪绦蛟O(shè)計與Visual C++6.0教程題解與實驗指導(dǎo)[M].清華大學(xué)出版社,2006.

      [6] 張正祿.工程測量學(xué)[M].武漢大學(xué)出版社,2005.

      Based on the Dialog Box to W rite the Program to Realize Direct and Inverse Calculation of Geodetic Coordinates and Azimuth

      Li Xiangqing1,2
      (1.Lanzhou Istitute of Survey and Investigation,Lanzhou 730030,China;2.Lanzhou Geographic Information Center Gansu,Lanzhou 730030,China)

      Through the Visual C++6 to design the inverse coordinate calculation program,based on the dialog box to write,especially the calculation in the control network adjustment,and to calculate the coordinate azimuth angle and plane coordinates calculation,in a traverse,through coordinate and ensure the precision of the control network.This program iswidely used in construction lofting and related work and verified its accuracy and reliability by using examples.

      direct and inverse calculation of coordinates;visual C++;coordinate azimuth;traverse survey

      1672-8262(2013)05-137-03

      P209

      B

      2013—06—28

      李香清(1978—),女,工程師,現(xiàn)從事地理信息空間數(shù)據(jù)質(zhì)量檢查、GIS應(yīng)用研究及開發(fā)等。

      猜你喜歡
      甘肅蘭州蘭州市方位角
      大眾文藝(2022年23期)2022-12-25 03:09:24
      蘭州市園林綠配置模式
      探究無線電方位在無線電領(lǐng)航教學(xué)中的作用和意義
      卷宗(2021年2期)2021-03-09 07:57:24
      陽光少年的飛馳年華——蘭州市第四十六中學(xué)輪滑社團活動掠影
      近地磁尾方位角流期間的場向電流增強
      甘肅蘭州卷
      蘭州市藝彩少兒美術(shù)作品選登
      甘肅蘭州鹽什公路復(fù)工預(yù)計2019年7月底建成通車
      石油瀝青(2019年2期)2019-02-13 17:24:47
      The Translation of Long Sentences in Legal Texts
      成功(2018年7期)2018-03-29 00:42:44
      無處不在的方位角
      萍乡市| 腾冲县| 泽库县| 新泰市| 三穗县| 格尔木市| 巨野县| 天水市| 宁化县| 衡阳市| 湄潭县| 西安市| 湾仔区| 东兰县| 临颍县| 玉龙| 封丘县| 晴隆县| 鹤壁市| 盐津县| 金寨县| 施甸县| 英山县| 福贡县| 杭锦旗| 五家渠市| 沅江市| 商城县| 祁东县| 普格县| 诸城市| 云霄县| 肇庆市| 浦城县| 梧州市| 宁城县| 乌什县| 灵丘县| 巴彦淖尔市| 垦利县| 容城县|