测量天地

设为首页  
加入收藏

曲线任意里程中边桩坐标正反算
时间:2017-04-06 17:13:27,点击:0
曲线任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序

一、程序功能
    本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序(SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲线任意里程中边桩坐标进行正反算。本程序也可以在CASIO fx-4500P计算器及 CASIO fx-4850P计算器上运行。
   特别申明:(1). 适用于弧长小于2倍半径的各种线元坐标正反算,精度优于1mm;
             (2). 在引用该核心计算部分时,请注明来源。
二、源程序
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=>Goto 1:≠>Goto 2Δ←┘
Lbl 1:{SZ}:SZ:W=Abs(S-O):Prog "SUB1":X"XS"=X◢
Y"YS"=Y◢
F"FS"=F-90◢
Goto 1←┘
Lbl 2:{XY}:XY:I=X:J=Y:Prog "SUB2":S"S"=O+W◢
Z"Z"=Z◢
Goto 2

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:Lbl 0:Prog "SUB1":L=T+QEW(C+
WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<1E-6=>Goto1:≠>W=W+Z:Goto 0Δ←┘
Lbl 1: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坐标
       FS=×××    正算时,所求点对应的中线点的切线方位角
       S=×××    反算时,计算得出的所求点的里程
       Z=×××    反算时,计算得出的所求点的边距

四、算例
        某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组
成,各段线元的要素(起点里程S0、起点坐标X0 Y0、起点切线方位角F0、线元长度
LS、起点曲率半径R0、止点曲率半径RN、线 元左右偏标志Q)如下:
S0   X0       Y0                   F0            LS R0 RN     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、正算
          (注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元
要素)
            S=700  Z=-5    计算得  XS=19831.41785   YS=28509.72590
            S=700  Z=0     计算得  XS=19827.33592   YS=28506.83837
            S=700  Z= 5    计算得  XS=19823.25398   YS=28503.95084

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

          X=19741.5912   Y=28722.0580   计算得  S=939.9999786  Z= -5.123024937
          X=19736.4769   Y=28722.3564   计算得  S=939.9999862  Z=- 0.000027710
          X=19733.4730   Y=28722.5317   计算得  S=940.0000238  Z= 3.00898694
特别说明:π=3.14151926
在算例中: 1、K0+500.000~K0+769.256为直线部分; 2、K0+769.256~K0+806.748为完整缓和曲线部分; 3、K0+806.748~K0+919.527为圆曲线部分; 4、K0+919.527~K0+999.812为非完整缓和曲线部分;
  A、B是Gauss-Legendre求积公式中的插值系数,K 、L是Gauss-Legendre求积公式中的求积节点,请参看天津大学出版社出版的《数值分析》[翟瑞彩 谢伟松 2000年11月第1版]P.206表6.5中n=3的一行,一看你就清楚明白。
  无论是直线、圆曲线,还是完整缓和曲线、非完整缓和曲线,该程序计算结果都完全正确,精度符合要求,编码简洁,比起网上那些遮遮掩掩、转弯抹角、收费或者编码繁杂的程序好上千倍,值得推荐,应给予奖励!
  如果将“Lbl 1:{SZ}:SZ:W=Abs(S-O):Prog "SUB1":X"XS"=X◢ Y"YS"=Y◢”改为: “Lbl 1:{SZ}:SZ:W=Abs(S-O):Prog "SUB1":X"XS"=X◢ Y"YS"=Y◢ F"FS"=F-90◢ " 则显示的FS为相应中线点的切线方位角。

注明:如有问题请加群1284820

上面部分由本站论坛 haohaoji186 提供,注明为原创,
============================================
任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序

一、源程序(SZ-XY-SZ)
"1.SZ => XY":"2. XY => SZ":N:U"X0":V"Y0":O"S0":G"F0":Q:Q=0=>R=1E-45:≠> R△J=0:M=AbsQ:K=1-M:N=1=>Goto 1:≠>Goto 2△←┙ Lbl 1:{SZ}:SZ:L=S-O:B=90QL÷π÷R:F=G+B:E=F+B+90:C=LK+2MRsinQB:X"XS" = U+Rec(C,F)+ZcosE? Y"YS"=V+J+ZsinE? Goto 1←┙ Lbl 2:W=G+90Q:E=U+Rec(R,W):F=V+J←┙ Lbl 3:{XY}:XY:D=Pol(X-E,Y-F):T=J:J<0=>T=J+360△B=T-W-180M:P=Abs B:S"S"=O+ DKcosP+ MπRP÷180? Z"Z"=DKsinB+MQ(R-D)? Goto 3←┙

二、使用说明
1.由里程、中边桩计算坐标 启动程序后按以下提示输入数据: N ?1 (N=1,由里程中边桩计算坐标;N≠1,由坐标反算里程及中边桩) X0 ?142.353 (直线或圆曲线起点的X坐标) Y0 ?368.166 (直线或圆曲线起点的Y坐标) S0 ?155.252 (直线或圆曲线起点的里程) F0 ?60°54′03″(直线或圆曲线起点的切线方位角) Q ?-1 (当线元为直线时Q=0;当线元为圆曲线且左偏时Q=-1;当线元为圆曲线且 右偏时Q=1) R ? 100 (圆曲线的半径) S ? 194.016 (中线里程) Z ? -5.251 (中线左侧5.251m的边桩;在中线上Z=0,在左侧<0,在右侧Z>0) 显示计算结果 XS=172.7467767 YS=395.2316807 2.由坐标反算里程、中边桩 启动程序后按以下提示输入数据: N ?2 (N=1,由里程中边桩计算坐标;N≠1,由坐标反算里程及中边桩) X0 ?142.353 (直线或圆曲线起点的X坐标) Y0 ?368.166 (直线或圆曲线起点的Y坐标) S0 ?155.252 (直线或圆曲线起点的里程) F0 ?60°54′03″(直线或圆曲线起点的切线方位角) Q ?-1 (当线元为直线时Q=0;当线元为圆曲线且左偏时Q=-1;当线元为圆曲线且 右偏时Q=1) R ? 100 (圆曲线的半径) X ? 172.7467767 (待求里程及中边桩的点的X坐标) Y ? 395.2316807 (待求里程及中边桩的点的Y坐标) 显示计算结果 S=194.016 Z=-5.251

三、注意事项
1.本程序主要是针对市政道路工程中的直线和圆曲线而编制的,未考虑缓和曲线等 曲线的计算;
2.程序中"R=1E-45"的意思为10的-45次方,输入程序时切莫输错。
3.程序中设置的计算顺序是由小里程往大里程方向(即里程增大的方向),曲线左偏、右偏也是以里程增大的方向来区分的。




由本站在网络收集整理,仅供学习,未验证其正确性

打印】【关闭
            本站的部分源程序是由站长由网络收集整理的,如有侵权,请告之,我会第一时间删除相关内容。
因时间原因,源码不可能每一个都进行了测试,所以不能保证源码全是正确的,提供源码只是提供一份思路,一个参考,方便写出专属于您自己的程序
Copyright 2003-2025 测量天地 (SurveySky.Com) All Rights Reserved.        
         备案许可证:新ICP备12001392号-1         | 关于我们 |  联系我们 |网站留言