任意匝道坐标正反算程序
线元法(积木法)匝道坐标正反算放样程序
Cls :"1Z 2A 3B"?→I ↙(注:此处""内为线路名,有几条线路就加入几条!)Cls:"K Or –K To Shu"?K:If K≥0:Then↙I=1=>Prog"P. Z"↙I=2=>Prog"P. A"↙I=3=>Prog"P. B"↙………………………(注:此处必须与上述""内为线路名和下面的数据库子程序名对应,有几条线路就加入几条!)Mat B[1,1]→A: Mat B[1,2]→L: Mat B[1,3]→U: Mat B[1,4]→V: MatB[1,5]→W: Mat B[1,6]→P: Mat B[1,7]→Q: Mat B[1,8]→G↙Else Cls:"K0"?A:"KN"?L :"X0"?U :"Y0"?V :"F0"?W :"R0"?P :"RN"?Q:"ZX:-1,+1,0"?G:IfEnd :Cls↙1→O: Prog "XY-B"↙Cls:"1.ZS 2.FS"? →I: I=2=>Goto 3↙Cls:"XC"?H:"YC"?Z↙LbI 1 : Cls:"K×+×××"?K↙If K>L Or K<A : Then Cls: Locate 6,2,"K OUT !"◢Stop: IfEnd↙LbI 2: Cls:90→B: Cls:"RJ Or 0 To K"?B:B=0 =>Goto 1:"Z"?T↙Prog "XY-A"↙X+Tcos(M+B)→X↙Y+Tsin(M+B)→Y↙360Frac((M+360)÷360→M↙Pol(X-H,Y-Z : 360Frac((J+360)÷360→J↙2→O: Prog "XY-B":Goto 2↙LbI 3 : Cls: "X"?C:"Y"?D↙LbI 4 : If K>L Or K<A : Then Cls: Locate 6,2,"K OUT !"◢Stop:IfEnd↙Prog "XY-A"↙(D-Y)sin(M)+(C-X)cos(M)→H↙If Abs(H)>X10-3 :Then K+H→K:Goto 4:IfEnd↙(D-Y)÷cos(M)→T↙3→O: Prog "XY-B":Goto 3↙子程序1名: XY-A5→N: G(Q-1-P-1)÷Abs(L-A)→F: Abs(K-A)÷N→R: 90R÷π→S:W+(FNR+2GP-1)NS→M:1→E↙U+R÷6×(Cos (W)+Cos (M) +4∑(Cos (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(Cos (W+((EFR+2GP-1)ES,E,1,(N-1)))→X ↙V+R÷6×(sin (W)+sin (M) +4∑(sin (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(sin (W+((EFR+2GP-1)ES,E,1,(N-1)))→Y↙子程序2名: XY-BCls :Fix 3:If O=1:Then "XY RESULTS:": "K0=":"KN=":"F0=": Locate 5,2,A : Locate 5,3,L : Locate 5,4,W◢Cls :"X0=":"Y0=":"R0=":"RN=": Locate 5,1,U : Locate 5,2,V : Locate 5,3,GP : Locate 5,4,GQ◢IfEnd↙If O=2:Th en↙Cls :"K×××=":"Z=":"X=":"Y=": Locate 6,1, K : Locate 4, 2, T : Locate 4,3, X : Locate 4,4, Y◢If T=0 :Then Cls :"QF(Z)=": Locate 8,1, M:M▼DMS◢IfEnd↙Cls :"K×××=":"S=": Locate 6,1, K : Locate 4, 2, I :"F=":J:J▼DMS◢IfEnd↙If O=3:Then "X=":"Y=":"K×××=":"Z=": Locate 4,1,C: Locate 4, 2, D : Locate 6,3,K :Locate 4,4,T◢IfEnd:Cls↙线路线元数据库子程序格式:数据库采用给矩阵变量Mat B赋值的形式,使数据组织更加简洁,极大的减少了线路数据库子程序的输入量,节约了计算器空间程序说明:程序线元判断原则:(1) 以道路中线的前进方向(即里程增大的方向)区分左右;(2) 当所求点位于中线时,Z=0;当位于中线左侧时,Z取负值;当位于中线右侧时,Z取正值。
任意曲线里程中边桩坐标正反算fx5800计算器程序
任意曲线里程中边桩坐标正反算(fx5800计算器)程序一、程序功能本程序由一个主程序(TYQXJS)和3个子程序―――(正算子程序SUB1)、反算子程序(SUB2)构成,可以根据曲线段—直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算,另外也可以将本程序中核心算法部分的两个子程序移植到其他相关的程序中,用于对曲线任意里程中边桩坐标进行正反算.1.主程序(TYQXJS)(5800P正交程序)〝1.SZ=>XY〞:〝2.XY=>SZ〞: 〝1,2〞?N:〝K0〞?O: 〝X0〞?U: 〝Y0〞?V: 〝FWJ〞?G: 〝Ls〞?H: 〝+1,-1,0〞?Q:If Q=0:Then 10 ^45->P: 10 ^45->R:Else〝R1〞?P: 〝R2〞?R:IfEnd: 180÷π→E: N=1=>Goto 1:Goto2↙Lbl 1:〝JS LCH〞?S: 〝P-J〞?Z :Abs(S-O)→W:1÷P→C: (P-R)÷(2HPR)→D:Prog〝SUB1〞:〝XS〞:X◢〝YS〞: Y◢〝FS〞:F-90→F:F ▲DMS ◢Goto1↙Lbl 2: 〝X〞?X:〝Y〞?Y:X→I: Y→J:1÷P→C:(P-R)÷(2HPR)→D:Prog〝SUB2〞:〝S〞:O+W→S◢〝Z〞:Z◢Goto2↙2.正算子程序(SUB1)0.1739274226→A: 0.3260725774→B: 0.0694318442→K:0.3300094782→L: 1-L→F:1-K→M↙U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MWD)))→X:V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD)))→Y↙G+QEW(C+WD)+90→F: X+Zcos(F)→X: Y+Zsin(F)→Y↙3.反算子程序(SUB2)G-90→T: Abs((Y-V)cos(T)-(X-U)sin(T))→W: 0→Z↙Lbl 0:Prog〝SUB1〞: T+QEW(C+WD)→L: (J-Y)cos(L)-(I-X)sin(L)→Z↙Abs(Z)﹤10∧(-6)=>Goto 1: W+Z→W : Goto 0↙Lbl 1: 0→Z:Prog〝SUB1〞: (J-Y)÷sin(F)→Z备注:起点里程→o:起点X坐标→U:起点Y坐标→V:起点方位角→G:曲线元长度→H:起点半径→P:终点半径→R:(右偏+1,左偏-1,直线0)→Q三.使用说明1.(输入、输出角度为度、分、秒形式)(1)以道路中线的前进方向(即里程增大的方向)区分左右;当线元左偏时,Q=-1, 当线元右偏时,Q=1;当线元为直线时,Q=0.(2)当所求点位于中线时,Z=0, 当所求点位于中线左侧时,Z取负值, 当所求点位于中线右侧时,Z取正值.(3)当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次方代替。
工程测量坐标正反算通用程序(终极篇)
工程测量坐标正反算通用程序(终极篇)第五篇坐标正反算通用程序(终极篇)1. 坐标正算主程序(命名为ZBZS)第1行:Lbl 0:”K=”?K:”BIAN=”? Z:”α=”?B第2行:Prog “A”第3行:”X=”:N+Zcos(F+B)◢第4行:”Y=”:E+Zsin(F+B)◢第5行:”F=”:F?DMS◢第6行:Goto 0K——计算点的里程BIAN——计算点到中桩的距离(左负右正)α——取前右夹角为正2. 坐标反算桩号和偏距主程序(命名为ZBFS)第1行:”X1=”? C:”Y1=”?D:”K1=”?K第2行:Lbl 0:Prog “A”第3行:Pol(C-N,D-E):Icos(F-J)→S:K+S→K第4行:Abs(S)>0.0001=>Goto 0第5行:”K1=”:K◢第6行:”BIAN=”:Isin(J-F)→Z◢X1——取样点的X坐标Y1——取样点的Y坐标K1——输入时为计算起始点(在线路内即可),输出时为反算点的桩号Z——偏距(左负右正)注:在9860或9960中需将第3行替换为Pol(C-N,D-E): List Ans[1]→I :List Ans[2]→J:Icos(J-F)→S:K+S →K,正反算主程序所有输入赋值多加一赋值符号(→),其他所有除数据库外的程序均保持不变3. 计算坐标子程序(命名为XYF)为了简洁,本程序由数据库直接调用,上述中的正反算主程序不直接调用此程序第1行:K-A→S:(Q-P)÷L→I第2行:N+∫(cos(F+X(2P+XI)×90÷π),0,S)→N第3行:E+∫(sin(F+X(2P+XI)×90÷π),0,S)→E第4行:F+S(2P+S I)×90÷π→F第5行:F<0=>F+360→F: F>360=>F-360→F4. 数据库(命名为A)第1行:K≤175.191=>Stop(超出后显示Done)第2行:175.191→A:428513.730→N:557954.037→E:92°26′40″→F:0→P:1/ 240→Q:70.417→L:K≤A+L =>GoTo 1(第一缓和曲线)第3行:245.607→A: 428507.298→N:558024.092→E: 100°50′59.4″→F: 1/240→P:1/240→Q:72.915→L: K≤A+L =>Goto 1(圆曲线)第4行:318.522→A: 428482.988→N:558092.538→E: 118°15′25.2″→F: 1/240→P: 0→Q: 55.104→L: K≤A+L =>Goto 1(第二缓和曲线)第5行:373.627→A:428453.283→N:558138.912→E:124°50′4.5″→F:0→P:-1/180→Q:67.222→L:K≤A+L=>Goto 1:Stop(下一曲线的第一缓和曲线,示例为S型曲线,超出后显示Done)第6行:Lbl 1:Prog “XYF”A——曲线段起点的里程N——曲线段起点的x坐标E——曲线段起点的y坐标F——曲线段起点的坐标方位角P——曲线段起点的曲率(半径倒数,直线为0,左负右正)Q——曲线段终点的曲率(半径倒数,直线为0,左负右正)L——曲线段长度(尽量使用长度,为计算断链方便)说明:(1)正算主程序可以计算一般边桩的坐标,如要计算类似涵洞端墙的坐标需增加两个变量,具体方法参考本程序集中的第1篇辛普生公式的坐标计算通用程序(2)适用于任意线形:直线(0→P、0→Q)、圆曲线(圆半径倒数→P、圆半径倒数→Q)、缓和曲线(0或圆半径倒数→P、圆半径倒数或0→Q)、卵形曲线(接起点圆的半径倒数→P、接终点圆的半径倒数→Q),曲线左转多加一负号。
5800计算器匝道中边桩万能正反算程序
5800计算器匝道中边桩万能正反算程序主程序匝道坐标正反算程序名称:ZDZBZFSLB1A↙Cls : Fix 4 : 10→Dim Z :"0=ZS,1=FS"?Z ↙IfZ=0:ThenGoto B:IfEnd↙(Z=0进入里程点坐标正算)IfZ=1:ThenProg"FSLCBZ 1": Goto A:IfEnd↙(Z=1进入反算里程边桩)Lb1 B↙“K=”?K :(计算里程)Prog"SJK2 ":Prog” ZDZBFY1” :Goto A ↙子程序数据库SJK2IfK<第一线元终点里程:THEN线元起点X→A:线元起点Y→B:线元起点半径(直线为1045)→T:线元起点里程→D:线元起点方位角→E:线元终点半径(直线为1045)→U:线元终点里程→G:线元偏向(左偏-1右偏+1)→W:Prog” ZDZBZS”: Return :IfEnd ↙If………………………………Prog” ZDZBZS”: Return :IfEnd↙(匝道线元数据分段输入)子程序匝道坐标正算ZDZBZSW*T→C:W*U→F:0→I:0→J:(C-F)/(2*C*F*(G-D))→H:K-D→Z[1] :E+( Z[1]/C+H Z[1]2)×180/π→V:V<0=>V+360→V:A+∫(Cos(E+( Z[1]/C+H Z[1]2)*180/π,0,Z[1])→Z[3] : B+∫(Sin(E+( Z[1]/C+H Z[1]2)*180/π,0,Z[1])→Z[4]: Return↙子程序匝道坐标放样ZDZBFY1"XZJ="?R◢(输入置镜点X)"YZJ="?S◢(输入置镜点Y)"XHS="?M◢(输入后视点X)"YHS="?N◢(输入后视点Y)Pol(M-R,N-S):J<0=>J+360→J:"HJ=":J→DMS◢(后视方位角)"HD=":I◢(后视距离)"XI=": Z[3]◢(计算点中心X)"YI=": Z[4]◢(计算点中心Y)"PJ="?P◢(输入计算点边桩偏角左-右+)"PD="?Q◢(输入计算点边桩偏距)Rec(Q,V+P): Z[3]+I→Z[7] : Z[4]+J→Z[8]:"XP=": Z[7]◢(计算点边桩X)"YP=": Z[8]◢(计算点边桩Y)Pol(Z[7]-R, Z[8]-S):J<0=>J+360→J:"FY J=":J→DMS◢(放样方位角)"FYD=":I◢(放样距离)Return↙子程序反算里程边桩,名称:FSLCBZ1Lb11↙"XK="?X:"YK="?Y↙(输入任意测点的XY坐标):“K?=”?K (试算里程,输入匝道范围内任意里程点号,接近里程号可以加快反算速度)↙Lb12↙Prog"SJK2 ":V-90 →Z[2]: Z[2]<0=>360+ Z[2]→Z[2]:Abs((Y-Z[4])*Cos Z[2]-(X-Z[3])*Sin Z[2])→Z[5]↙If Z[5]<0.0001:ThenGoto4:ElseGoto 3:Ifend↙Lb13↙K+ Z[5]→K: Prog"SJK2": V-90 →Z[2]: Z[2]<0=>360+ Z[2]→Z[2]:Abs((Y-Z[4])*Cos Z[2]-(X-Z[3])*Sin Z[2])→Z[6]↙IfZ[6]<0.0001 :Then Z[6]→Z[5]: Goto4:Else IF Z[6]< Z[5]: THENK+ Z[6]→K: Goto2 :Else IF Z[6]> Z[5]:THENK- Z[6]→K:Go to2:Ifend:Ifend:Ifend↙Lb14↙Pol (X-Z[3],Y-Z[4]↙"DP(-Z+Y)=":I◢(坐标点与线路偏距)"KP=":K+ Z[5]→K◢(里程)Return↙5800计算器线路、匝道中边桩万能程序彭赐明改编网上类似程序于河南高速郑漯8标LB1 1↙Cls : Fix 4 : Deg :"XZJ="?R◢(输入置镜点X)"YZJ="?S◢(输入置镜点Y)LB1 2↙"K="?K◢(输入计算点里程)If K<第一线元终点里程:THEN 线元起点X→A:线元起点Y→B:线元起点半径(直线起点终为10的45次方)→T:线元起点里程→D:线元起点方位角→E:线元终点半径(直线起终点为10的45次方)→U:线元终点里程→G:线元偏向(左偏-1右偏+1)→W:Goto 3:IfEnd↙………………………………(线元数据分段输入)LB1 3↙W*T→C:W*U→F:0→I:0→J:(C-F)/(2*C*F*(G-D))→H:K-D→X:E +(X/C+HX^2)×180/π→V:V<0=>V+360→V:"QXJ=":V→DMS◢(计算点切线方位角)A+∫(Cos(E+(X/C+HX^2)*180/π,0,X)→Z :B+∫(Sin(E+(X/C+HX^2)*180/π,0,X)→Y :"XI=":Z◢(计算点中心X)"YI=":Y◢(计算点中心Y)"PJ="?P◢(输入计算点边桩偏角左-右+)"PD="?Q◢(输入计算点边桩偏距)Rec(Q,V+P):Z+I→Z :Y+J→Y:"XP=":Z◢(计算点边桩X)"YP=":Y◢(计算点边桩Y)Pol(Z-R,Y-S):J<0=>J+360→J:"FYJ=":J→DMS◢(放样方位角)"FYD=":I◢(放样距离)Goto 2↙回答人的补充2010-06-19 11:41这里还有一个5800计算器匝道中边桩万能正反算程序主程序匝道坐标正反算程序名称:ZDZBZFSLB1A↙Cls : Fix 4 : 10→Dim Z :"0=ZS,1=FS"?Z ↙IfZ=0:ThenGoto B:IfEnd↙(Z=0进入里程点坐标正算)IfZ=1:ThenProg"FSLCBZ 1": Goto A:IfEnd↙(Z=1进入反算里程边桩)Lb1 B↙“K=”?K :(计算里程)Prog"SJK2 ":Prog” ZDZBFY1” :Goto A ↙子程序数据库SJK2IfK<第一线元终点里程:THEN线元起点X→A:线元起点Y→B:线元起点半径(直线为1045)→T:线元起点里程→D:线元起点方位角→E:线元终点半径(直线为1045)→U:线元终点里程→G:线元偏向(左偏-1右偏+1)→W:Prog” ZDZBZS”: Return :IfEnd ↙If………………………………Prog” ZDZBZS”: Return :IfEnd↙(匝道线元数据分段输入)子程序匝道坐标正算ZDZBZSW*T→C:W*U→F:0→I:0→J:(C-F)/(2*C*F*(G-D))→H:K-D→Z[1] :E+( Z[1]/C+H Z[1]2)×180/π→V:V<0=>V+360→V:A+∫(Cos(E+( Z[1]/C+H Z[1]2)*180/π,0,Z[1])→Z[3] :B+∫(Sin(E+( Z[1]/C+H Z[1]2)*180/π,0,Z[1])→Z[4]:Return↙子程序匝道坐标放样ZDZBFY1"XZJ="?R◢(输入置镜点X)"YZJ="?S◢(输入置镜点Y)"XHS="?M◢(输入后视点X)"YHS="?N◢(输入后视点Y)Pol(M-R,N-S):J<0=>J+360→J:"HJ=":J→DMS◢(后视方位角)"HD=":I◢(后视距离)"XI=": Z[3]◢(计算点中心X)"YI=": Z[4]◢(计算点中心Y)"PJ="?P◢(输入计算点边桩偏角左-右+)"PD="?Q◢(输入计算点边桩偏距)Rec(Q,V+P): Z[3]+I→Z[7] : Z[4]+J→Z[8]:"XP=": Z[7]◢(计算点边桩X)"YP=": Z[8]◢(计算点边桩Y)Pol(Z[7]-R, Z[8]-S):J<0=>J+360→J:"FYJ=":J→DMS◢(放样方位角)"FYD=":I◢(放样距离)Return↙子程序反算里程边桩,名称:FSLCBZ1Lb11↙"XK="?X:"YK="?Y↙(输入任意测点的XY坐标):“K?=”?K (试算里程,输入匝道范围内任意里程点号,接近里程号可以加快反算速度)↙Lb12↙Prog"SJK2 ":V-90 →Z[2]: Z[2]<0=>360+ Z[2]→Z[2]:Abs((Y-Z[4])*Cos Z[2]-(X-Z[3])*Sin Z[2])→Z[5]↙If Z[5]<0.0001:ThenGoto4:ElseGoto 3:Ifend↙Lb13↙K+ Z[5]→K: Prog"SJK2": V-90 →Z[2]: Z[2]<0=>360+ Z[2]→Z[2]:Abs((Y-Z[4])*Cos Z[2]-(X-Z[3])*Sin Z[2])→Z[6]↙IfZ[6]<0.0001 :Then Z[6]→Z[5]: Goto4:Else IF Z[6]< Z[5]:TH ENK+ Z[6]→K: Goto2 :Else IF Z[6]> Z[5]:THENK- Z[6]→K:Goto2:Ifend:Ifend:Ifend↙Lb14↙Pol (X-Z[3],Y-Z[4]↙"DP(-Z+Y)=":I◢(坐标点与线路偏距)"KP=":K+ Z[5]→K◢(里程)Return↙。
任意里程中边桩坐标进行正反算(改版1).pdf
任意里程中边桩坐标进行正反算一、程序功能本程序可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、止点里程、起点切线方位角、起点曲率、止点曲率、道路中线的前进方向)及里程边距夹角或坐标,对该曲线段范围内(如不在该范围则自动转入下一线元)任意里程中边桩坐标进行正反算。
二、源程序1. 主程序(FQXZB) 453字节Lbl0:N"1.LC=>XY,XY=>LC":S:“LC”:prog“QXYS”:U"X0":V"Y0":O"LC1":H"LC2":G"Fi":P"R1":R"R2":Q"ZX[Z:0,L:-1,R:+1]":Z[1]=(1/R-1/P)/(2Abs(H-O)):Z[2]=180/π:N=1=>Goto 1:≠>Goto 3⊿←┘Lbl 1:{ABK}:S"LC":A"B-L":B“B-R””K"KJ[Q(+),H(-)":W"JA":D"PC[L(-1),R (+1)]":S≥H=>S=H ⊿ Z[3]=Abs(S-O):Prog"SUB1":“X=”:X◢“Y=”:Y◢“i=”:F=G+Q Z[2]Z[3](1/P+Z[1]Z [3]):F≥0=>F→DM S◢Z: ≠>F=F+360:F→DMS◢Prog"DXD":Goto 2←┘≠>F=F+360: F→DMS⊿Prog"DXD":Goto 2Lbl 2:"X[L]=":I=X-Acos(F+W)+KcosF+Dcos(F+90) ◢"Y[L]=":J=Y-Asin(F+W)+KsinF+Dsin(F+90) ◢Pol(I-E,J-L):J<0=>J=J+360 ⊿ "FWJ[L]=":J→DMS ◢"S[L]=":I ◢"X[Z]=":I=X+KcosF+Dcos(F+90) ◢"Y[Z]=":I=X+KsinF+Dcos(F+90) ◢Pol(I-E,J-L):J<0=>J=J+360 ⊿ "FWJ[Z]=":J→DMS ◢"S[Z]=":I ◢"X[R]=":I=X+Bcos(F+W)+KcosF+Dcos(F+90) ◢"Y[R]=":J=Y+Bsin(F+W)+KsinF+Dsin(F+90) ◢Pol(I-E,J-L):J<0=>J=J+360 ⊿ "FWJ[R]=":J→DMS ◢"S[R]=":I ◢S=H ≠> Goto 4←┘Lbl 3:{XY}:XY:I=X:J=Y:Prog"SUB2":"LC=":S=O+Z[3]◢"B[L(-1),R(+1)]= ":Z◢Goto 3Lbl 4:U=X:V=Y:O=H:G=G+180Q(Z[1]Z[3] +1/P)Z[3]/π:P=RGoto 02. 子程序(SUB1) 414字节Z[4]=0.1739274226:Z[5]=0.3260725774:Z[6]=0.0694318442:Z[7]=0.3300094782:F=1-Z[7]:M=1-Z[6]:Z[8]=G+QZ[2]MZ[3](1/P+MZ[1]Z[3]):X=U+Z[3](Z[4]cos(G+QZ[2]Z[3]Z[6](1/P+Z[1]Z[3]Z[6]))+Z[5]cos(G+QZ[2]Z[3]Z[7](1/P+Z[1]Z[3]Z[7]))+Z[5]cos(G+QZ[2]FZ[3](1/P+FZ[1]Z[3]))+Z[4]cosZ[8]):Y=V+Z[3](Z[4]sin(G+QZ[2]Z[3]Z[6](1/P+Z[1]Z[3]Z[6]))+Z[5]sin(G+QZ[2]Z[3]Z[7](1/P+Z[1]Z[3]Z[7]))+Z[5]sin(G+QZ[2]FZ[3](1/P+FZ[1]Z[3]))+Z[4]sin Z[8]) 3. 子程序(SUB2) 180字节T=G-90:Z[3]=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl 0:Prog"SUB3":Z[7]=T+QZ[2]Z[3](1/P+Z[1]Z[3]):Z=(J-Y)cosZ[7]-(I-X)sinZ[7]:AbsZ<1E-6=>Goto1:≠>Z[3]=Z[3]+Z:Goto 0⊿←┘Lbl 1:Z=0:Prog"SUB3":Z=(J-Y)÷sinF4. 子程序(SUB3) 55字节Prog "SUB1":F=G+QZ[2]Z[3](1/P+Z[1]Z[3])+90:X=X+ZcosF:Y=Y+ZsinF5. 子程序(QXYS)S≥0=>GOTO 0←┘Lbl 0:S≤313.137=>U=555357.153:V=4797782.079:O=0:H=313.137:G =106°6′35.8″:P= 10^45:R=10^45:Q=0:Got o 1:⊿ S<443.137=>U=555270.263:V=480082.919:O=313.137:H=443.137:G=106°5′35.8″: P=10^45:R=500:Q=-1: Goto 1:⊿Goto 1◢Lbl 16. 子程序(DXD)C"DXD":C=1=>"X[ZD-5]=":E=491893.218 ◢"Y[ZD-5]=":L=410802.542 ◢"H[ZD-5]=":11.239 ◢⊿C=2=>"X[ZD-9]=":E=491883.398 ◢"Y[ZD-9]=":L=410730.632 ◢"H[ZD-5]=":10.896 ◢⊿C=3=>"X[ZX-5]=":E=492673.735 ◢"Y[ZX-5]=":L=410471.185 ◢"H[ZX-5]=":9.574 ◢⊿。
坐标正反算计算程序
坐标正反算计算程序在进行坐标正反算计算之前,需要先了解一些基本概念和公式:1.大地坐标系:大地坐标系是用经纬度表示地球表面上的点的坐标系统,其中经度表示东西方向的位置,纬度表示南北方向的位置。
2.平面坐标系:平面坐标系是用平面直角坐标系表示地球上的点的坐标系统,其中X轴表示东西方向的位置,Y轴表示南北方向的位置。
3.椭球坐标参数:椭球坐标参数包括椭球体长半轴a、短半轴b和偏心率e等参数,用来描述地球表面的形状。
4.大地坐标与平面坐标的转换公式:-大地坐标转平面坐标:平面X坐标 = N * (cosB * (L - L0))平面Y坐标 = M + N * sinB * tan(B - B0)-平面坐标转大地坐标:B=B0+(Y-M)/NL = L0 + X / (N * cosB)H = (N / cosB) - N其中,N、M、B0、L0分别代表椭球的参数计算中的一些辅助数值,H 代表大地高。
下面是一个示例的坐标正反算计算程序:```pythonimport mathclass CoordinateConverter:def __init__(self, a, b, e, lon_origin, lat_origin):self.a = aself.b = bself.e = eself.lon_origin = lon_origint_origin = lat_origindef geodetic_to_plane(self, lon, lat):lon_diff = lon - self.lon_originM = self.a * (1 - self.e ** 2) / (1 - self.e ** 2 * math.sin(t_origin) ** 2) ** 1.5N = self.a / math.sqrt(1 - self.e ** 2 *math.sin(t_origin) ** 2)X = N * math.cos(t_origin) * lon_diffY = M + N * math.sin(t_origin) * math.tan(lat - t_origin)return X, Ydef plane_to_geodetic(self, X, Y):M = self.a * (1 - self.e ** 2) / (1 - self.e ** 2 *math.sin(t_origin) ** 2) ** 1.5N = self.a / math.sqrt(1 - self.e ** 2 *math.sin(t_origin) ** 2)lat = t_origin + (Y - M) / Nlon = self.lon_origin + X / (N * math.cos(lat))H = (N / math.cos(lat)) - Nreturn lon, lat, H#示例用法#大地坐标转平面坐标X, Y = converter.geodetic_to_plane(lon=121, lat=41)print("平面坐标:", X, Y)#平面坐标转大地坐标print("大地坐标:", lon, lat, H)```注意:在实际使用时,需要根据具体的椭球参数和坐标系定义进行适当修改,以满足实际需求。
匝道坐标计算程序
匝道坐标计算程序(辛甫生公式)L1 LbI0:{EG}:A“XA”:B“YA”:C“CA”:D“1/RA”:E“1/RB”:F“KA”:G“KB”L2 LbI1:{HORS}:H“KI”:O“DL”:R“DR”:S“PJ”:H>G => Goto2△L3 P=(E-D)/Abs(G-F):Q=Abs(H-F):I=P×Q:T=D+IL4 J=C+(I+2D)Q×90/π⊿M=C+(I/4+2D)Q×45/(2π):N=C+(3I/4+2D)Q×135/(2π)L5 K=C+(I/2+2D)Q×45/πL6 X=A+Q(cosC+cosJ+4(cosM+cosN)+2cosK)/12⊿L7 Y=B+Q(sinC+sinJ+4(sinM+sinN)+2sinK)/12⊿L8 U“XL”=X+Ocos(J-180+S)⊿V“YL”=Y+Osin(J-180+S)⊿L9 W“XR”=X+Rcos(J+S)⊿Z“YR”=Y+Rsin(J+S)⊿L10 A=X:B=Y:C=J:D=T:F=H:Goto1L11 LbI2:A=X:B=Y:D=E:F=G:C=J:Goto0数据输入说明:① XA、YA、CA分别为A点(起始点)的X、Y坐标及方位角。
② 1/RA、1/RB分别为A点和B点的曲率,以1/R表示。
曲线左偏时取“-”;曲线右偏时取“+”;直线时为0;缓和曲线时: 1/RA为0或是〒1/RA、1/RB为0或是〒1/RB;圆曲线时均为〒1/R。
【左“-”右“+”】③ KA、KB分别为曲线原起点A和终点B的里程桩号。
④ XL、YL、XR、YR分别为左边桩和右边桩的X、Y坐标。
⑤ DL、DR分别为左、右边桩距中桩的水平距离。
⑥ 当一个曲线计算完后,即KI>KB时,程序显示1/RB和KB,此时需输入下一个曲线原终点的曲率和桩号。
⑦ 计算无缓和曲线时,不能由直线段直接计算而应将KA、1/RA输入LR点桩号和〒1/R。
铁路线路任意里程坐标正反算程序使用说明
铁路线路任意里程坐标正反算程序(有需要程序的可联系陈工,QQ:285242895)1、程序开发背景在铁路线路测量中,在曲线要素已定的情况下,已知某点的里程及距中线的距离,计算该点的坐标,我们称之为线路坐标正算。
相反地,已知某点的坐标,确定该点在已定线路中的里程及距中线距离的过程,我们称之为线路坐标反算。
对于一条完整的曲线,它包括直线、第一缓和曲线、圆直线及第二缓和曲线。
而一条完整的铁路线路,通常都包含不止一条曲线,如果我们根据铁路线路多个曲线的曲线要素,构建一个线路模型,然后给出任意里程点,自动计算出对应的线路坐标,也可以给出任意坐标,计算出对应的线路里程和偏距,这将在测量和放样工作有着较为实际的应用。
比如用于逐桩坐标计算、隧道开挖及土石方开挖、线路征地界坐标计算、线路测量中线质量的检查、地质钻孔位置、桥梁桩基坐标计算等方面。
2、程序界面3、程序功能1、可以根据点的里程及距中线的距离,计算出该点的坐标,显示数据文件导入结果及计算结果,最后以csv格式文件保存计算的里程数据成果及曲线要素。
2、可以根据任意点的坐标,计算出点在已定线路中的里程及距中线距离,同时显示数据计算结果,最后以.zb格式文件保存计算的坐标成果。
4、程序特色3.1 本程序采用易于交互操作的对话框模板和MSFlexGrid控件,在MFC开发环境下利用VC语言进行编写,整个程序的计算过程及结果均可在图表中直接呈现,便于数据的检查,整个程序的界面简洁直观,功能清晰、易学易用。
3.2 结合铁路测量的实际情况,在导入曲线要素时,不需要输入曲线的五大桩要素以及曲线偏向,只需要曲线数据文件中包含曲线半径、缓长及曲线两侧各两个直线点坐标,就可以计算出其他曲线要素,进而构建完整的线路模型。
3.3 在线路正算时,里程数据既可以从文件中导入,也可以在程序界面上获取。
当采用从文件导入时,里程数据可以是乱序排列的。
当从界面获取时,程序可以自动计算出连续里程数据,3.4 在线路反算中,当我们给定任意点的坐标时,程序不仅可以计算出对应线路中的里程、距离及垂点坐标,还可以计算出此点是否在线路对应范围内以及位于曲线上的具体位置。
4800全线坐标正反算程序
线路中边桩任意里程坐标正、反算改编程序(CASIO fx-5800P)1. 正算子程序(SUB1)A=0.26:B=0.74:K=0.02:L=0.3300094782:F=1-L:M=1-K:X=U+W(Acos(G+57.2958QKW(1/P+KWD))+B cos(G+57.2958QLW(1/P+LWD))+Bcos(G+57.2958QFW(1/P+FWD))+ Acos(G+57.2958QMW(1/P+MWD))):Y=V+W(Asin(G+57.2958QKW(1 /P+KWD))+Bsin(G+57.2958QLW(1/P+LWD))+Bsin(G+57.2958QFW(1 /P+FWD))+Asin(G+57.2958QMW(1/P+MWD))):F=G+57.2958QW(1/ P+WD)+90:X=X+Zcos(F-90+T):Y=Y+Zsin(F-90+T)2. 反算子程序(SUB2)W=Abs((Y-V)cos(G-90)-(X-U)sin(G-90)):Z=0:Lbl 0:Prog "SUB1 ":L=(G-90)+57.2958QW(1/P+WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<1 E-6=>Goto1:≠>W=W+Z:Goto 0Δ←┘Lbl 1:Z=0:Prog "SUB1":Z=(J-Y)÷sinF二数据库程序(SJK主程序)Lb1 4:"1.SZ => XY":"2.XY => SZ":{NS}:S<75685.656 =>O=75172.813:U=10257.769:V=615287.070:G=325-46-1.5:H =512.843:P=2600:R=2600:Q=1:Goto0Δ←┘(JD65)S<75884.442=>O=75685.656:U=10707.383:V=615042.113:G= 337-04-06.6:H=198.786:P=2600:R=1E45:Q=0:Goto0Δ←┘(直线)S<76044.442=>O=75884.442:U=10890.459:V=614964.660:G=337-04-06.6:H=160:P=1E45:R=1050:Q=-1:Goto0Δ←┘(JD66第一缓和段)S<76392.111=>O=76044.442:U=11036.146:V=614898.615:G= 332-42-11.19:H=347.669:P=1050:R=1050:Q=-1:Goto0Δ←┘(J D66圆曲线段)S<76552.111=>O=76392.111:U=11313.328:V=614691.387:G= 313-43-54.11:H=160:P=1050:R=1E45:Q=-1:Goto0Δ←┘(JD66第二缓和段)S<78271.813=>O=76552.111:U=11417.893:V=614570.338:G= 309-21-58.7:H=1719.702:P=1E45:R=1E45:Q=0:Goto0Δ←┘(直线段)S<78431.813=>O=78271.813:U=12508.659:V=613240.824:G= 309-21-58.7:H=160:P=1E45:R=1050:Q=-1:Goto0Δ←┘(JD67第一缓和段)S<78810.831=>O=78431.813:U=12606.944:V=613114.623:G= 305-00-3.29:H=379.018:P=1050:R=1050:Q=-1:Goto0Δ←┘(JD 67圆曲线段)S<78970.831=>O=78810.831:U=12764.225:V=612772.038:G= 284-19-7.91:H=160:P=1050:R=1E45:Q=-1:Goto0Δ←┘(JD67第二缓和段)S<79284.977=>O=78970.831:U=12795.865:V=612615.240:G= 279-57-12.5:H=314.146:P=1E45:R=1E45:Q=0:Goto0Δ←┘(直线段)S<79444.977=>O=79284.977:U=12850.165:V=612305.822:G= 279-57-12.5:H=160:P=1E45:R=750:Q= 1:Goto0Δ←┘(JD68第一缓和段)S<79607.747=>O=79444.977:U=12883.388:V=612149.392:G= 286-03-54.08:H=162.77:P=750:R=750:Q= 1:Goto0Δ←┘(JD6 8圆曲线段)S<79767.747=>O=79607.747:U=12944.985:V=611999.072:G= 298-29-59.22:H=160:P=750:R=1E45:Q= 1:Goto0Δ←┘(JD68第二缓和段)S<79927.747=>O=79767.747:U=13031.084:V=611864.310:G= 304-36-40.8:H=160:P=1E45:R=750:Q=-1:Goto0Δ←┘(JD69第一缓和段)S<80152.430=>O=79927.747:U=13117.183:V=611729.547:G= 298-29-59.22:H=224.683:P=750:R=750:Q=-1:Goto0Δ←┘(JD6 9圆曲线段)S<80312.430=>O=80152.430:U=13193.440:V=611519.093:G= 281-20-6.98:H=160:P=750:R=1E45:Q=-1:Goto0Δ←┘(JD69第二缓和段)S<80472.430=>O=80312.430:U=13213.651:V=611360.456:G= 275-13-25.4:H=160:P=1E45:R=920:Q= 1:Goto0Δ←┘(JD70A 第一缓和段)S<80764.750=>O=80472.430:U=13232.840:V=611201.665:G= 280-12-21.47:H=292.320:P=920:R=920:Q= 1:Goto0Δ←┘(JD7 0A圆曲线段)S<80924.750=>O=80764.750:U=13329.149:V=610926.967:G= 301-56-13.33:H=160:P=920:R=1E45:Q= 1:Goto0Δ←┘(JD70 A第二缓和段)S<=>O=75018.789:U=10119.920:V=615344.580:G=325-46-1. 5:H=591.742:P=3000:R=3000:Q= 1:Goto0Δ←┘(Z JD2圆曲线段)S<75868.894=>O=75610.531:U=10638.706:V=615061.939:G= 337-04-6.6:H=258.363:P=3000:R=1E45:Q=0:Goto0Δ←┘(直线段)S<76028.894=>O=75868.894:U=10876.651:V=614961.272:G= 337-04-6.6:H=160:P=1E45:R=900:Q=-1:Goto0Δ←┘(Z JD3第一缓和段)S<76304.04=>O=76028.894:U=11022.044:V=614894.617:G= 331-58-31.95:H=275.146:P=900:R=900:Q=-1:Goto0Δ←┘(Z J D3圆曲线段)S<76464.04=>O=76304.04:U=11241.555:V=614730.506:G= 314-27-33.35:H=160:P=900:R=1E45:Q=-1:Goto0Δ←┘(Z JD3第二缓和段)S<78325.868=>O=76464.04:U=11346.622:V=614609.911:G= 309-21-58.7:H=1861.828:P=1E45:R=1E45:Q=0:Goto0Δ←┘(直线段)S<78485.868=>O=78325.868:U=12527.535:V=613170.519:G= 309-21-58.7:H=160:P=1E45:R=1000:Q=-1:Goto0Δ←┘(Z JD4第一缓和段)S<78839.218=>O=78485.868:U=12625.657:V=613044.196:G= 304-46-57.52:H=353.350:P=1000:R=1000:Q=-1:Goto0Δ←┘(Z JD4圆曲线段)S<78999.218=>O=78839.218:U=12772.319:V=612724.740:G= 284-32-13.68:H=160:P=1000:R=1E45:Q=-1:Goto0Δ←┘(Z JD4第二缓和段)S<80472.391=>O=80312.391:U=13213.651:V=611360.455:G= 275-13-25.4:H=160:P=1E45:R=936.13:Q= 1:Goto0Δ←┘(Z JD 1A第一缓和段)S<80707.393=>O=80472.391:U=13232.720:V=611201.648:G= 280-07-12.42:H=235.002:P=936.13:R=936.13:Q= 1:Goto0Δ←┘(Z JD1A圆曲线段)S<80867.397=>O=80707.393:U=13302.398:V=610977.859:G= 297-27-38.28:H=160:P=936.13:R=1E45:Q= 1:Goto0Δ←┘(Z J D1A第二缓和段)LB1 0:D=(P-R)÷(2HPR):N=1=>Goto 1:≠>Goto 2Δ←┘Lbl 1:{TZ}:Z:W=Abs(S-O):Prog "SUB1":X"XS"=X◢Y"YS"=Y◢F"FS"=F-90◢C“XC”:E“YC”:I=0:J=0:Pol(X-C,Y-E):I“I=” ◢J∠0=>J“J=”+360◢≠>J“J=” ◢ΔGoto4←┘Lbl 2:{XY}:XY:I=X:J=Y:Prog "SUB2":S"S"=O+W◢Z"Z"=Z◢G o t o4。
任意坐标正反算及隧道超欠挖程序最终版
任意坐标正反算及隧道超欠挖程序最终版(2013-6-1)说明:一直以来程序正反算没有问题,只是高程不对,那超欠挖就扯谈了,经修改实践后,本程序决对能用。
此程序以后不会再有什么改动。
如果您的计算器不能运行或是计算错误,请认真核对,因为每一个语句命令我都反复核对计算器,运行顺畅无误。
1-JIN YU(主程序)Lbl 4: “1→ZS,2→FS,3→CQW”?N(选择计算模式,1为正算,2为反算,3为超欠挖)N=1=>Goto 1:N=2=>Goto 2:N=3=>Goto 3Lbl 1: “K=”? S:“P=”? Z:Prog “SJ¬-PM”:Abs(S-O) →W:Prog “SUB1-ZS”:“X=”:Locate4,4,X: “Y=”:Locate4,4,Y:F-90→F:S→K:Prog“SJ¬-GC”:“H=”:Locate4,4,H:“W=”: Locate4,4,F°◢Goto 4(正算-输入待求点里程K=、输入待求点偏距P=、显示待求点里程X=、显示待求点里程Y=、显示待求点里程设计高程H=)Lbl 2: “K(L)=”? S: “X=”? X:“Y=”?Y:Prog“SJ¬-PM”:X→I:Y→J:Prog "SUB2-FS":O+W→S: “K=":Locate4,4, S :“P=":Locate4,4, Z:S→K:Prog“SJ¬-GC”:“H=”:Locate4,4, H:F-90→F: “W=”: Locate4,4,F°◢Goto 4(反算- 输入反算点大概里程K(L)=、输入实测点X=、输入实测点Y=、显示实测点里程K=、显示实测点偏距P=、显示实测点的设计高程H=)Lbl 3: “K(L)=”? S: “X=”?X:“Y=”?Y:Prog“SJ¬-PM”:X→I:Y→J:Prog "SUB2-FS":O+W→S: “K=":Locate4,4, S :“P=":Locate4,4, Z:S→K:Prog“SJ¬-GC”:“H=”:Locate4,4, H:F-90→F: “W=”: Locate4,4,F°◢Prog“SJ-CQW”◢Goto4(超欠挖-输入实测点X=、输入实测点Y=、显示实测点里程K=、显示实测点偏距P=、显示实测点的设计高程H=、输入实测高程H1=、显示超欠挖值及第几圆心上CQ→Y?=)SJ¬-PM(子程序名-平面线形数据库)(JD1前直线段要素输入)If S ≥121000(线元起点里程):Then 1064587.393→U(线元起点X坐标):523392.492→V (线元起点Y坐标):121000→O(线元起点里程):710 06’07”→G(线元起点方位角):864.718 →H(线元长度):1×1045→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd(JD1第一缓和曲线要素输入)If S ≥121864.718(线元起点里程):Then 1064867.459→U(线元起点X坐标):524210.598→V(线元起点Y坐标):121864.718→O(线元起点里程):71006’07”→G(线元起点方位角):90 →H(线元长度):1×1045→P(线元起点曲率半径):1200→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd(JD1圆曲线要素输入)If S ≥121954.718(线元起点里程):Then 1064895.540→U(线元起点X坐标):524296.100→V(线元起点Y坐标):121954.718→O(线元起点里程):73015’02”→G(线元起点方位角):425.529 →H(线元长度):1200→P(线元起点曲率半径):1200→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd(JD1第二缓和曲线要素输入)If S ≥122380.246(线元起点里程):Then 1064944.123→U(线元起点X坐标):524716.604→V(线元起点Y坐标):122380.246→O(线元起点里程):93034’05”→G(线元起点方位角):90 →H(线元长度):1200→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd(两交点夹直线要素)If S ≥122470.246(线元起点里程):Then 1064936.279→U(线元起点X坐标):524806.256→V(线元起点Y坐标):122470.246→O(线元起点里程):95043’00”→G(线元起点方位角):1571.776 →H(线元长度):1×1045→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd(JD2第一缓和曲线要素输入)If S ≥124042.022(线元起点里程):Then 1064779.711→U(线元起点X坐标):526370.215→V(线元起点Y坐标):124042.022→O(线元起点里程):95043’00”→G(线元起点方位角):90 →H(线元长度):1×1045→P(线元起点曲率半径):1200→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd(JD2圆曲线要素输入)If S ≥124132.022(线元起点里程):Then 1064771.867→U(线元起点X坐标):526459.867→V(线元起点Y坐标):124132.022→O(线元起点里程):93034’05”→G(线元起点方位角):116.56 →H(线元长度):1200→P(线元起点曲率半径):1200→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd(JD2第二缓和曲线要素输入)If S ≥124248.582(线元起点里程):Then 1064770.269→U(线元起点X坐标):526576.370→V(线元起点Y坐标):124248.582→O(线元起点里程):88000’10”→G(线元起点方位角):90 →H(线元长度):1200→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd(JD2后直线要互输入)If S ≥124338.582(线元起点里程):Then 1064775.653→U(线元起点X坐标):526666.203→V(线元起点Y坐标):124338.582→O(线元起点里程):85051’15”→G(线元起点方位角):5201.860 →H(线元长度):1×1045→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd(注:有多个平面线形,依照上面的依次变更, 每多一个,就增加一个。
匝道程序 2
立交匝道中边桩坐标放样正反算程序主程序:(RAMP)Deg : Fix 3 : 10→Dim Z↙0.1739274226→Z[1] : 0.0694318442→Z[2] : 0.3260725774→Z[3] : 0.3300094782→Z[4] ↙Z[3]→Z[5] : 1- Z[4]→Z[6] : Z[1]→Z[7] : 1-Z[2]→Z[8]↙“RAMP?[1-N]”?→Z[9]↙(输入匝道代码,比如数字1,2,3...代表a,b,c匝道,并存储在变量Z[9]中)If Z[9]=0 : then“XA”?W :“YA”?Y :“FWJ”?Q:“RS”?A :“RE”?B :“KS”?S : “KE”?E : IfEnd ↙(若Z[9]=0 时,则手工输入原始数据:线元起点X﹑Y坐标,方位角,线元起﹑终点曲率,起﹑终点桩号)Cls :“ZS[1],FS[2]”?→Z[10]:Z[10]=2 =>Goto 2↙“XS”?U :“YS”?V↙(输入测站点坐标)Lbl 0:“KP”?P↙(输入待计算的中桩桩号)Z[9]>0=>Prog“RAMP-DATA”↙(调用匝道数据库子程序)Prog“RAMP-ZBJS”↙(调用子程序计算中桩坐标)Lbl 1:90→H:“YJ”?H : H=0 =>Goto 0 :?D↙(输入右角及距离,若右角为0则返回桩号输入)F+Dcos(Z+H)→R : G+Dsin(Z+H)→T↙(坐标计算)Pol(R-U,T-V) : J<0=>J+360→J↙1→O :Prog“RAMP-XS”: Goto 1↙(调用计算结果显示子程序)Lbl 2:“XB”?U :“YB”?V :“KP”?P↙(坐标反算,输入X,Y,估算的桩号)Lbl 3:Z[9]>0=>Prog“RAMP-DATA”↙Prog“RAMP-ZBJS”↙(调用子程序计算中桩坐标)(V-G)cos(Z-90)-(U-F)sin(Z-90)→H↙If Abs(H)>0.001 : Then P+H→P : Goto 3: IfEnd↙(G-V)÷sin(Z-90)→D↙2→O : Prog“RAMP-XS”: Goto 2↙(调用计算结果显示子程序)子程序1:(RAMP-ZBJS)坐标计算E-S →C : P-S →L : 180÷π→M : (B-A)÷2÷C →N ↙0→F : 0→G : 0→Z:For 0→K To 3:(计算X,Y 坐标值)F+LZ[2K+1]cos(Q+MALZ[2K+2]+MN(LZ[2K+2])2)→F:(计算X,Y 坐标值)G+LZ[2K+1]sin(Q+MALZ[2K+2]+MN(LZ[2K+2])2)→G:(计算X,Y 坐标值)Next :W+F →F : Y+G →G:(计算X,Y 坐标值)Q+MAL+MNL 2→Z:(计算切线方位角)Z<0=>Z+360→Z : Z>360=>Z-360→Z ↙子程序2(RAMP-XS)显示 Cls :If O =1 :Then ↙“X=” :Locate4,1,R: “Y=”: Locate4,2,T : Fix4 : “A=” : Locate4,3,J 。
FX5800计算器公路全线坐标正、反算计算程序
5800计算器公路全线坐标正、反算计算程序FX5800全线贯通万能正、反算程序(一体化、超好用、短小、易懂)FX5800计算器的积分程序(正反算、全线贯通、新线路)终极版ZHUCHENGXU主程序"1.ZS,2.FS" ?→Q←┘输入1正算,输入2反算“NEW=0,OLD≠0”?Z←┘IfZ=0:Then“X0=”?A:“Y0=”?B:“C0=”?C:“1/R0=”?D:“1/RI=”?E:“SP=”?F:“EP=”?G:Ifend:Q=2=>Goto 2←┘Lbl1 :“KM=,<0 Stop”?H:H<0=>Stop:“PJ=”?O:“PY=”?L←┘LblZ:Z=1=> Prog“01”:Z=2=> Prog“02”←┘选择数据库文件,可增加H- F→X:0.5(E-D)÷(G-F)→N←┘C+(XD+NX2)*180÷π→P:P<0=>P+360→P:P>360=>P-360→P←┘-A+∫(cos(C+(XD+NX2)*180÷π),0,X)+Lcos(P+O)→U←┘B+∫(sin(C+(XD+NX2)*180÷π),0,X)+Lsin(P+O)→V←┘Q=2=>Goto4:Cls:Fix 3←┘"Xn=":Locate4,1,U:"Yn=": Locate5,2,V:“FWJ=”:PDMS◢Norm 2:Cls:Goto1←┘Lbl2:“XD=,<0,STOP”?R:R<0=>Stop:“YD=”?S←┘“KMDG=”?H :90→O:0→L:GotoZ←┘(H线路范围内的任意桩号)Lbl4:Pol(R-U,S-V):J<0 => J+360→J←┘Whileabs(Icos(J-P))≤0.001:P-J>180=> J+360→J: P-J<-180=> P+360→P:If P-J>0:then -I→L:else I→L :Ifend:Goto3: Whileend:H+Icos(J-P)→H:GotoZ←┘Lbl3:Cls:Fix 3←┘“KM=”: Locate4,1,H:“PY=”: Locate4,2,L◢Norm 2:Cls:Goto2←┘01(数据库子程序)If H<=第一曲线终点桩号:then第一曲线起点X→A:第一曲线起点Y→B:第一曲线起点方位角→C:起点曲率→D:终点曲率→E:起点桩号→F:终点桩号→G:return:ifend ……………程序说明:1、该程序可以计算任意线形(直线、圆曲线、缓和曲线、不完整曲线)任意桩号的坐标(正算,输入1),也可根据坐标计算该点到线路的距离及垂足桩号(反算,输入2);2、(NEW=0,OLD≠0)?如果要计算的点为数据库线路中的点,则输入数据库编号(以整数1、2、3…代替输入);如果在数据库中没有要计算线路的数据,则输入曲线要素X0:曲线起点X坐标;Y0:曲线起点Y坐标;C0:曲线起点方位角;R0-1、 RI-1:曲线起点、终点曲率,直线为0,曲线左偏输入负值,右偏输入正值;SP、 EP:曲线起点桩号,终点桩号;KM:待求点桩号;PJ:正斜交的设定;PY:偏中距离,线路上的点输入0,右偏输入+值,左偏输入-值;3、正算显示坐标及切线方位角;反算输入线路的任意桩号(此桩号越接近真实值计算速度越快)、待求点坐标,显示待求点桩号及偏中距离;4、正算子程序为积分公式编写而成;反算子程序为角度趋近的方法编写,计算速度有点慢。
曲线任意中边桩坐标正反算程序
曲线任意里程中边桩坐标正反算(CASIO fx-5800P计算器)程序02.一、程序功能03. 本程序由一个主程序(TYQXJS)和三个子程(正算子程序(SUB1)、反算子程序(SUB2),数据库子程序(DAT03))构成,可以根据曲线段—直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行夹角为90°的正反算。
04.程序改进:1、增加桩号控制语句,当计算桩号超出本线元自动从数据库读取线元数据,或者提示手工输入。
05. 2、手工输入下一线元数据时,程序将上一线元终点桩号、坐标、方位角自动代入下一线元作为线元起点数据进行计算。
06. 特别申明:(1). 适用于弧长小于2倍半径的各种线元坐标正反算,精度优于1mm;07. (2). 本程序采用yshf老师4800P程序TYQXJS中核心算法,在此表示感谢,转载请注明!08. (3).程序还有不足之处,(如:坐标反算不能全线贯通,只能算本线元内,超出本线元之后需重新读取数据库,然后重新输入反算点坐标),请高手指点!09.10.二、程序清单:11.TYQXJS (曲线坐标计算主程序)12.“1.SJK,2.SHURU”?N:If N=1:Then Goto 1:Else Goto 2:IfEnd13.Lbl1:“Z”?S:Prog “DAT03”: Goto 314.Lbl2:“X0”?U:“Y0”?V:“Z0”?O:“F0”?G:“LS”?H:“R0”?P:“RN”?R:?Q:(P-R)÷(2HPR)→D:180÷兀→E15.Lbl 3:“1.ZS,2.FS”?C: If C=1:Then Goto 4:Else Goto 5:IfEnd16.Lbl 4:“Z”?S17.If S<O Or S>O+H:Then If N=1:Then Prog“DA T03”:Goto 4:Else Goto 6:IfEnd:IfEnd18.“W:Z-,Y+”?Z19.Abs(S-O)→W20.Prog“SUB1”21.“FWJ=”:F-90◢DMS◢22.“X=”:X◢23.“Y=”:Y◢24.Goto 3(我修改的,可以反复计算正反算)25.Lbl 5:?X:?Y:X→I:Y→J: Prog“SUB2”26.If W<0 Or W>H:Then If N=1:Then O+W→S:Prog“DAT03”:Goto 5:Else Goto 6:IfEnd:IfEnd27.“Z=”: O+W→S◢28.“W=”:Z◢Goto 3 (我修改的,可以反复计算正反算)29.Lbl6:If S<O Or W<0:Then“OUT-OF-RANGE”◢Goto2:IfEnd30.H→W:0→Z:Prog“SUB1”:X→U:Y→V:F-90→G:O+H→O:“LS”?H:“R0”?P:“RN”?R:?Q:(P-R)÷(2HPR)→D:180÷兀→E31.If C=1:Then Goto 4:Else Goto 5:IfEnd32.33.SUB1 (正算子程序)34.0.1739274226→A:0.3260725774→B:0.0694318442→K:0.3300094782→L:1-L→F:1-K→M35.U+W(Acos(G+QEKW(1/P+KWD))+Bcos(G+QELW(1/P+LWD))+Bcos(G+QEFW(1/P+FWD))+Acos(G+QEMW(1/ P+MWD)))→X36.V+W(Asin(G+QEKW(1/P+KWD))+Bsin(G+QELW(1/P+LWD))+Bsin(G+QEFW(1/P+FWD))+Asin(G+QEMW(1/P +MWD)))→Y37.G+QEW(1/P +WD)+90→F38.X+ZcosF→X39.Y+ZsinF→Y40.Return41.42.SUB2 (反算子程序)43.G-90→T:Abs((Y-V)cosT-(X-U)sinT)→W:0→Z44.Lbl 0:Prog "SUB1"45.T+QEW(C+WD)→L:(J-Y)cosL-(I-X)sinL→Z:If AbsZ<1×10-4:Then Goto 1:Else W+Z→W:Goto 0:IfEnd46.Lbl 1:0→Z:Prog "SUB1":(J-Y)÷sinF→Z47.Return48.说明:1、×10-4:×10就是最下面一排键“.”键右边的一个键。
(整理)公路匝道点位坐标计算.
匝道是组成高等及公路立交的基本单元,其形式千变万化,就线形而言,也是由直线段、回旋曲线段、圆曲线段组成。
但是,组成立交的匝道涉及线形的曲率变化特点,利用复化辛普森公式导证了计算公路匝道点位坐标的通用公式。
并利用卡西欧FX-4500P计算器编程计算公路匝道点位坐标。
二、公路匝道点位坐标计算1. 公路匝道中线形式公路匝道中线是由直线—回旋曲线—圆曲线(R1)—回旋曲线—圆曲线(R2)—回旋曲线—直线的顺序组成的,其中R1¹R2。
2. 回旋曲线上点位坐标方位角的计算如图1,设回旋曲线起点A的曲率为r A,其里程为DK A;回旋曲线终点B的曲率为,其里程为DK B,Ax¢y¢为以A为坐标原点,以A点切线为x¢轴的局部坐标系;AXY为线路坐标系。
由此回旋曲线上各点曲率半径为R i和该点离曲线起点的距离ﺎi成反比,故此任意点的曲率为(=R0为常数)(1)由式(1)可知,回旋曲线任意点的曲率按线性变化,由此回旋曲线上里程为DK i点的曲率为(2)当曲线右偏时,取正;当曲线左偏时取负。
在图1中有(3)将式(2)代入式(3)得(4)若已知回旋曲线起点A在线路坐标系下切线坐标方位角αA,则里程为Dk i点切线坐标方位角为(5)将式(4)代入式(5)得(6)对于式(6),当,时,,则a i=a A,式(6)变成计算直线段上任意点切线坐标方位角计算公式;当,时,,,则式(6)代表圆曲线上任意点切线坐标方位角计算公式。
可见,若已知曲线段起点和终点的曲率及起点的切线坐标方位角,式(6)便能计算任意线型点位切线坐标方位角。
3、回旋曲线点位坐标计算由图1可得回旋曲线上点位在坐标系下坐标计算公式:(7)(8)设回旋曲线起点A在线路坐标系下的坐标为将式(6)替代式(8)中的,便得回旋曲线上任意点在线路坐标系下的坐标:(9)对于式(9)的解算,由于后半部分是定积分,我们引入复化辛普森公式对其进行解算。
fx5800p全线坐标正反算带高程计算程序线元法
曲线任意里程中边桩坐标正反算(CASIO fx-5800P计算器)程序一、程序功能及原理1.功能说明:本程序由一个主程序(TYQXJS)和五个子程——正算子程序(SUB-ZS)、反算子程序(SUB-FS)等构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。
本修改版程序既可实现正算全线贯通,亦可实现反算全线贯通。
本程序在CASIO fx-5800P计算器运行。
2.计算原理:利用Gauss-Legendre 5点通用公式正算线路中边桩坐标、线外测点至曲线元起点和终点的垂距的符号是否相异(即Dca×Dcb<0=>该测点在其线元内)进行判断并利用该线元要素反算中桩里程、支距,最后计算出放样数据。
二、源程序1.主程序(TYQXJS)(A)Deg:fix 3119→DimZ“INPUT(0) Or DATA(Else)”?ILbl 0:“1.SZ=>XY,2.XY=>SZ,3.TF=>CK,4.SD=>FY,5.TW=>FY”?NIf N=1 Or N=5:Then Goto 1Else If N=2 Or N=3 Or N=4:Then Goto 2Else Goto 3IfEnd:IfEndLbl 1:“K(m)=”?SIf S<0:Then Goto 0:IfEnd“JL(m)=”?ZIf Z≠0:Then “ANGLE→R(Deg)=”?M:IfEndIf I=0:Then Prog “DAT1”:Else Prog “DAT2”:IfEndS-O→W:If W<0:Then Goto 0:Else If W>H:Then Goto 0:IfEnd:IfEndProg “SUB-ZS”:Prog “SUB-GC”If Z<0:Then“XL(m)=”:X◢“YL(m)=”:Y◢ If N=5:Then Prog “SUB-TW”:IfEndElse If Z>0:Then “XR(m)=”:X◢“YR(m)=”:Y◢If N=5:Then Prog “SUB-TW”:IfEndElse “X(m)=”:X◢“Y(m)=”:Y◢“Hs(m)=”:L◢“FWJ=”: F►DMS◢ IfEnd:IfEndLbl 2:“X(m)=”?X:If X<0:Then Goto 0:IfEnd“Y(m)=”?YIf N=3 Or N=4:Then “H(m)=”?→Z[2]:IfEndX→Z[4]:Y→Z[5]:90→MIf I=0:Then Prog “DAT1”G+QEH(C+HD)→F:1→J:U→Z[8J]:V→Z[8J+1]G-M→A:F-M→B:Prog “SUB-ZX1”:Goto BG+M→A:F+M→B:Prog “SUB-ZX1”:Goto B:IfEnd0→J:Lbl A: Isz JZ[8J+3]-M→A:Z[8(J+1)+3]-M→B:Prog “SUB-ZX1”If Z[6]Z[7]<0:Then J→J:Prog“DAT1” :Goto B:IfEndZ[8J+3]+M→A:Z[8(J+1)+3]+M→B:Prog “SUB-ZX1”If Z[6]Z[7]<0:Then J→J:Prog “DAT1” :Goto B:Else Goto A:IfEndLbl B:Prog“SUB-FS”O+W→S:Prog “SUB-GC”“K(m)=”:S◢“Hs(m)=”:L◢“JL(m)=”:Z◢If N=3:Then Prog “WIDE”:IfEndIf N=4:Then Prog “SDFY”:IfEndGoto 2Lbl 3:“TYQXJS→END”2. 正算子程序(SUB-ZS)(A3)0.1184634425→A: 0.2393143352→B:0.2844444444→Z[1]:0.0469100770→K:0.2307653449→L:0.5→Z[3]U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Z[1]cos(G+QEZ[3]W(C+Z[3]WD))+Bcos(G+QE(1-L)W(C+( 1-L)WD))+Acos(G+QE(1-K)W(C+(1-K)WD)))→XV+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Z[1]sin(G+QEZ[3]W(C+Z[3]WD))+Bsin(G+QE(1-L)W(C+(1-L)WD))+Asin(G+QE(1-K)W(C+(1-K)WD)))→YG+QEW(C+WD)+M→FX+Zcos(F)→X:Y+Zsin(F)→YF-M→F:If F<0:Then F+360→F:IfEnd3. 反算子程序(SUB-FS)G-M→T:Abs((Y-V)cos(T)-(X-U)sin(T))→W:0→ZLbl C:Prog “SUB-ZS”T+QEW(C+WD)→L:(Z[5]-Y)cos(L)-(Z[4]-X)sin(L)→ZIf Abs(Z)<10-6:Then Goto D:Else W+Z→W:Goto C:IfEndLbl D:0→Z:Prog “SUB-ZS”:(Z[5]-Y)÷cos(F)→Z:Return4.高程计算子程序(SUB-GC)(A4)Prog “DAT3”0.5RAbs(0.01(E-D))→TIf E>D:Then 1→C:Else -1→C:IfEndIf S<A:Then -0.01D→W:Else 0.01E→W:IfEndAbs(A-S)→LIf L>T:Then B+WL→L:Else B+WL+C(T-L)2÷2÷R→L:IfEndReturn5. 垂距计算子程序(SUB-ZX1)(Z[5]-Z[8J+1])cos(A)-(Z[4]-Z[8J])sin(A)→Z[6](Z[5]-Z[8(J+1)+1])cos(B)-(Z[4]-Z[8(J+1)])sin(B)→Z[7]Return6.曲线元要素数据库:DAT1(两条线路,可扩充为多条线路)(A1)If I=0:Then Goto E: Else If I=2:Then Goto F:IfEnd:IfEndJ=1=>***→Z[8]:***→Z[9]:***→Z[10]:***→Z[11]:***→Z[12]:***→Z[13]:***→Z[14]:*** →Z[15]:IfEndJ=2=>***→Z[16]:***→Z[17]:***→Z[18]:***→Z[19]:***→Z[20]:***→Z[21]:***→Z[22]:***→Z[23]:IfEndJ=3=>***→Z[24]***→Z[25]:***→Z[26]:***→Z[27]:***→Z[28]:***→Z[29]:***→Z[30]:***→[31]:IfEnd………………………………………………..Goto HLbl F: J=1=>***→Z[8]:***→Z[9]:***→Z[10]:***→Z[11]:***→Z[12]:***→Z[13]:***→Z[14]:*** →Z[15]:IfEndJ=2=>***→Z[16]:***→Z[17]:***→Z[18]:***→Z[19]:***→Z[20]:***→Z[21]:***→Z[22]:***→Z[23]:IfEndJ=3=>***→Z[24]***→Z[25]:***→Z[26]:***→Z[27]:***→Z[28]:***→Z[29]:***→Z[30]:***→[31]:IfEnd(注:如有多个曲线元要素继续添加入数据库DAT1中)Goto GLbl E:“X0=”?U:“Y0=”?V:“S0=”?O:“F0=”?G:“LS=”?H:“R0=”?P:“RN=”?R:“Q=”?Q Lbl G:1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:Return7.隧道放样子程序:SDFY5.5→A:8.5→B:L+1.5→CIf I=1:Then -1→K:Else 1→K:IfEnd 给左右隧道符号赋值1.25K→F:4.25K→L:7.25K→K 给各圆心距路线的偏距赋值Z[2]-C→D 计算测点至圆心的高差D,If D>A:Then Goto 1:Else If D<0:Then Goto 2:IfEnd:IfEndZ-L→E:Abs(E)→E:√(D2+E2)→W:W-A→T: 计算测点至圆心的平距E,实测半径W“R(m)=”:W◢“DR(m)=”:T◢If E≤A:Then D-√(A2-E2)→C:E-√(A2-D2)→L 计算测点水平偏移量L、垂直偏移量C“Dh(m)=”:C◢显示测点垂直偏移量C“DL(m)=”:L◢显示测点水平偏移量LElse E-√(A2-D2)→L“DL(m)=”:L◢IfEnd:ReturnLbl 1Z-L→E:Abs(E)→E:√(D2+E2)→W:W-A→T: 计算测点至圆心的平距E,实测半径W“R(m)=”:W◢“DR(m)=”:T◢If E≤A:Then D-√(A2-E2)→C“Dh(m)=”:C◢IfEnd:ReturnLbl 2:Abs(D)→D:Abs(Z)→Z:Abs(K)→K:Abs(F)→FIf Z>K:Then Z-F→E:Else Z+K→E:IfEnd√(D2+E2)→W:W-B→T“R(m)=”:W◢“Rc(m)=”:T◢If E≤B:Then D-√(B2-E2)→C:E-√(B2-D2)→L 计算测点水平偏移量L、垂直偏移量C “Dh(m)=”:C◢显示测点垂直偏移量C“DL(m)=”:L◢显示测点水平偏移量LElse E-√(B2-D2)→L“DL(m)=”:L◢显示测点水平偏移量LIfEnd:Return8.曲线元要素判断数据库:DAT2(两条线路,可扩充为多条线路)(A2)If I=2:Then Goto A:IfEndIf S<第一线元终点里程:Then 1→J:Prog “DAT1”:ReturnElse If S<第二线元终点里程:Then 2→J:Prog “DAT1”:ReturnElse If S<第三线元终点里程:Then 3→J:Prog “DAT1”:ReturnElse If S<第四线元终点里程:Then 4→J:Prog “DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndIf S≥第四线元起点里程And S<第五线元终点里程:Then 5→J:Prog “DAT1”:Return .................................Else If S<第n线元里程:Then n→J:Prog “DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndLbl AIf S<第一线元终点里程:Then 1→J:Prog “DAT1”:ReturnElse If S<第二线元终点里程:Then 2→J:Prog “DAT1”:ReturnElse If S<第三线元终点里程:Then 3→J:Prog “DAT1”:ReturnElse If S<第四线元终点里程:Then 4→J:Prog “DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndIf S≥第四线元起点里程And S<第五线元终点里程:Then 5→J:Prog “DAT1”:Return Else If S<第n线元里程:Then n→J:Prog “DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEnd .................................9.高程数据库子程序:DAT3(两条线路,可扩充为多条线路)If I=0:Then Goto A:Else If I=2:Then Goto B:IfEnd:IfEndIf S≤46500:Then 46150→A:361.26→B:40000→R:-0.3→D:-1.2→E:ReturnElse If S≤47200:Then 46800→A:353.46→B:20000→R:-1.2→D:1→E:ReturnElse If S≤48400:Then 47500→A:360.46→B:20000→R:1→D:-1.6→E:ReturnElse If S≤49600:Then 48700→A:341.26→B:10000→R:-1.6→D:2.45→E:Return IfEnd:IfEnd:IfEnd:IfEndIf S>49600 And S≤50300:Then 49840→A:369.19→B:100000→R:2.45→D:2.8→E:Return Else If I=2:Then 49800→A:368.21→B:150000→R:2.45→D:2.7→E:ReturnIfEnd:IfEndLbl A:“C PEG(m)=”?→A“C H(m)=”?→B“R(m)=”?→R“I1=”?→D“I2=”?→EReturnLbl B49800→A:368.21→B:150000→K:2.45→D:2.7→E:Return10.填方路基宽度检查子程序(WIDE)“WIDTH CHECK”◢“H→MID(m)=”?→A 起坡点与中桩高差常数“DIST→MID(m)=”?→B 起坡点与中桩距离常数“i=”?→C 路基填筑坡度CAbs(Z[2]-L+A)→DAbs(Z)-B-D→E“DL(m)=”:E◢显示实有宽度与应有宽度之差值Return11.坡口坡脚线坐标计算子程序:SUB-TW“TIANWA LINE”◢“DIST→MID(m)=”?A 起坡点与中桩距离常数“H→MID(m)=”?B 起坡点与中桩高差常数“T(1) Or W(Else)=”?C 填方边坡为1,其它为挖方边坡“i=”?E 填方或挖方边坡坡度Abs(Z)-A→D: DE→KIf C=1:Then L-B-K→W:Else L+B+K→W:IfEnd“JS H(m)=”:W◢计算出应有高程“SC H(m)=”?→D 输入实测高程D-W→T“GC(m)=”:T◢显示实测高程与计算高程的差异Return三、使用说明1、规定(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、程序清单
立交匝道中边桩坐标放样正反算程序包括一个主程序和三个子程序(不包含数据库子程序)。
1.主程序:RAMP
.
.
2.子程序1:RAMP-ZBJS
功能:使用Gauss-Legendre积分公式(四结点)计算匝道坐标。
.
.
3.子程序2:RAMP-XS
功能:显示计算结果。
.
特别说明:在程序第2行,Locate 4, 3, J后面有一个度的符号(可按“度分秒”的那个按键输入),注意不要漏了。
.
4.子程序3:RAMP-DATA
功能:调用相关匝道的数据库子程序。
.
.
三、程序变量清单
立交匝道中边桩坐标放样正反算程序变量清单见下表。
.
.
四、程序运行流程
RAMP程序运行流程示意图如下:
.
.
.
1.互通匝道数据库子程序格式说明
每条互通匝道建立一个数据库子程序,子程序名称格式建议为:
RAMP-DAT1-1
RAMP-DAT1-2
RAMP-DAT1-3
……
本来,笔者为了不建立太多的数据库子程序,曾将尝试将一条互通所有匝道的数据全部写在一个子程序RAMP-DATA1中(参照路线计算ROAD-2程序采用的数据库子程序的办法),后来发现:一是数据太过庞大,查找和修改数据相当麻烦(按上、下键按得手指发酸),二来逻辑判断语句太多,影响计算速度,因此舍弃。
每一段线元写成一行数据,格式如下:
2.立交匝道参数辅助计算EXCEL程序的使用说明
前面介绍了线元的数据格式,这里小结一下,每条线元需要确定以下数据:
(1)线元起点的X/Y坐标;
(2)线元起点的切线方位角;
(3)线元起、终点的曲率(半径的倒数,左偏为负);
(4)线元起、终点的桩号。
以上参数,要数第(3)种参数最难确定,因为在设计图表中没有直接标注,需要根据其它相关参数进行计算确定。
除第(3)种参数外,其它三种参数的确定就比较简单了,因为他们基本可以在匝道的设计图表中直接获取。
3.互通匝道数据库子程序的编写
为说明清晰起见,笔者将每条匝道的每个线元都一一进行编号,比如a匝道的第一条线元编为“a-1”,读者可结合立交匝道设计图表进行判读。
本示例项目的匝道数据库子程序见下表。
.
.
.
七、程序使用示例
1.坐标正算示例
计算任务:假设在导线点(2807544.340,475613.014)上架设全站仪,试计算MN 互通式立交c匝道以下点位的X/Y坐标及极坐标放样数据:
(1)K0+315.3中桩,以及该桩左侧3.5米、右侧5米的边桩;
(2)K0+340中桩。
使用立交匝道中边桩坐标放样正反算程序RAMP的操作流程见下表。
2.坐标反算示例
计算任务:根据上面计算的c匝道K0+315.3中桩坐标,以及该桩左侧3.5米、右侧5米的边桩坐标计算结果,反算对应的桩号及距中距离,并进行结果的验证。
使用立交匝道中边桩坐标放样正反算程序RAMP的操作流程见下表。
3.构造物坐标计算示例
计算任务:如图所示,MN互通式立交b匝道BK0+384处有一涵洞,与路线斜交,计算涵洞洞口(中轴线)坐标,若全站仪测站坐标为(2807770.688,475422.635),计算其极坐标放样数据。
使用立交匝道中边桩坐标放样正反算程序RAMP的操作流程见下表。
五、立交匝道计算示例项目基本资料基本资料同《CASIO fx-5800P计算与道路坐标放样计算》第6章MN互通式立交。
这里摘取部分关键图表资料如下:。