曲线任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序

曲线任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序
一、程序功能
        本程序由一个主程序(ZD-XY)、一个次主程序、二个子程序(正算子程序A、反算子程序B)及数据库子程序(D1~DN)构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线
元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲线任意里程中边桩坐标进行正反算。本程序也可以在CASIO fx-4500P计算器及CASIO fx-4800P计算器上运行。
  特别申明:(1).适用于弧长小于2倍半径的各种线元坐标正反算,精度优
                1mm
                    (2).在引用该核心计算部分时,请注明来源。
二、源程序
1.主程序(XY-ZD)
LbI 0:Norm

F=1Z[1]=90:
Prog
THB":Fix3:F=1=>Goto 1: ≠>Goto 2Δ

LbI 1:"X=":X◢

"Y=":Y◢Goto 0

LbI 2:”KM=”:Z◢

“D=”:D◢Goto 0

2.次程序(THB)

efm 2{Z}:Z"KM":ProgD:

C=1÷P:S=(P-R)÷(2HPR)E=180÷π:F=1=>Goto 1≠>Goto 2Δ

Lbl 1{D}:D:W=Abs(Z-O)Prog ""X:Y:Goto 3

LbI 2:{XY}:X”X0:Y”Y0:I=X:J=Y:Prog"B":Z=O+W:D=D:Goto 3

LbI 3:F=1=>X:Y:≠>Z:D

.正算子程序()
A=0.1184634425
B=0.2393143352K=0.046910077L=0.2307653449:N=0.2844444444M=0.5X= U+W(Acos(G+QEKW(C+KW))+Bcos(G+QELW(C+LW))+Ncos(G+QEMW(C+MW))+Bcos(G+QE(1-L)W(C+(1-L)WS))+Acos(G+QE(1-K)W(C+(1-K)WS)))

Y= V+W(Asin(G+QEKW(C+KW))+Bsin(G+QELW(C+LW))+Nsin(G+QEMW(C+MWS))+Bsin(G+QE(1-L)W(C+(1-L)WS))+Asin(G+QE(1-K)W(C+(1-K)W)))

Z[2]= G+QEW(C+W)+Z[1]:X=X+cosZ[2]:Y=Y+sinZ[2]

.反算子程序()
T=G-90
W=Abs((Y-V)cosT-(X-U)sinT):D=0Lbl 0Prog ""L=T+QEW(C+
W
):D=(J-Y)cosL-(I-X)sinLAbs<1E-6=>Goto1≠>W=W+D:Goto 0Δ←┘
Lbl 1
:D=0Prog "":D=(J-Y)÷sinZ[2]

5.数据子程序(附后示例)

Z<769.257=>=500:U=19942.837:V=28343.561:G=125°1631:H=269.256:P=1E45:R=1E45:Q=0Goto0: ≠>Z<806.749=>=769.256:U=19787.340:V=28563.378:G=125°1631:H=37.492:P=1E45:R=221.75:Q=-1:Goto 0: ≠>Z<919.528=>=806.748:U=19766.566:V=28594.574:G=120°2554.07:H=112.779:P=221.75:R=221.75:Q=-1:Goto 0:

LbI 0:Fixm O:U:V:G:H:P:R:Q:

数据字程序中字母表示说明:

O-线元起点桩号;U、V-线元起点桩号的X、Y坐标,G-线元起点桩号方位角,H-线元长度,P-线元起点曲率半径,R-线元终点曲率半径,Q-线元判别


三、使用说明
1、规定
        (1)以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,
Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0
        (2)当所求点位于中线时,D=0;当位于中线左铡时,D取负值;当位于中线中线右
侧时,D取正值。
        (3)当线元为直线时,其起点、止点的曲率半径为无穷大,以1045次代替。
        (4)当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆
弧的半径。
         (5)当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以1045
次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半
径为无穷大,以1045次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
         (6)当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等
于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

2、输入与显示说明
      输入部分:
      1.F=1:ZD=> XY
      2.
F=2:XY = >ZD
      选择计算方式,输入1表示进行由里程、边距计算坐标;输入2表示由坐标反算里程和边距。Z[1]为线元边桩与中线右夹角。
    KM?正算时所求点的里程
    D?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)     S0?线元起点里程
         X?反算时所求点的X坐标
      Y?反算时所求点的Y坐标
      显示部分:
       X=×××    正算时,计算得出的所求点的X坐标
       Y=×××    正算时,计算得出的所求点的Y坐标
            KM=×××    反算时,计算得出的所求点的里程
      =×××    反算时,计算得出的所求点的边距

四、算例
        某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组
成,各段线元的要素(起点里程O、起点坐标UV、起点切线方位角G、线元长度H、起点曲率半径P、止点曲率半径R、线元左右偏标志Q)如下:
 O       U         V                               H   P   R      Q
500.000    19942.837    28343.561     125 16 31.00    269.256     1E45 1E45      0
769.256    19787.340    28563.378     125 16 31.00      37.492     1E45 221.75     -1
806.748    19766.566    28594.574     120 25 54.07     112.779    221.75 221.75     -1
919.527    19736.072    28701.893       91 17 30.63       80.285    221.75 9579.228   -1
999.812    19744.038    28781.659       80 40 50.00     100.000    1E45 1E45       0
        1
、正算
          (注意:略去主程序修改计算方式及线元要素子程序,请自行根据所求点所在的线元输入线元要素子程序)
            KM=700  D=-5    计算得  X=19831.41785   Y=28509.72590
            KM=700  D=0   
计算得  X=19827.33592   Y=28506.83837
            KM=700  D= 5   
计算得  X=19823.25398   Y=28503.95084

            KM=780  D=-5   
计算得  X=19785.25749   Y=28575.02270
            KM=780  D=0   
计算得  X=19781.15561   Y=28572.16358
            KM=780  D= 5   
计算得  X=19777.05373   Y=28569.30446
         
             KM=870  D=-5   
计算得  X=19747.53609   Y=28654.13091
            KM=870  D=0   
计算得  X=19742.68648   Y=28652.91379
           KM=870  D= 5   
计算得  X=19737.83688   Y=28651.69668
     
             KM=940  D=-5.123   
计算得  X=19741. 59118  Y=28722.05802
            KM=940  D=0           
计算得  X=19736.47687   Y=28722.35642
            KM=940  D= 3.009   
计算得  X=19733.47298   Y=28722.53168
           
       2
、反算
             X=19831.418   Y=28509.726  计算得  KM=699.9999974  D= -5 .00018164
             X=19827.336   Y=28506.838 
计算得  KM =699.9996493  D= 0.000145136
             X=19823.25398   Y=28503.95084   
计算得 KM =699.9999985  D= 5.000003137
           X=19785.25749   Y=28575.02270 
计算得  KM =780.0000035  D= -5 .000001663
           X=19781.15561   Y=28572.16358 
计算得  KM =780.0000025  D=- 0.000002979
           X=19777.05373   Y=28569.30446 
计算得  KM =780.0000016  D= 4.99999578
          
           X=19747.536   Y=28654.131 
计算得  KM =870.0001137  D= -4.99941049
           X=19742.686   Y=28652.914 
计算得  KM =870.0003175  D=- 0.00041814
           X=19737.837   Y=28651.697 
计算得  KM =870.0002748  D= 4.999808656

          X=19741.5912   Y=28722.0580 
计算得  KM =939.9999786  D= -5.123024937
          X=19736.4769   Y=28722.3564 
计算得  KM =939.9999862  D=- 0.000027710
          X=19733.4730   Y=28722.5317 
计算得  KM =940.0000238  D= 3.00898694
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荣华富贵8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值