竖曲线QXJSCX”↙Lb1 1↙CLs:Fix 3↙“K=”?k◢ (计算点里程输入)If k<67549.755 AND K≥66894.3:Then -0.00052→A : 0→B : 67394.3→S : 67.37→G : 600000→R :Goto 2 : IfEnd↙If k<68708.391 AND K≥67549.755:Then -0.0048→A : -0.00052→B : 68494.3→S :66.8→G : 100000→R :Goto 2 : IfEnd↙If k<本段竖曲线终点里程 AND K≥前一竖曲线终点里程 :Then -0.0048→前坡(大里程向)A : -0.00052→后坡(小里程向)B : 68494.3→竖曲线交点里程S :66.8→交点高程G : 100000→曲率半径R : Goto 2 : IfEnd↙………依次类推,计算原始数据完成输入,坡度换算成小数。Lb1 2↙S-K→L : A-B→W : Abs(RW/2)→T : S-T→C : S+T→D ↙If K≤C : Then G-LB →H : Goto 5 : Else If K≤S : Then Goto3 : Else If K≤D : Then Goto4 : IfEnd : IfEnd : IfEnd↙Lb1 3↙If W>0 : Then G+(C-K)^ 2/2/R-LB→H :Goto 5 : Else If W<0 : Then G-(C-K)^2/2/R-LB→H : Goto 5 : IfEnd : IfEnd↙Lb1 4↙If W>0 : Then G+(K-D) ^2/2/R-LA→H :Goto 5 : Else If W<0 : Then G-(K-D)^2/2/R-LA→H : Goto 5 : IfEnd : IfEnd↙Lb1 5↙“H=”:H◢Goto 1↙线路坐标正反算本程序由4800程序改编而成,网上有5800积分通用公式,但由坐标反算里程及边距时很慢,本程序大大提高了反算速度。1. 主程序(TYQXJS)Lbl 4:\"1.SZ => XY\":\"2.XY=> SZ\":?N:?S:Prog“SUB0”↙1÷P→C: (P-R)÷(2HPR) →D:180÷∏→E:N=1 => Goto1: Goto2:↙Lbl 1:? Z: Abs(S-O) →W:Prog\"SUB1\": \"XS=\":X◢\"YS=\":Y◢F-90→F: “FS=”:F▲DMS◢:Goto4↙Lbl 2:?X:?Y:X→I:Y→J:Prog“SUB2”:O+W→S:“S=”:S◢“Z=”:Z◢Goto4↙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)→Y2. 反算子程序(SUB2)G-90→T: Abs((Y-V)cosT-(X-U)sinT) →W:0→Z:Lbl 0:Prog\"SUB1\":T+QEW(C+WD) →L: (J-Y)cos(L)-(I-X)sin(L)→Z:Abs(Z)<1E-6=>Goto1:W=W+Z:Goto 0Δ←┘Lbl 1:Z=0:Prog\"SUB1\": (J-Y)÷sin(F)→ZSUB0 数据库子程序Goto1↙同时保存多个曲线时的指针Lbl 1:IF S<(线元终点里程):Then→G(线元起点方位角):→O(线元起点里程):→U(线元起点X):→V(线元起点Y):→P(线元起点曲率半径):→R(线元终点曲率半径): →H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd↙Lbl 1:IF S<(线元终点里程):Then→G(线元起点方位角):→O(线元起点里程):→U(线元起点X):→V(线元起点Y):→P(线元起点曲率半径):→R(线元终点曲率半径): →H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd………………………..为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。三、使用说明1、规定(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右侧时,Z取正值。(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。2、输入与显示说明输入部分:1. SZ => XY2. XY = > SZN ? 选择计算方式,输入1表示进行由里程、边距计算坐标;输入2表示由坐标反算里程和边距。S ?正算时所求点的里程,反算时为所求点的近似里程,反算时输入的近似里程不能夸线元,若夸线元的话,需进行第二次反算,并以第一次的结果做为近似里程,否则反算的里程及边距不对, Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)X ?反算时所求点的X坐标Y ?反算时所求点的Y坐标显示部分:XS=××× 正算时,计算得出的所求点的X坐标YS=××× 正算时,计算得出的所求点的Y坐标FS=××× 正算时,所求点对应的中线点的切线方位角S=××× 反算时,计算得出的所求点的里程Z=××× 反算时,计算得出的所求点的边距 。
