自编5800 支距及偏角法正反算程序
该程序使用支距偏角法,正算速度一般,反算速度较辛普森公式反算速度稍快
计算范围从直缓到缓直,如若缓直后为直线则无需输入变量直接继续计算
此程序在正算循环里程超限上占用字节较多,适用公路路基临时输入变量放样
运行只需从主程序进入,请各位高手多多指正
主程序 “ZS FS”
20→Dim Z
“1→NEW,2→OLD”?Z ↙
IF Z=1:Then Goto 1: Else Goto 2 if end↙ 选择输入 选一手动输入曲线要数 选二提取数据库
LbI 1:”JDX”?T:“JDY”?B 输入交点X,Y
“T1”?C:”T2”?D 输入切线1,2的长
“L1”?E: “L2”?F 输入前后缓和曲线的长
“ZHL”?G 输入直缓里程
“FWJ”Q 输入直缓点切线方位角
“-PJ+”?S 输入偏角左负右正
?R: 输入圆曲线半径
Goto 4↙
LbI2:prog “SJK”:goto 4 ↙
LbI4: “KCD”?K: ?N↙ 输入观测点里程 输入N值 1为正算 其他为反算
If N=1: Then Goto 5: Else prog “ZSXH”:
Goto 6: If end↙
LbI5: “X”?M: “Y”?Z Prog “FSXH”: Goto 7: If end↙选择反算后输入测点的X,Y 假设里程与正算输入一起,无需另输入
LbI6:“W”?W 求边桩输入边距 左-右+
X+WCos(P+90) →X: “X=”:X◢ 显示所求X值
Y+WSin(P+90) →Y: “Y=”:Y◢ 显示所求Y值
P<0 => P+360→P: “FW=”:P◢ 显示所求点切线方位角
Goto 4
LbI7: “KCD=”:K ◢ 显示反算出的里程
“W=”:W◢ 显示反算出的边距
Goto 4↙
子程序正算循环 “ZSXH”
R(Abs(S)-90E÷(∏R)-90F÷(∏R)) ∏÷180→J↙
If K<=(说明:小于等于号)E+G+J: Then Goto 1:
Else Goto 3: If end↙
LbI1: Q→H:T-C*Cos(H)→X:B-C*Sin(H)→Y: 根号(R∏) →A↙
If K<=G+E:Then K-G→L:prog “B” :P→P:prog “C”:Goto 6:
Else E→L: prog “B”:P→P: prog “C”:X→X:Y→Y:Goto 2:
If end↙
LbI2: K-G-E→L: prog “D”:P→P: prog“C”: Goto 6↙
LbI3: Q+S→H:T+D*Cos(H)→X:B+D*Sin(H)→Y:根号(RF)→A↙
If K<=G+E+J+F: Then G+E+J+F-K→L: prog “B”:
O-2Abs(S)N÷S→O: P-180L^(2)Abs(S)÷(∏A^(2)S)→P:
-Z[1]→Z[1]: prog “C”: Goto 6: Else T→X:B→Y:H→O:
D+K-G-E-J-F→Z[1]: H→P: prog “C”: Goto 6: If end↙
LbI6: Return
反算循环子程序 “FSXH”
LbI 0: prog “ZSXH” ↙
PoL((M-X),(Z-Y)) ↙
I*cos(J-P)→N↙
I*sin(J-P)→W↙
If N<0.001: Then N+K→K:Return: Else K+N→K:Goto 0: If end↙
Return↙
子程序 缓和段计算 “B”
L-L^(5)÷(40A^(4))+L^(9)÷(3456A^(8)) →U↙
L^(3)÷(6A^(2))-L^(7)÷(336A^(6))+L^(11)÷(42240A^(10)) →V↙ (该公式参照课本)
根号(U^(2)+V^(2))→Z[1] ↙
Tan-1(V-U)→N↙
H+Abs(S)*N÷S→O↙
H+Abs(S)*90*L^(2)÷(S∏A^(2))→P↙
Return
子程序“C”
X+Z[1]*cos(O)→X↙
Y+Z[1]*sin(O)→Y↙
Return↙
圆曲线要素计算子程序“D”
L*180÷(∏R)→N↙
2R*sin(N÷2)→Z[1] ↙
P+(Abs(S)÷S)(N÷2)→O↙
P+Abs(S)÷S→P↙
Return↙