曲线任意里程中边桩坐标正反算(CASIO fx-4850P计算器)程序(修改版)

曲线任意里程中边桩坐标正反算(CASIO&nbspfx-4850P计算器)程序(修改版)

一、程序功能及原理
1.功能说明:本程序由一个主程序(TYQXjs)和两个子程——正算子程序(SUB1)、反算子程序(SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲线任意里程中边桩坐标进行正反算。本程序也可以在CASIO&nbspfx-4500P计算器及&nbspCASIO&nbspfx-4850P计算器上运行。
2.计算原理:利用Gauss-Legendre&nbsp5点通用公式计算线路中边桩坐标并计算放样数据。
二、源程序
1.主程序(TYQXjs)
Defm&nbsp2:"1.SZ&nbsp=>&nbspXY""2.XY&nbsp=>&nbspSZ":N:Prog”DAT1”:U"X0":V"Y0":O"S0":G"F0":H"LS":P"R0":R"RN":Q:C=1÷P:D=(P-R)÷(2HPR):E=180÷π:N=1=>Goto&nbsp1:≠>Goto&nbsp2Δ←
Lbl&nbsp1:{SZT}:SZ:T”ANG”:W=Abs(S-O):Prog&nbsp"SUB1""XS=":X=X◢
"YS=":Y=Y◢
Goto&nbsp3←┘
Lbl&nbsp2:{XY}:XY:I=X:J=Y:Prog&nbsp"SUB2""S=":S=O+W◢
"Z=":Z=Z◢
Goto&nbsp2
Lbl&nbsp3:J=0:I=Pol(X-Z[1],Y-Z[2]):F=J:F<0=>F=F+360:≠>F>360=>F=F-36ΔΔ&nbsp&nbsp”DIST=”:&nbsp&nbspI◢”FW=”:F→DMS◢&nbspGoto&nbsp1

2.&nbsp正算子程序(SUB1)
A=0.1184634425:B=0.2393143352:N=0.2844444444:K=0.0469100770:L=0.2307653449:M=0.5:F=1-L:M=1-K:X=U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Ncos(G+QEMW(C+MWD))+Bcos(G+QE(1-L)W(C+(1-L)WD))+Acos(G+QE(1-K)W(C+(1-K)WD))):&nbspY=V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Nsin(G+QEMW(C+MWD))+Bsin&nbsp(G+QE(1-L)W(C+(1-L)WD))+Asin&nbsp(G+QE(1-K)W(C+(1-K)WD))):F=G+QEW(C+WD)+T:X=X+ZcosF:Y=Y+ZsinF

3.&nbsp反算子程序(SUB2)
T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl&nbsp0:Prog&nbsp"SUB1":L=T+QEW(C+
WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<1E-6=>Goto1:≠>W=W+Z:Goto&nbsp0Δ←┘
Lbl&nbsp1:Z=0:Prog&nbsp"SUB1":Z=(J-Y)÷sinF

4.曲线元要素数据库:DAT1
J=1=>U=xxxx.xxx:V=xxxx.xxx:O=xxxx.xxx:G=xxxx.xxx:H=xxxx.xxx:P=xxxx.xxx:R=xxxx.xxx:Q=xxΔJ=2=>U=xxxx.xxx:V=xxxx.xxx:O=xxxx.xxx:G=xxxx.xxx:H=xxxx.xxx:P=xxxx.xxx:R=xxxx.xxx:Q=xxΔ……….J=n=>U……….&nbspΔ(注:如有多个曲线元要素继续添加入数据库DAT1中)
三、使用说明
1、规定
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp(1)&nbsp以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,
Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp(2)&nbsp当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右
侧时,Z取正值。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp(3)&nbsp当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp(4)&nbsp当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆
弧的半径。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp(5)&nbsp当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45
次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半
径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp(6)&nbsp当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等
于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
(7)曲线元要素数据库(DAT1)可根据线型不同分为各个线元段输入到DAT1中,即分为直线段、缓和曲线、圆曲线等。

2、输入与显示说明
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp输入部分:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp1.&nbspSZ&nbsp=>&nbspXY
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp2.&nbspXY&nbsp=&nbsp>&nbspSZ&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbspN&nbsp?&nbsp&nbsp选择计算方式,输入1表示进行由里程、边距计算坐标&nbsp;输入2表示由坐标反算
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp里程和边距。
&nbsp&nbsp&nbsp&nbsp&nbspX0&nbsp?线元起点的X坐标&nbsp
&nbsp&nbsp&nbsp&nbsp&nbspY0&nbsp?线元起点的Y坐标&nbsp
&nbsp&nbsp&nbsp&nbsp&nbspS0&nbsp?线元起点里程
&nbsp&nbsp&nbsp&nbsp&nbspF0&nbsp?线元起点切线方位角
&nbsp&nbsp&nbsp&nbsp&nbspLS&nbsp?线元长度
&nbsp&nbsp&nbsp&nbsp&nbspR0&nbsp?线元起点曲率半径
&nbsp&nbsp&nbsp&nbsp&nbspRN&nbsp?线元止点曲率半径
&nbsp&nbsp&nbsp&nbsp&nbspQ&nbsp?&nbsp&nbsp线&nbsp元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS&nbsp?&nbsp正算时所求点的里程
&nbsp&nbsp&nbsp&nbsp&nbsp&nbspZ&nbsp?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)
ANG?正算边桩时左右边桩连线与线路中线的右交角
J?曲线元数据库曲线段判断系数(J=1、2…..n)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX&nbsp?反算时所求点的X坐标
&nbsp&nbsp&nbsp&nbsp&nbsp&nbspY&nbsp?反算时所求点的Y坐标
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp显示部分:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspXS=×××&nbsp&nbsp&nbsp&nbsp正算时,计算得出的所求点的X坐标
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspYS=×××&nbsp&nbsp&nbsp&nbsp正算时,计算得出的所求点的Y坐标
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=×××&nbsp&nbsp&nbsp&nbsp反算时,计算得出的所求点的里程
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspZ=×××&nbsp&nbsp&nbsp&nbsp反算时,计算得出的所求点的边距

四、算例
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组
成,各段线元的要素(起点里程S0、起点坐标X0&nbspY0、起点切线方位角F0、线元长度
LS、起点曲率半径R0、止点曲率半径RN、线&nbsp元左右偏标志Q)如下:
S0&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX0&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspY0&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspF0&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspLS&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspR0&nbsp&nbsp&nbsp&nbsp&nbspRN&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspQ
500.000&nbsp&nbsp&nbsp&nbsp19942.837&nbsp&nbsp&nbsp&nbsp28343.561&nbsp&nbsp&nbsp&nbsp&nbsp125&nbsp16&nbsp31.00&nbsp&nbsp&nbsp&nbsp269.256&nbsp&nbsp&nbsp&nbsp&nbsp1E45&nbsp&nbsp&nbsp1E45&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0
769.256&nbsp&nbsp&nbsp&nbsp19787.340&nbsp&nbsp&nbsp&nbsp28563.378&nbsp&nbsp&nbsp&nbsp&nbsp125&nbsp16&nbsp31.00&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp37.492&nbsp&nbsp&nbsp&nbsp&nbsp1E45&nbsp&nbsp&nbsp221.75&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp-1
806.748&nbsp&nbsp&nbsp&nbsp19766.566&nbsp&nbsp&nbsp&nbsp28594.574&nbsp&nbsp&nbsp&nbsp&nbsp120&nbsp25&nbsp54.07&nbsp&nbsp&nbsp&nbsp&nbsp112.779&nbsp&nbsp&nbsp&nbsp221.75&nbsp&nbsp221.75&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp-1
919.527&nbsp&nbsp&nbsp&nbsp19736.072&nbsp&nbsp&nbsp&nbsp28701.893&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp91&nbsp17&nbsp30.63&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp80.285&nbsp&nbsp&nbsp&nbsp&nbsp221.75&nbsp&nbsp9579.228&nbsp&nbsp&nbsp&nbsp-1
999.812&nbsp&nbsp&nbsp&nbsp19744.038&nbsp&nbsp&nbsp&nbsp28781.659&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp80&nbsp40&nbsp50.00&nbsp&nbsp&nbsp&nbsp&nbsp100.000&nbsp&nbsp&nbsp&nbsp&nbsp1E45&nbsp&nbsp&nbsp&nbsp1E45&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp1、正算
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp(注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元
要素)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=700&nbsp&nbspZ=-5&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19831.41785&nbsp&nbsp&nbspYS=28509.72590
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=700&nbsp&nbspZ=0&nbsp&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19827.33592&nbsp&nbsp&nbspYS=28506.83837
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=700&nbsp&nbspZ=&nbsp5&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19823.25398&nbsp&nbsp&nbspYS=28503.95084

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=780&nbsp&nbspZ=-5&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19785.25749&nbsp&nbsp&nbspYS=28575.02270
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=780&nbsp&nbspZ=0&nbsp&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19781.15561&nbsp&nbsp&nbspYS=28572.16358
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=780&nbsp&nbspZ=&nbsp5&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19777.05373&nbsp&nbsp&nbspYS=28569.30446
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=870&nbsp&nbspZ=-5&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19747.53609&nbsp&nbsp&nbspYS=28654.13091
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=870&nbsp&nbspZ=0&nbsp&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19742.68648&nbsp&nbsp&nbspYS=28652.91379
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=870&nbsp&nbspZ=&nbsp5&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19737.83688&nbsp&nbsp&nbspYS=28651.69668
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=940&nbsp&nbspZ=-5.123&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19741.&nbsp59118&nbsp&nbspYS=28722.05802
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=940&nbsp&nbspZ=0&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19736.47687&nbsp&nbsp&nbspYS=28722.35642
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspS=940&nbsp&nbspZ=&nbsp3.009&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspXS=19733.47298&nbsp&nbsp&nbspYS=28722.53168
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp2、&nbsp反算
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19831.418&nbsp&nbsp&nbspY=28509.726&nbsp&nbsp&nbsp计算得&nbsp&nbspS=699.9999974&nbsp&nbspZ=&nbsp-5&nbsp.00018164
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19827.336&nbsp&nbsp&nbspY=28506.838&nbsp&nbsp&nbsp计算得&nbsp&nbspS=699.9996493&nbsp&nbspZ=&nbsp0.000145136
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19823.25398&nbsp&nbsp&nbspY=28503.95084&nbsp&nbsp&nbsp&nbsp计算得&nbsp&nbspS=699.9999985&nbsp&nbspZ=&nbsp5.000003137
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19785.25749&nbsp&nbsp&nbspY=28575.02270&nbsp&nbsp计算得&nbsp&nbspS=780.0000035&nbsp&nbspZ=&nbsp-5&nbsp.000001663
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19781.15561&nbsp&nbsp&nbspY=28572.16358&nbsp&nbsp&nbsp计算得&nbsp&nbspS=780.0000025&nbsp&nbspZ=-&nbsp0.000002979
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19777.05373&nbsp&nbsp&nbspY=28569.30446&nbsp&nbsp&nbsp计算得&nbsp&nbspS=780.0000016&nbsp&nbspZ=&nbsp4.99999578
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
X=19747.536&nbsp&nbsp&nbspY=28654.131&nbsp&nbsp&nbsp计算得&nbsp&nbspS=870.0001137&nbsp&nbspZ=&nbsp-4.99941049
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19742.686&nbsp&nbsp&nbspY=28652.914&nbsp&nbsp&nbsp计算得&nbsp&nbspS=870.0003175&nbsp&nbspZ=-&nbsp0.00041814
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19737.837&nbsp&nbsp&nbspY=28651.697&nbsp&nbsp&nbsp计算得&nbsp&nbspS=870.0002748&nbsp&nbspZ=&nbsp4.999808656

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19741.5912&nbsp&nbsp&nbspY=28722.0580&nbsp&nbsp&nbsp计算得&nbsp&nbspS=939.9999786&nbsp&nbspZ=&nbsp-5.123024937
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19736.4769&nbsp&nbsp&nbspY=28722.3564&nbsp&nbsp&nbsp计算得&nbsp&nbspS=939.9999862&nbsp&nbspZ=-&nbsp0.000027710
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspX=19733.4730&nbsp&nbsp&nbspY=28722.5317&nbsp&nbsp&nbsp计算得&nbsp&nbspS=940.0000238&nbsp&nbspZ=&nbsp3.00898694

发表评论

您的邮箱不会被公开。* 为必填项