一、坐标计算源程序
1.主程序(TYQXjs)
"1.SZ=>XY":"2.XY=>SZ":N: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=>Goto1:≠>Goto2Δ←┘
Lbl1:{SZ}:SZ:W=Abs(S-O):Prog"SUB1":X"XS"=X◢
Y"YS"=Y◢
Goto1←┘
Lbl2:{XY}:XY:I=X:J=Y:Prog"SUB2":S"S"=O+W◢
Z"Z"=Z◢
Goto2
2.正算子程序(SUB1)
A=0.1739274226:B=0.3260725774:K=0.0694318442:L=0.3300094782:F=1-L:M=1-K:X=U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MWD))):Y=V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))):
F=G+QEW(C+WD)+90:
X=X+ZcosF:Y=Y+ZsinF
3.反算子程序(SUB2)
T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl0:Prog"SUB1":L=T+QEW(C+WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<1E-6=>Goto1:≠>W=W+Z:Goto0Δ←┘
Lbl1:Z=0:Prog"SUB1":Z=(J-Y)÷sinF
二、使用说明
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=>XY
2.XY=>SZ
N?选择计算方式,输入1表示进行由里程、边距计算坐标;输入2
表示由坐标反算里程和边距。
X0?线元起点的X坐标
Y0?线元起点的Y坐标
S0?线元起点里程
F0?线元起点切线方位角
LS?线元长度
R0?线元起点曲率半径
RN?线元止点曲率半径
Q?线元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)
S?正算时所求点的里程
Z?正算时所求点距中线的边距(左侧取负,值右侧取正值,
在中线上取零)
X?反算时所求点的X坐标
Y?反算时所求点的Y坐标
显示部分:
XS=×××正算时,计算得出的所求点的X坐标
YS=×××正算时,计算得出的所求点的Y坐标
S=×××反算时,计算得出的所求点的里程
Z=×××反算时,计算得出的所求点的边距