(5800计算器)算方位角、距离Lbl 0: “X0”?M: “Y0”? N: “XN”?X: “YN”? Y:Pol(X-M,Y-N)↙“D=”:I ◢↙J<0=>J+360→J↙“F=”:J*DMS◢Goto0↙――――――――――――――――――――――――――(5800计算器)方位角、距离算坐标X\YLbl 0: “X0”?M: “Y0”? N: “D”?D: “F”? F:Rec (D,F)↙
Lbl 0: “X0”?M: “Y0”? N: “XN”?X: “YN”? Y:Pol(X-M,Y-N)↙
“D=”:I ◢↙
J<0=>J+360→J↙
“F=”:J*DMS◢
Goto0↙
――――――――――――――――――――――――――
(5800计算器)方位角、距离算坐标X\Y
Lbl 0: “X0”?M: “Y0”? N: “D”?D: “F”? F:Rec (D,F)↙
“XN=”:M+I◢
“YN=”:N+J◢
Goto0↙
公路全线高程:
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↙
………
依次类推,计算原始数据完成输入,坡度换算成小数。直线段半径输10^45次方.一般最后输.
Lb1 2↙
S-K→L : A-B→W : Abs(R*W/2)→T : S-T→C : S+T→D ↙
If K≤C : Then G-L*B →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-L*B→H : Goto 5 : Else If W<0 : Then G-(C-K) ^2/2/R-L*B→H : Goto 5 : IfEnd : IfEnd↙
Lb1 4↙
If W>0 : Then G+(K-D) ^2/2/R-L*A→H : Goto 5 : Else If W<0 : Then G-(K-D)^ 2/2/R-L*A→H : Goto 5 : IfEnd : IfEnd↙
Lb1 5↙
H→H↙
“H=”:H◢
Goto 1↙
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↙
………
依次类推,计算原始数据完成输入,坡度换算成小数。直线段半径输10^45次方.一般最后输.
Lb1 2↙
S-K→L : A-B→W : Abs(R*W/2)→T : S-T→C : S+T→D ↙
If K≤C : Then G-L*B →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-L*B→H : Goto 5 : Else If W<0 : Then G-(C-K) ^2/2/R-L*B→H : Goto 5 : IfEnd : IfEnd↙
Lb1 4↙
If W>0 : Then G+(K-D) ^2/2/R-L*A→H : Goto 5 : Else If W<0 : Then G-(K-D)^ 2/2/R-L*A→H : Goto 5 : IfEnd : IfEnd↙
Lb1 5↙
H→H↙
“H=”:H◢
Goto 1↙
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↙
………
依次类推,计算原始数据完成输入,坡度换算成小数。直线段半径输10^45次方.一般最后输.
Lb1 2↙
S-K→L : A-B→W : Abs(R*W/2)→T : S-T→C : S+T→D ↙
If K≤C : Then G-L*B →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-L*B→H : Goto 5 : Else If W<0 : Then G-(C-K) ^2/2/R-L*B→H : Goto 5 : IfEnd : IfEnd↙
Lb1 4↙
If W>0 : Then G+(K-D) ^2/2/R-L*A→H : Goto 5 : Else If W<0 : Then G-(K-D)^ 2/2/R-L*A→H : Goto 5 : IfEnd : IfEnd↙
Lb1 5↙
H→H↙
“H=”:H◢
Goto 1↙
公路坐标正反算
来源: http://bbs2.zhulong.com/forum/detail7753146_1.html
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<0 => F+360→F↙
“F=”:F*DMS◢: Goto4↙
Lbl 2: “N=”:?B: “E=”:?C:B→N: C→E:Prog“QXJS-SUB2”: “S=”:S◢: “Z=”:Z◢: Goto4↙
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:IfEnd↙
………………………..为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。
来源: http://bbs2.zhulong.com/forum/detail7753146_1.html
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
来源: http://bbs2.zhulong.com/forum/detail7753146_1.html
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