




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
測(cè)量方位角計(jì)算公式VB源代碼角度化弧度
PublicFunctionRadian(aAsDouble)AsDouble
DimRaAsDouble
DimcAsDouble
DimFSAsDouble
DimIbAsInteger
DimIcAsInteger
Ra=pi/180#
Ib=Int(a)
c=(a-Ib)*100#
Ic=Int(c)
FS=(c-Ic)*100#
Radian=(Ib+Ic/60#+FS/3600#)*Ra
EndFunction
'弧度化角度
PublicFunctionDegree(aAsDouble)AsDouble
DimBAsDouble
DimFs1AsDouble
DimIm1AsInteger
DimId1AsInteger
B=a
CallDMS(B,Id1,Im1,Fs1)
Degree=Id1+Im1/100#+Fs1/10000#
EndFunctionPublicSubDMS(aAsDouble,IDAsInteger,IMAsInteger,FSAsDouble)
DimBAsDouble
DimcAsDouble
c=a
c=180#/pi*c
ID=Int(c+0.0000005)
B=(c-ID)*60+0.0005
IM=Int(B)
FS=(B-IM)*60EndSub'計(jì)算兩點(diǎn)間的方位角
PublicFunctionazimuth(x1AsDouble,y1AsDouble,x2AsDouble,y2AsDouble)AsSingle
DimdxAsDouble
DimdyAsDouble
DimfwjAsDouble
dx=x2-x1
dy=y2-y1
Ifdy<>0Then
fwj=pi*(1-Sgn(dy)/2)-Atn(dx/dy)
azimuth=Degree(fwj)
Else
Ifdx>0Then
azimuth=0
Else
azimuth=180
EndIf
EndIfEndFunction5.2程序字母代表含義La—起點(diǎn)里程,R—圓曲線半徑,l0—兩端緩和曲線長(zhǎng),α—曲線轉(zhuǎn)向角,T—切線長(zhǎng),L—曲線長(zhǎng),E0—外矢距,q—切曲差,cc—線路轉(zhuǎn)向(cc=1時(shí),線路向右轉(zhuǎn);cc=-1時(shí),線路向左轉(zhuǎn)),d―樁距,m―邊樁距,Li―i點(diǎn)的里程,ZH―直緩點(diǎn),HY―緩圓點(diǎn),JD―交點(diǎn),QZ―曲中點(diǎn),YZ―圓直點(diǎn),YH―圓緩點(diǎn),HZ―緩直點(diǎn),LJD—交點(diǎn)里程,LZH―直緩點(diǎn)里程,LHY―緩圓點(diǎn)里程,LQZ―曲中點(diǎn)里程,LYH―圓緩點(diǎn)里程,LHZ―緩直點(diǎn)里程。5.3程序設(shè)計(jì)思路及具體程序的編寫(xiě)程序的基本構(gòu)思:本程序利用已知直、曲線要素、交點(diǎn)坐標(biāo),計(jì)算出曲線上逐樁坐標(biāo),根據(jù)逐樁坐標(biāo)就可實(shí)地放樣。此程序在不同測(cè)站測(cè)設(shè)同一曲線時(shí),調(diào)用程序只需改變測(cè)站和后視點(diǎn)坐標(biāo)即可。不過(guò)測(cè)站點(diǎn)和后視點(diǎn)的坐標(biāo)系統(tǒng)與逐樁坐標(biāo)系統(tǒng)必須一致。程序設(shè)計(jì)中主要發(fā)現(xiàn)的問(wèn)題及解決辦法:5.3.1起點(diǎn)為非整樁的情況本程序采用將非整樁起點(diǎn)的坐標(biāo)通過(guò)變換成為整樁的方法。直線起點(diǎn)
L1=Int((la/10)*10+k)第一緩和曲線L2=Int(Ljd–T+K)圓曲線
L3=Int(Ljd-T+lo+K)第二緩和曲線L4=Int(Ljd-T+L–lo+K)并計(jì)算出這些點(diǎn)的坐標(biāo)。
表5.1起點(diǎn)是否整樁的判斷線型整樁起算點(diǎn)非整樁起算點(diǎn)直線起終點(diǎn)(兩端曲線的端點(diǎn))L1點(diǎn)第一緩和曲線ZH點(diǎn)L2點(diǎn)圓曲線ZH(帶緩和曲線)或ZY點(diǎn)L2點(diǎn)第二緩和曲線HZ點(diǎn)HZ點(diǎn)
5.3.2路線方位角的計(jì)算程序中采用的起算數(shù)據(jù)中不包含方位角一項(xiàng),因此必須要由已知的兩點(diǎn)坐標(biāo)計(jì)算出線路的方位角。本程序中利用ZH點(diǎn)和JD的坐標(biāo)計(jì)算。建立一個(gè)計(jì)算方位角的模塊:Functionαab#(Xa#,Ya#,Xb#,Yb#)αab=Atn(Abs(Yb-Ya)/Abs(Xb-Xa))
IfYb-Ya>=0AndXb-Xa>=0Then
αab=αab
ElseIfYb-Ya>0AndXb-Xa<0Then
αab=3.141592654-αab
ElseIfYb-Ya<=0AndXb-Xa<=0Then
αab=3.141592654+αab
Else
αab=2*3.141592654-αabEndIfEndFunctionαab——某點(diǎn)的方位角,Xa——起點(diǎn)X坐標(biāo)(ZH或ZY點(diǎn)坐標(biāo)),Ya——起點(diǎn)Y坐標(biāo)(ZH或ZY點(diǎn)坐標(biāo)),Xb——終點(diǎn)X坐標(biāo)(JD的X坐標(biāo)),Yb——終點(diǎn)Y坐標(biāo)(JD的Y坐標(biāo))5.3.3計(jì)算曲線邊樁坐標(biāo)的程序Xi=x0+Xxi*Cos(A0)-cc*Yyi*Sin(A0)
'i點(diǎn)的X坐標(biāo)Yi=y0+Xxi*Sin(A0)+cc*Yyi*Cos(A0)
'i點(diǎn)的Y坐標(biāo)Ai=A0+cc*βXz=Xi+m*Cos(Ai-3.141592654/2)
'左邊樁X坐標(biāo)
Yz=Yi+m*Sin(Ai-3.141592654/2)
'左邊樁Y坐標(biāo)
Xy=Xi+m*Cos(Ai+3.141592654/2)
'右邊樁X坐標(biāo)
Yy=Yi+m*Sin(Ai+3.141592654/2)
'右邊樁Y坐標(biāo)A0計(jì)算參考起點(diǎn)的方位角,Ai為計(jì)算點(diǎn)的方位角,m為邊樁距,Xi為計(jì)算點(diǎn)的X坐標(biāo),Yi為計(jì)算點(diǎn)的Y坐標(biāo),cc為轉(zhuǎn)向(左轉(zhuǎn)-1,右轉(zhuǎn)+1),β=li^2/(2*r*lo)。5.3.4計(jì)算數(shù)據(jù)的保存與顯示Open"C:\DocumentsandSettings\Administrator\桌面\道路放樣\計(jì)算結(jié)果\直線.txt"ForAppendAs#1
'打開(kāi)文件進(jìn)行寫(xiě)操作并保存Print#1,"K+";li;"左邊樁",Left(xil,10),Left(yil,10)Print#1,"K+";li;"中
樁",Left(Xi,10),Left(Yi,10)
'保存為T(mén)XT格式文檔Print#1,"K+";li;"右邊樁",Left(xir,10),Left(yir,10)Print#1,Close#1Open"C:\DocumentsandSettings\Administrator\桌面\道路放樣\計(jì)算結(jié)果\直線.dat"ForAppendAs#1Print#1,,"K+"&li;",,";Left(xil,10);",";Left(yil,10);",";0Print#1,,"K+"&li;",,";Left(Yi,10);",";Left(Xi,10);",";0
'保存DAT格式文檔Print#1,,"K+"&li;",,";Left(xir,10);",";Left(yir,10);",";0Print#1,Close#1“K+”表示樁號(hào),li表示里程,xi,yi,xil,yil,xir,yir分別表示計(jì)算點(diǎn)的中邊樁坐標(biāo)。Left()表示取計(jì)算成果的錢(qián)10位有效數(shù)字。在編寫(xiě)程序的時(shí)候,成果保存的關(guān)鍵詞有Append,Output等,在第一次保存時(shí)用Output,目的是清除以前的舊項(xiàng)目數(shù)據(jù);在同一段曲線以后計(jì)算保存中用Append,目的是在前面基礎(chǔ)上繼續(xù)添加數(shù)據(jù),使原來(lái)的數(shù)據(jù)不被替代。Open"C:\DocumentsandSettings\Administrator\桌面\道路放樣\計(jì)算結(jié)果\第一緩和曲線.txt"ForInputAs#1DoWhileNotEOF(1)
'文本框顯示計(jì)算的數(shù)據(jù)LineInput#1,inputdataText5.Text=Text5.Text+inputdata+vbCrLfLoopClose#15.3.5引用CAD成圖的方法將計(jì)算結(jié)果輸入到【成圖數(shù)據(jù)】文件中,采用【X,Y,Z】的格式一行一行的存儲(chǔ)在TXT文本文檔中,此時(shí)Z為0。首先引用“AutoCAD2000ObjectLibrary”,然后輸入以下語(yǔ)句:DimappcadAsObject
'建立Application對(duì)象DimacadDocAsObject
'建立Document對(duì)象DimmospaceAsObject
'建立ModelSpace對(duì)象Setappcad=CreateObject("autocad.application")IfErrThen
Err.Clear
'調(diào)用CAD
OnErrorResumeNext
'容錯(cuò)
Setappcad=CreateObject("autocad.application")
IfErrThen
Err.Clear
MsgBox"不能運(yùn)行AutoCAD,請(qǐng)檢查是否安裝!",vbOKCancel,"警告!"
ExitSub
EndIfEndIfappcad.Visible=True
'CAD顯示SetacadDoc=appcad.ActiveDocumentSetmospace=acadDoc.ModelSpaceDimstp(0To2)AsDoubleDimetp(0To2)AsDoubleDimfnameAsStringfname="C:\DocumentsandSettings\Administrator\桌面\道路放樣\成圖數(shù)據(jù)\直線中.txt"
'CAD成圖OpenfnameForInputAs#1
'打開(kāi)數(shù)據(jù)文件Input#1,stp(0),stp(1),stp(2)DoWhileNotEOF(1)Input#1,etp(0),etp(1),etp(2)Callmospace.AddLine(stp,etp)stp(0)=etp(0)stp(1)=etp(1)stp(2)=etp(2)LoopClose#15.3.6計(jì)算的數(shù)據(jù)輸出到全站儀的格式問(wèn)題軟件結(jié)合公路放樣的實(shí)例編制,根據(jù)實(shí)際工作需要,采用手工輸入。程序輸出采用TXT文擋和DAT文檔。TXT文檔便于進(jìn)行打印查詢(xún)及檢查。DAT文檔易于將數(shù)據(jù)傳輸?shù)饺緝x直接進(jìn)行方放樣工作。除此以外,DAT格式的文檔還可直接導(dǎo)入到AUTOCAD中進(jìn)行道路的成圖,完成各種動(dòng)態(tài)報(bào)表的繪制與輸出。經(jīng)過(guò)學(xué)習(xí)經(jīng)驗(yàn)和對(duì)儀器的考察,DAT文件的格式在本程序采用“點(diǎn)名,編碼,Y,X,Z”的格式輸出。>反算->正算后,Y坐標(biāo)與原來(lái)的差了0.5-0.7mm,不知道怎么回事,這兩年工作忙也沒(méi)有時(shí)間再深究,但是這樣的計(jì)算精度做控制足夠了,如果樓主或是者是哪位同仁見(jiàn)此貼能順便把這個(gè)問(wèn)題解決了,咱們就一起進(jìn)步了!代碼如下:'高斯坐標(biāo)正算PrivateSubDadiZs()DimtAsDouble,ItpAsDouble,X0AsDouble,NAsDouble,L0AsDoubleDimVAsDouble,llAsDouble,WAsDouble,MAsDoubleLat=Radian(Lat)Lon=Radian(Lon)L0=Radian(Lo)IfTq=0Thena=6378245'54橢球參數(shù)b=6356863.01877305ep=0.006693421622966ep1=0.006738525414683f=(a-b)/ac=a^2/bd=b^2/aX0=111134.8611*(Lat*180#/Pi)-(32005.7799*Sin(Lat)+133.9238*(Sin(Lat))^3+0.6973*(Sin(Lat))^5+0.0039*(Sin(Lat))^7)*Cos(Lat)'X0=111134.8611*(Lat*180#/Pi)-(32005.7798*Sin(Lat)+133.9238*(Sin(Lat))^3+0.6972*(Sin(Lat))^5+0.0039*(Sin(Lat))^7)*Cos(Lat)Elsea=6378140'75橢球參數(shù)b=6356755.28815753ep=0.006694384999588ep1=0.006739501819473f=(a-b)/ac=a^2/bd=b^2/aX0=111133.0047*(Lat*180/Pi)-(32009.8575*Sin(Lat)+133.9602*(Sin(Lat))^3+0.6976*(Sin(Lat))^5+0.0039*(Sin(Lat))^7)*Cos(Lat)EndIfll=Lon-L0t=Tan(Lat)Itp=ep1*Cos(Lat)^2W=Sqr(1-ep*Sin(Lat)^2)V=Sqr(1+ep1*Cos(Lat)^2)M=c/V^3N=a/W'x=X0+N*t*(Cos(Lat))^2*ll^2/2+N*t*(5-t*t+9*Itp+4*Itp*Itp)*(Cos(Lat))^4*ll^4/24+N*t*(61-58*t^2+t^4+270*Itp-330*t^2*Itp)*(Cos(Lat))^6*ll^6/720+N*t*(1385-3111*t^2+543*t^4-t^6)*Cos(Lat)^8*ll^8/40320x=X0+N*t*(Cos(Lat))^2*ll^2/2+N*t*(5-t*t+9*Itp^2+4*Itp^4)*(Cos(Lat))^4*ll^4/24+N*t*(61-58*t^2+t^4+270*Itp^2-330*t^2*Itp^2)*(Cos(Lat))^6*ll^6/720+N*t*(1385-3111*t^2+543*t^4-t^6)*Cos(Lat)^8*ll^8/40320y=N*Cos(Lat)*ll+N*(1-t*t+Itp)*(Cos(Lat))^3*ll^3/6+N*(5-18*t*t+t^4+14*Itp-58*Itp*t*t)*(Cos(Lat))^5*ll^5/120+N*(61-479*t^2+179*t^4-t^6)*Cos(Lat)^7*ll^7/5040r=Sin(Lat)*ll+Sin(Lat)*(Cos(Lat))^2*ll^3*(1+3*Itp+2*Itp^2)/3+Sin(Lat)*(Cos(Lat))^4*ll^5*(2-t*t)/15r=Degree(r)y=y+500000#EndSub'高斯反算PrivateSubDadiFs()DimtAsDouble,ItpAsDouble,X0AsDouble,BfAsDouble,NAsDoubleDimvAsDouble,llAsDouble,WAsDouble,MAsDouble,L0AsDoubleL0=Radian(Lo)X0=x*0.000001y=y-500000#IfTq=0Thena=6378245'54橢球參數(shù)b=6356863.01877305ep=0.006693421622966ep1=0.006738525414683f=(a-b)/ac=a^2/bd=b^2/aIfX0<3ThenBf=9.04353301294*X0-0.00000049604*X0^2-0.00075310733*X0^3-0.00000084307*X0^4-0.00000426055*X0^5-0.00000010148*X0^6ElseIfX0<6ThenBf=27.11115372595+9.02468257083*(X0-3)-0.00579740442*(X0-3)^2-0.00043532572*(X0-3)^3+0.00004857285*(X0-3)^4+0.00000215727*(X0-3)^5-0.00000019399*(X0-3)^6EndIfElsea=6378140'75橢球參數(shù)b=6356755.28815753ep=0.006694384999588ep1=0.006739501819473f=(a-b)/ac=a^2/bd=b^2/aIfX0<3ThenBf=9.04369066313*X0-0.00000049618*X0^2-0.00075325505*X0^3-0.0000008433*X0^4-0.00000426157*X0^5-0.0000001015*X0^6ElseIfX0<6ThenBf=27.11162289465+9.02483657729*(X0-3)-0.00579850656*(X0-3)^2-0.00043540029*(X0-3)^3+0.00004858357*(X0-3)^4+0.00000215769*(X0-3)^5-0.00000019404*(X0-3)^6EndIfEndIfBf=Bf*Pi/180#t=Tan(Bf)Itp=ep1*Cos(Bf)^2W=Sqr(1-ep*Sin(Bf)^2)v=Sqr(1+ep1*Cos(Bf)^2)M=c/v^3N=a/WLat=Bf-0.5*v^2*t*((y/N)^2-(5+3*t*t+Itp-9*Itp*t*t)*(y/N)^4/12+(61+90*t*t+45*t^4)*(y/N)^6/360)ll=((y/N)-(1+2*t*t+Itp)*(y/N)^3/6+(5+28*t*t+24*t^4+6*Itp+8*Itp*t*t)*(y/N)^5/120)/Cos(Bf)r=y*t/N-y^3*t*(1+t*t-Itp)/(3*N^3)+y^5*t*(2+5*t*t+3*t^4)/(15*N^5)Lat=Degree(Lat)Lon=Degree(L0+ll)r=Degree(r)EndSub有了正反算,換帶也就完成了!用到的子程序:PublicConstPi=3.141592653589
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化旅游產(chǎn)業(yè)發(fā)展合同
- 廣東省陽(yáng)江市高新區(qū)2024-2025學(xué)年高一上學(xué)期1月期末地理試題 含解析
- 家電行業(yè)智能家電互聯(lián)互通方案
- 企業(yè)采購(gòu)原材料采購(gòu)協(xié)議
- 水電站建設(shè)運(yùn)營(yíng)合作協(xié)議
- 旅游行業(yè)服務(wù)質(zhì)量保障協(xié)議
- 網(wǎng)絡(luò)科技行業(yè)數(shù)據(jù)安全使用承諾書(shū)
- 企業(yè)員工福利計(jì)劃與服務(wù)支持方案
- 私人教練健身訓(xùn)練合同協(xié)議
- 產(chǎn)品銷(xiāo)售代理合同集
- 3-二階非線性光學(xué)效應(yīng)詳解
- GB 30253-2024永磁同步電動(dòng)機(jī)能效限定值及能效等級(jí)
- 菜地勞務(wù)合同模板
- 二十屆三中全會(huì)精神學(xué)習(xí)題庫(kù)及答案
- 相反國(guó)課件-大班
- 【基于杜邦探析法的湯臣倍健財(cái)務(wù)報(bào)表探析案例(定量論文)11000字】
- 湖北省石首楚源“源網(wǎng)荷儲(chǔ)”一體化項(xiàng)目可研報(bào)告
- 湘美版小學(xué)二年級(jí)下冊(cè)美術(shù)全冊(cè)教案
- 買(mǎi)房送轎車(chē)活動(dòng)方案
- 《軟件工程導(dǎo)論》期末復(fù)習(xí)考試題庫(kù)(帶答案)
- 小學(xué)英語(yǔ)名詞單數(shù)變復(fù)數(shù)的語(yǔ)法規(guī)則及練習(xí)題含答案
評(píng)論
0/150
提交評(píng)論