1、公式全线贯通坐标正反算 fx5800P 程序第一次坐标反算时最好计算两遍,再看结果,如果得出结果一样,取其结果,后面的就只算一次,取其结果。正算主程序 A“X0=”?U:“Y0=”?V:LbI 0:“JS 4D=”?J:“K= ”?K:J=1=GoTo 1:J=2=GoTo 2:J=3=GoTo 3:J=4=GoTo 4:J=5=GoTo 6:J=6=GoTo 7:J=7=GoTo 8:LbI 8:Prog“D-7”:GoTo5:LbI 7:Prog “D-6”:GoTo 5:LbI 6:”Prog”D-5”:GoTo 5:LbI 4:Prog“D-4“:GoTo 5:LbI 3:Prog “
2、D-3”:GoTo 5:LbI 2:Prog “D-2”:GoTo 5 : LbI 1:Prog “D-1“ :GoTo5: EXELbI 5:Prog “ZSCX”:Prog“FY“:Goto 0 反算主程序 B LbI 0:“FD=“?Z:Z=1=Goto 1:Z=2=Goto 2:Z=3=Goto 3:Z=4=Goto 4: Z=5=Goto 6: Z=6=Goto 7:LbI 1:Prog “D-1“:GoTo5:LbI 2:Prog “D-2“:GoTo5:LbI 3:Prog “D-3“:GoTo5:LbI 4:Prog “D-4“:GoTo5: LbI 6:Prog “D-5”
3、:GoTo5 : LbI 7:Prog “D-6“:GoTo5 EXELbI 5:Prog” FSCX”:“PJ=”:L EXE”DK=”: O+ZK EXE“AAbs(I-J)200Z1 EXEKGoTo B:KV=GoTo C:KV+Z1=GoTo E:KV=GoTo D EXE LbI B :”SJG=”:U-I(V-K)100kReturn EXELbI C:”SJG=”: EXEIf IJ :Then U+IJ(K-V)100-(K+Z1-V)2(2A)HElse U+I(K-V)100+(K+Z1-V)2(2A)HIfEnd EXEReturn EXELbI D:”SJG=”: E
4、XEIf IJ Then U+J(K-V)100-(K-V-Z1)2(2A)H Else U+J(K-V)100+(K-V-Z1)2(2A)H IfEnd EXELbI E:”SJG=”:U+J(K-V)100H Return EXEGoTo 01.正算子程序 ZSCX(P-R)(2Abs(H-O)PR)D“L(-Z +Y)=”?L :”ANG(YJJ)=”?M Abs(K-O)ZProg“ZSZCX“F-MF:“ZB X=“:X“ZB Y=“:Y“FWJ=“:FDMS2. 反算子程序 FSCX“K=“?K:“N=“?N:“T=“?T:(P-R)(2 Abs (H-O)PR) D Abs(T-
5、S)cos(G-90)(N-W)sin(G-90) Z:0 L:90M Lbl 0:Prog “ ZSZCX “:(T-Y)cos(G-90+QZ(1P+ZD)180)-(N-X)sin(G-90+QZ(1P +ZD) 180) LIf Abs(L)GoTo A:J=2=GoTo B:J=3=GoTo C J=4=GoTo D:J=5=GoTo F:J=6=GoTo G:LbI G:Prog “S-6”:GoTo E LbI F:Prog”S-5”:GoTo E:LbI D :Prog “S-3”:GoTo E:LbI B:Prog”S-2”:GoTo E: LbI A:”Prog “S-1”
6、:GoTo E:LbI E:Prog”B”:GoTo 0 exe 6、S-1 第一条竖曲线数据库(竖曲线数据库部分)If K( 起点里程) And K(终点里程):Then *V(边坡点里程):*U(边坡点高程) :*A(竖曲线半径):* I(小里程方向坡度):*J(大里程方向坡度):IfEnd EXES-2S-36、SD BJ1DimZ EXELbI 0:”R OR G=”?C:C=1=GoTo 1:C=2=GoTo 2:C=3=GoTo 3:LbI 1:Prog”SD”:GoTo 0:LbI 2:”SC G=”?B:Prog”SD”:If L0:ThenAbs(L+4.3)Z1:Else
7、Abs(L+4.3)Z1:IfEnd :“SC R=”:(Z1)2+(B-H-1.5)2)GoTo 0 EXELbI 3:”SC G=”?B:Prog “SD”:If L0: Then Abs(L-4.3(遂道中心线到设计线的偏距)Z1:Else Abs(L-4.3)Z1:IfEnd :”SC R=”:(Z1)2+(B-H-1.5)2) EXEGoTo 0 exeX、Y- 待求点坐标;U、V- 测站点 X、Y 坐标; J、I- 待放点至测站点方位角、水平距离5. 曲线元要素数据库:D-1( 第一段线路的数据库)If KO And KH: *W:*S:*O:* G:*H:*P:*R:*Q IfE
8、nd If KO And KH: *W:*S:*O:*G:*H:*P:*R:* Q IfEnd D-2(第二段线路的数据库)D-3(第三段线路的数据库)D-4(第四段线路的数据库)D-5(第四段线路的数据库)D-6(第四段线路的数据库)(注:如有多个曲线元要素继续添加入数据库 D-1)说明:一、程序功能及原理1.功能说明:本程序由两个主程序正算主程序(ZSCX)、反算主程序(FSCX)和两个子程正算子程序(ZSZCX)、线元数据库(DAT-01) 构成,可以根据曲线段直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、终点里程、起点曲率半径、止点曲率半径)及
9、里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。本程序可以在 CASIO fx-4800 计算器及 CASIO fx-4850P 计算器上运行。由于加入了数据库(DAT-01),可实现坐标正反算的全线贯通。组合程序 ZBFY 正算贯通,组合程序 ZHFS 可实现反算贯通,组合程序 FY 可实现坐标计算到放样一体化。2计算原理:利用 Gauss-Legendre 5 点通用公式计算线路中边桩坐标并计算放样数据。利用待求点至线元起点切线作垂线,逐次迭代趋近原理反算里程及边距。二、使用说明1、规定(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时, Q=-1;当线
10、元往右偏时,Q=1;当线元为直线时,Q=0。(2) 当所求点位于中线时,L=0;当位于中线左侧时,L 取负值;当位于中线右侧时,L 取正值。(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10 的 45 次代替。(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以 10 的 45 次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以 10 的 45 次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。(6) 当线元为非完整缓和曲线时,起点与直线相接
11、时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。(7)曲线元要素数据库(DAT-01 )可根据线型不同分为各个线元段输入到 DAT-01 中,即分为直线段、缓和曲线、圆曲线等逐段输入。如有多条线路可每条线路建立一个数据库,数据库名称要有差别。.(8)正算时可仅输入里程和边距及右交角可实现全线计算,但反算时只能通过首先输入里程 K 值读取数据库 DAT-01,计算器自动将里程 K 所在线元数据赋给反算主程序 GSFS 进行试算,试算出的里程和边距须带入正算主程序 GSZS 中计算坐标,若
12、坐标吻合则反算正确。 2、输入与显示说明(1)输入部分:W“X0“ ?线元起点的 X 坐标 YS“Y0“ ?线元起点的 Y 坐标 O“K0“ ?线元起点里程G“F0“ ?线元起点切线方位角H“KN“ ?线元终点里程P“R0“?线元起点半径R“RN“?线元止点半径Q ? 线 元左右偏标志(左偏 Q=-1,右偏 Q=1,直线段 Q=0)K ? 正算时所求点的里程L ? 正算时所求点距中线的边距(左侧取负值,右侧取正值,在中线上取零)M“ANG”正算边桩时左右边桩连线与线路中线的右交角 N ? 反算时所求点的 X 坐标T ? 反算时所求点的 Y 坐标线元要素数据库中 KO=KH=中的 O 和 H 分
13、别为该段线元起点里程和终点里程A、 B、Z4 是 Gauss-Legendre 求积公式中的插值系数C 、E、Z1 是 Gauss-Legendre 求积公式中的求积节点(2)显示部分: X= 正算时,计算得出的所求点的 X 坐标Y= 正算时,计算得出的所求点的 Y 坐标K= 反算时,计算得出的所求点的里程L= 反算时,计算得出的所求点的边距补充说明部分:1、给程序为分段计算的(直线-ZH-HY-YH-HZ-直线)之间均为一小段.2、线路若是首尾相连的可以都编在一个数据库里面:若中间有断开的部分数据库要分开编辑(一个数据库作为一个独立的子程序)本程序已经连接了 6 个平曲线、竖曲线数据库(还可以连很多个数据库)