5800 交点法 正反算 程序

5800 交点法 正反算 程序

自编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↙

分享到 :