一、程序功能
本程序是运用复化辛普生公式根据曲线段、直线、圆曲线、缓和曲线(完整或非完整型)的线元要素 , 对该曲线段范围内任意里程中边桩进行坐标正反计算。
二、程序特点:程序独立,计算数据准确速度较快,操作 简单实用性好
三、源程序:
OUVGHPKQ: Lbl6:Fixm:C=1/P:D=(P-R)/(2HPR):E=180/ ∏ :{N}:N “ Z=1,F=2”:N=1Lbl 1: {SZ}:SZ:W=Abs(S-O):Lbl2: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:N=1XYGoto6: AbsZ<1e-6Goto4: Goto3{XY}:XY:I=X:J=Y:T=G-90:W=Abs((Y-V) cosT-(X-U) sinT):Z=0: Lbl0: Goto2: Lbl3:L=T+QEW(C+WD):Z=(J-Y) cosL-(I-X) sinL: AbsZ<1e-6 Z=0 Goto2: Lbl4:P=e45 R=e45 ”S=”:S=O+W ”Z=”:Z=(J-Y)/ sinF Goto5: Goto6: S=O+W:Z=(J-Y)/ sinF: Goto2 S=O+W:Z=(J-Y)/ sinF: Goto2Z=(J-Y)/ sinF:”S=”:S=O+W ”Z=”:Z W=W+Z: Goto0 Lbl5: Goto6
变量意义: O ( 线元起点里程 )
U ( 线元起点的 X 坐标 )
V ( 线元起点的 Y 坐标 )
G ( 线元起点切线方位角 )
H ( 线元长度 )
P ( 线元起点曲率半径 )
R ( 线元止点曲率半径 )
Q ( 线 元左右偏标志 ( 左偏 Q=-1 ,右偏 Q=1 ,直线段 Q=0 ) )
四、说明
(1) 正算时当所求点位于中线时, Z=0 ;当位于中线左铡时, Z 取负值;当位于中线右侧时, Z 取正值。
(2) 当线元为直线时,其起点、止点的曲率半径为无穷大,以 10 的 45 次代替。
(3) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以 10 的 45 次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以 10 的 45 次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
(4) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
(5) 当线元往左偏时, Q=-1 ;当线元往右偏时, Q=1 ;当线元为直线时, Q=0 。
(6) 输入与显示说明
输入部分: Z=1 , F=2 ?当输入 1 时为正算,输入 2 时为反算
S ? 正算时所求点的里程
Z ?正算时所求点距中线的边距 ( 左侧取负,值右侧取正值,在中线上取零 )
X ?反算时所求点的 X 坐标, Y ?反算时所求点的 Y 坐标
(7) 显示部分: X= ××, Y= ××× 正算时,计算得出的所求点的 X 、 Y 坐标
S= ××反算时,计算得出的所求点的里程
Z= ××反算时,计算得出的所求点的边距(左负,右正,中线为接近 0 的值)
(8) 算例:
O U V G H P R Q
直 0.000 64438.936 4898.381 103 ° 40 ′ 9.38 ″ 112.20 1E45 1E45 0
缓 112.20 64411.860 5009.714 103 ° 40 ′ 9.38 ″ 45.00 1E45 120 1
园 157.20 64398.537 5052.623 114 ° 24 ′ 44 ″ 91.625 120 120 1
缓 248.825 64333.908 5114.414 158 ° 09 ′ 36.46 ″ 45.00 120 1E45 1
以上共 4 个线元是一段连续的线段,线元顺序是:直线、缓和曲线、园曲线、缓和曲线。
跟我来算例:
如在程序中输入第一个线元后,出现 Z=1 , F=2 ?输 1 ( 1 为正算、 2 为反算), S ?(输正算桩号里程)如输 85 回车 Z ?(距中线的平距 ( 左侧取负,值右侧取正值,在中线上取零 ) 输 4.5 米回车显示结果: X = 64414.476 、 Y = 4979.910 回车,又回到这一线元的计算状态。然后还可以检查以上结果正确否如 Z=1 , F=2 ?输 2 则以上计算的结果自动显示出来然后回车就又得到反算的桩号里程和偏距: S = 85 、 Z = 4.5 。网友可以算以上另外三个线元的桩号通过互相验算以确认正确的结果。 |