公路路线座标正反算(积分公式)通用程序

合集下载

公路坐标计算程序

公路坐标计算程序

公路坐标计算程序(微积分)1、正算子程序(SUB1)A=0.1739274226:B=0.3260725774:K=0.0694318442:L=0.3300094782:F=1-L:M=1-K:X=U+W(Acos(G+57.29577951QKW(1/P+KWD))+Bcos(G+57.29577951QLW(1/P+LWD))+Bcos(G+57.29577951QFW(1/P+FWD))+Acos(G+57.29577951QKW(1/P+KWD))+Bsin(G+57.29577951QLW(1/P+LWD))+Asin(G+57.29 577951QMW(1/P+MWD))):F=G+57.29577951QW(1/P+WD)+90:X=X+ZcosF:Y=Y+ZsinF2、反算子程序(SUB2)T=G-90:W=Abs((Y-V)cosT-(X-U)sinT) :Z=0:LbI0:Prog〝SUB1〞:L=T+57.29577951QW(1/P+WD) :Z=(J-Y)cosL-(I-X)sinL:Abs Z﹤1E-6﹦>G0to1:≠>W=W+Z:G0to0⊿LbI1:Z=0:Prog〝SUB1〞:Z=(J-Y)/SinF3、数据库(SJK)LbI4:〝1.SZ﹦>XY〞:〝2.XY﹦>SZ〞:{NS}:S≤下一线元起点里程﹦>O=本线元起点里程:U=本线元起点X:V=本线元起点Y:G=本线元起算方位角:H=本线元长度:P=起点曲率半径:R=终点曲率半径:Q=0或1、-1:G0to0⊿(第一线元曲线要素)接S≤下一线元起点里程﹦>O=本线元起点里程:U=本线元起点X:V=本线元起点Y:G=本线元起算方位角:H=本线元长度:P=起点曲率半径:R=终点曲率半径:Q=0或1、-1:G0to0⊿(第二线元曲线要素)接S≤下一线元起点里程﹦>O=本线元起点里程:U=本线元起点X:V=本线元起点Y:G=本线元起算方位角:H=本线元长度:P=起点曲率半径:R=终点曲率半径:Q=0或1、-1:G0to0⊿(第三线元曲线要素)……接LbI0:D= (P-R)/(2HPR) :N=1﹦>G0to1:≠>G0to2⊿LbI1:{Z}: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=〞▲⊿G0to4LbI2:{XY}:XY:I=X:J=Y:Prog〝SUB2〞:S〝S〞=O+W▲Z〝Z〞=Z▲G0to4使用说明:1、把所有线元要素依次输入数据库(一缓和曲线P=1E45,R=圆半径,圆曲线R=P=圆曲线半径,二缓和曲线P=R,R=1 E45,直线P=R=1 E45)。

工程测量坐标正反算通用程序(终极篇)

工程测量坐标正反算通用程序(终极篇)

工程测量坐标正反算通用程序(终极篇)第五篇坐标正反算通用程序(终极篇)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),曲线左转多加一负号。

坐标正反算程序(4850)

坐标正反算程序(4850)

坐标正反算程序(4850)正算主程序:ZS1.Prog “SJ”2.Lbl 0: {ZS}3.Z<A=>Rec(sqrt(S2+(Z-Q)2),F+180-tan-1(S÷(Q-Z))):X=N+I:Pause 0:Y=E+J◢4.Goto 0◣第一直线5.Z<B=>L=Z-A:W=F+90GL2÷πRU+90:H=U:O=Z[5]:P=Z[6]:T=F+90G:Goto 1◣第一回旋线6.Z<C=>L=Z-B7.W=F+G((90U+180L)÷πR+270)8.Rec(R-GS,W):X=Z[9]+I: Pause 0:Y=Z[10]+J◢9.Goto 0◣圆曲线10.Z<D=>L=D-Z:W=F+G(K-90L2÷πR V)+90:H=V:O=Z[7]:P=Z[8]:T=F+G(K+90):Goto 1◣第二回旋线11.Lbl 1:X=L-L5÷40R2V2+L9÷3456R4V412.Y=L3÷6RV-L7÷336R3V3+L11÷42240R5V513.Rec(sqrt(X2+Y2),T):X=O+I:Y=P+J14.Rec(S,W): X=X+I: Pause 0:Y=Y+J◢15.Goto 0◣16.Z>D=>Rec(sqrt(S2+(Z-D+Z[4])2),F+G(K+tan-1(S÷(Z-D+Z[4])))):X=N+I: Pause 0:Y=E+I◢17.Goto 0◣第二直线反算主程序:FS1.Prog"SJ"2.H=90U÷πR第一回旋线所对圆心角β013.T=90V÷πR第二回旋线所对圆心角β024.Rec((Z[3] +Z[4]÷cosK)/tanK,F+90G):Z[11]=Z[5]+I:Z[12]=Z[6]+J ZH、HZ点垂线交点坐标5.Z[13]=F+90G+180 ZH点与ZH、HZ点垂线交点连线方位角6.Z[14]=Z[13]+GH HY点与圆心连线方位角7.Z[15]=Z[13]+G(K-H) YH点与圆心连线方位角8.Z[16]=Z[15]+GT HZ点与ZH、HZ点垂线交点连线方位角9.Lbl 0:{XY}10.Pol(X-Z[11],Y-Z[12]):J<0=>J=J+360◣11.GJ<GZ[13]=> Pol(N-X,E-Y):Rec(I,F-J): “Z”:Z=Q-I:Pause 0:“S”:J◢12.Goto 0◣第一直线13.GJ>GZ[16]=> Pol(X-N,Y-E):Rec(I,J-F-GK): “Z”:Z=I-Z[4]+D:Pause 0:“S”:J◢14.Goto 0◣第二直线15.GJ>GZ[13]=>Pol(X-Z[9],Y-Z[10]):J<0=>J=J+360◣16.GJ<GZ[14]=>P=Z[13]:H=U:M=A:T=1:Z[17]=Z[5]:Z[18]=Z[6]:Z[19]=F:Goto 1◣第一缓和曲线17.GJ<GZ[15]=> “Z”:Z=B+RG(J-Z[14]):Pause 0:“S”:S=G(R-I)◢18.Goto 0◣圆曲线19.GJ>GZ[15]=>P=Z[16]:H=V:M=D:T=-1:Z[17]=Z[7]:Z[18]=Z[8]:Z[19]=F+GK+180:Goto 1◣第二缓和曲线20.Lbl 1:Pol(X-Z[11],Y-Z[12]):J<0=>J=J+360:L= Abs(J-P) πR÷180 “L=H×Abs(J-P)÷2÷(90H÷πR)”21.Lbl 2:O=L-L5÷40R2H2+L9÷3456R4H4-L13÷599040R6H622.P=L3÷6RH-L7÷336R3H3+L11÷42240R5H5-L15÷9676800R7H723.Rec(sqrt(O2+P2),Z[19]+TGtan-1(P÷O)):O=Z[17]+I:P=Z[18]+J24.Pol(X-O,Y-P):Rec(I,J-(Z[19]+90TGL2÷πRH)):AbsI>0.001=>L=L+I:Goto 2:≠>“Z”:Z=M+TL: Pause 0: “S”:TJ◢25.Goto 0◣子程序(曲线要素数据):SJ1.Defm 19:M:M=1=>F=*:K“ZJ”=*:G=*:U(Ls1)=*:V(Ls2)=*:R=*:Q=*:N“XJ”=*:E“YJ”=*:Goto 1◣2.M=2=>F=*:K“ZJ”=*:G=*:U(Ls1)=*:V(Ls2)=*:R=*:Q=*:N“XJ”=*:E“YJ”=*:Goto 1◣3.………………4.Lbl 1:Z[1]=U2÷24R-U4÷2688R3+U6÷506880R5Z[1]第一回旋线内移值P15.Z[2]=V2÷24R-V4÷2688R3+V6÷506880R5Z[2]第二回旋线内移值P26.M=(R+Z[2]-(R+Z[1])cosK)÷sinK7.P=(R+Z[1]-(R+Z[2])cosK)÷sinK8.Z[3]= M+U÷2-U3÷240R2Z[3]第一回旋线切线长T19.Z[4]= P+V÷2-V3÷240R2Z[4]第二回旋线切线长T210.L=RKπ÷180+(U+V)÷2曲线长(Ls1+圆+Ls2)11.A=Q-Z[3]:B=A+U:D=A+L:C=D-V ZH,HY,HZ,YH里程桩号12.I=0:J=0:Rec(Z[3],F+180):Z[5]=N+I:Z[6]=E+J ZH点坐标增量计算,ZH点坐标13.Rec(Z[4],F+GK):Z[7]=N+I:Z[8]=E+J HZ点坐标增量计算,HZ点坐标14.Rec(sqrt(M2+(R+Z[1])2),F+G(K+tan-1((R+Z[2])÷P))):Z[9]=N+I:Z[10]=E+J 圆心坐标注:F-起始边方位角K-转角G-线路左转为-,右转为+U-第一回旋线长V-第二回旋线长R-半径Q-交点桩号N,E-交点坐标Z-待求点桩号S-偏距(左偏为-,右偏为+)sqrt为根号。

公路坐标正反算程序

公路坐标正反算程序

RAπ÷180-(B+C) ÷2→Q↙
(R+(Z[6]+Z[7])÷2)÷cos(A÷2)-R→E↙
K-S→Z[1] ↙↙
Z[1]+B→Z[2] ↙↙
Z[2]+Q÷2→Z[3]↙
Z[1]+L-C→Z[4]↙
Z[4]+C→Z[5]↙
子程序2名: JDB
X-Scos(M)→Z[19]:
(Abs(K-O)) →J:Prog"SUB1":
(F-M) →F
Return
2. 反算主程序 GSFS
Lbi 0:?X:?Y:X→Z[2]:Y→Z[3]:
“QDXO”?I:"QDY0"?S:"QDLC"?O:"QDFWJ "?G:"ZDLC"?H:"QDR"?P:"ZDR"?R:”Q(Z=-1 ZX=0 Y=1)” ?Q:
M+90WL2 ÷(BRπ)→Z↙
Goto 5↙
LbI 2 : If P>Z[4]:Then Goto 3 :IfEnd↙
P-Z[1]→L:90(2L-B)÷R÷π→Z[11]↙
Rsin(Z[11])+Z[8]→Z[14]:R(1-cos(Z[11]))+Z[6]→Z[15]↙
M→Z : Goto 5↙
LbI 1 : If P>Z[2]:Then Goto 2 :IfEnd↙
P-Z[1]→L:L→Z[12]:B→Z[13]:Prog"JDC"↙
Z[19]+Z[14]cos(M)-WZ[15]sin(M)+Dcos(Z+H)→F↙

线元法线路坐标正反算程序

线元法线路坐标正反算程序

线元法线路坐标正反算程序经苦心钻研,奋战多日,终于编写出了代码短,速度快,精度高,功能全的线路坐标正反算程序,欢迎试用并提出宝贵意见。

功能简介及特点:1、选用高斯-勒让德公式作计算内核,保证精度,模块化设计,便于扩充功能。

2、线元数据可自动从数据库调用,也可手工输入。

3、可管理多条线路,如里程不在线路或线元范围,将警告里程偏大、偏小。

4、边桩计算设计为导线式递推方式,可用于由一个中桩推出结构物所有角点坐标。

5、反算实现了智能化操作,只需输入线路号(或手工输线元资料)、坐标,不需近似里程,即可自动从起点向后开始试算出里程、位置,如对算出里程、位置表示怀疑,还可以让计算器从终点起再向前试算下一个可能的位置(匝道、回头曲线同一坐标可能会有一个以上结果)。

第三次及以后试算才要求输入近似里程。

6、程序代码规范简洁,便于阅读、理解。

完整程序清单:ZFS %正反算主程序B=.1739274226:C=.5-B:Lbl 1:U"0 ZS 1 FS"=0=>Prog "ZS":≠>U=1=>Prog"FS":≠>Goto 1ZS %正算子程序{K}:Prog"ZZ":I=0:{I}:I"L"≠0=>"Prog"WY":≠>Prog"ZB"FS %反算子程序{KVW}:V"XC"W"YC":Lbl 2:Prog "ZZ":I=V-S:J=W-T:Pol(I,J: J=J-F:K=K+Rec(I,J:AbsI<1m=>Prog"WZ":≠>Goto 2ΔM=0:{M}:M"0 NEXT"=0=>U=U+1:Goto 2:≠>U=1ZZ %高斯法中桩子程序(4节点)Prog"XL":M=K-L:O=(P-R)÷2PQR:D=.0694318442:E=.3300094782:F=1:G=1-E:H=1-D:I=5:Lbl 1:C[I]=A+MrC[I](1÷P+OMC[I]:Dsz I:Goto 1:S=X+M(BcosD+CcosE+CcosG+BcosH:T=Y+M(BsinD+CsinE+CsinG+BsinHWY %外移点计算子程序Lbl 1:J=90:{J}:J=F+J"<":F=J:S=S+Rec(I,J:T=T+J: Prog"ZB":I=0:{I}:I"L"≠0=>Goto 1WZ %位置显示子程序"KJ":K:Pause 1:J◢ZB %坐标显示子程序"XY":S:Pause 1:T◢YC %异常处理子程序U=1=>K=L:U=2ΔU=3=>K=M:U=4ΔU=5=>{K}:U=4ΔK"<K>M=>">>!":Z=1DL %断链处理子程序"DL":K=L:I>0=>K=L+Q-------------------------以上为程序运算部分,以下为数据库部分-------------------------------XL %线路数据库选择子程序Lbl 1:Z=0:N"0 SD"=0=>Prog"0"△N=1=>Prog"1"△N=2=>Prog"2"△...有几条线路仿上行格式输几行Z=1=>{NLXYOPQRK}:Goto 10 %手工输入子程序L"K0"XYAQ"LS"P"R0"R"RN":M=L+Q:Prog"YC"1 %线路一数据库子程序①Lbl B:L=线路起点里程:M=线路终点里程:Prog"YC":Z=1=>Goto EΔ②Q=线元长:P=起点半径:R=终点半径:K≤L+Q=>X=起点X坐标:Y=起点Y坐标:A=起点方位角:Goto EΔL=L+Q:③......④Q=短链长:KProg "DL":Goto BΔL=L+Q:⑤Q=线元长:P=起点半径:R=终点半径:K≤L+Q=>X=起点X坐标:Y=起点Y坐标:A=起点方位角:Goto EΔL=L+Q:⑥......⑦Q=线元长:P=起点半径:R=终点半径:X=起点X坐标:Y=起点Y 坐标:A=起点方位角:Lbl E2 %线路二数据库子程序输入要求和线路一相同。

坐标正反算计算程序

坐标正反算计算程序

坐标正反算计算程序在进行坐标正反算计算之前,需要先了解一些基本概念和公式: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)```注意:在实际使用时,需要根据具体的椭球参数和坐标系定义进行适当修改,以满足实际需求。

卡西欧5800公路坐标正反算程序

卡西欧5800公路坐标正反算程序

目录一、坐标正算基本公式………………………………………………………02二、坐标反算原理 (04)三、高程数据库录入变换 (05)四、计算器程序………………………………………………………07 01、ZBZS(坐标正算)………………………………………………………0702、ZBFS(坐标反算)………………………………………………………0803、GCJF(高程积分) (09)04、PJFY(坡脚放样)………………………………………………………1005、JFCX(积分程序) (11)06、ZBFY(坐标放样)………………………………………………………1107、DT(递推) (12)08、H P(横坡) (13)09、LK(路宽)………………………………………………………1410、SJK1(平面数据库) (14)11、SJK2(纵面数据库)………………………………………………1412、SJK3(左路宽度数据库) (15)13、SJK4(右路宽度数据库) (15)14、SJK5(横坡数据库)......................................................1615、SJK6(下边坡数据库) (16)16、SJK7(左上边坡数据库)………………………………………………1717、SJK8(右上边坡数据库)………………………………………………18五、后记 (19)CASIO 5800计算器公路工程测量程序一、正算所涉及得计算公式 X R i d XαβBd Y d l d βI图表 错误!不能识别的开关参数。

在图1中,A 点为回旋曲线起点,B 点为回旋曲线止点,I 点为所求坐标点。

设: A点得X 坐标为X A ,Y 坐标为Y A ,A点得切线方位角为α,A 点得曲率为ρA,A 点得里程为LA,B 点得曲率为ρB,B点得里程为L B,I 点得曲率为ρI ,I点得里程为LI 。

工程测量坐标正反算通用程序(终极篇)

工程测量坐标正反算通用程序(终极篇)

第五篇坐标正反算通用程序(终极篇)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),曲线左转多加一负号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

公路路线座标正反算
由于现在计算机普及,计算机功能日益强大,宜采用较简单的积分公式,便于计算机处理。

单线元通用积分公式如下
M = (1.0/Re-1.0/Rs)/Ls;
x=∫{cos(Ta + L/Rs + 0.5*M *L*L),0,L};
y=∫{sin(Ta +L/Rs + 0.5*M *L*L),0,L};
a(i)= Ta +L/Rs + 0.5*M *L*L
Rs:缓和曲线起点半径
Re:缓和曲线止点半径
Rs,Re (NE坐标系下,右偏为正,左偏为负)
Ta:缓和曲线起点的真北方位角
Ls:不完整缓和曲线长度。

此公式为缓和曲线在坐标系下任意位置的通用积分公式,能完全适应缓和曲线左偏、右偏、Rs >Re 、Rs <Re等各种情况,不必先凑成完整缓和曲线,降低算法的复杂程度。

虽然此公式是由缓和曲线推导出来,也可和于直线与圆曲线,可降低计算机编程的复杂程度。

Fx-5800计算机程序
QXJS-000 主程序
Lbl 4:“1.SZ=>NE”:“2.NE=>SZ”:?Q:?S:Prog“QXJS-SUB0”↙
Lbl 0:Q=1 => Goto1:Q=2 => Goto2:↙
Lbl 1:?Z:Prog“QXJS-SUB1”:“N=”:N◢“E=”:E◢“F=”:F◢Goto4↙
Lbl 2: “N=”:?B: “E=”:1?C:B→N: C→E:Prog“QXJS-SUB2”: “S=”:S◢“Z=”:Z◢Go
to4↙
QXJS-SUB0 数据库子程序
Goto1↙同时保存多个曲线时的指针
Lbl 1
IF S<***(线元终点里程):Then***→A(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径): ***→R(线元终点曲率半径): ***→L(线元起点至终点长度): Return:IfEnd↙IF S<***:Then***→A:***→O:***→U:***→V:***→P:***→R: ***→L: Return:IfE nd↙
………………………..为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。

QXJS-SUB1 正算子程序
0.5(1÷R-1÷P)÷L→D:S-O→X↙
U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N↙
V+∫(sin(A+(X÷P+DX2)×180÷π,0,X)→E↙
A+(X÷P+ DX2)×180÷π→F↙
N+Zcos(F+90) →N:E+Zsin(F+90) →E
QXJS-SUB2 反算子程序
Lbl 1:0→Z:1→Q:Prog“QXJS-SUB0”: Prog“QXJS-SUB1”↙
Pol(N-B+10^(-46), E-C+10^(-46)):Isin(F-90-J) →W:S+W→S↙
Abs(W)>0.0001 => Goto1↙
Lbl 2: 0→Z:Prog“QXJS-SUB1”:(C-E) ÷sin(F+90) →Z
三、使用说明
1、规定
(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当曲线半径在左时,P、R取负值,当曲线半径在右时,P、R取正值,当曲线半径为无穷大(即直线)时,P、R以10的45次代替。

(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右
侧时,Z取正值。

(3) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆
弧的半径。

(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以1 0的45次方代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
值;与圆曲线相接时,曲率半径等于圆曲线的半径。

止点与直线相接时,曲率半径等
于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

2、输入与显示说明
输入部分:
1. SZ => XY
2. XY = > SZ
注:只用QXJS-000 主程序
Q ? 选择计算方式,输入1表示进行由里程、边距计算坐标;输入2表示由坐标反算里程和边距
S:为待求里程,
Z:为偏距左负,右正
N,E:为待求里程的X,Y的坐标
F: 为待求方位角
输入时QXJS-000 主程序输入完成时退出重新建立文件输入子程序。

相关文档
最新文档