公路路线座标正反算(积分公式)通用程序

公路路线座标正反算(积分公式)通用程序

  • 最近更新2022年01月19日

公路路线座标正反算

由于现在计算机普及,计算机功能日益强大,宜采用较简单的积分公式,便于计算机处理。

单线元通用积分公式如下

M = (1.0/Re-1.0/Rs)/Ls;

x=∫{cos(Ta + L/Rs + 0.5*M *L*L),0,L};

y=∫{sin(Ta +L/Rs + 0.5*M *L*L),0,L};

a(i)= Ta +L/Rs + 0.5*M *L*L

Rs:缓和曲线起点半径

Re:缓和曲线止点半径

Rs,Re (NE坐标系下,右偏为正,左偏为负)

Ta:缓和曲线起点的真北方位角

Ls:不完整缓和曲线长度。

此公式为缓和曲线在坐标系下任意位置的通用积分公式,能完全适应缓和曲线左偏、右偏、Rs >Re 、Rs <Re等各种情况,不必先凑成完整缓和曲线,降低算法的复杂程度。虽然此公式是由缓和曲线推导出来,也可和于直线与圆曲线,可降低计算机编程的复杂程度。

Fx-5800计算机程序

QXJS-000              主程序

Lbl 4:“1.SZ=>NE”:“2.NE=>SZ”:?Q:?S:Prog“QXJS-SUB0”↙

Lbl 0:Q=1 => Goto1:Q=2 => Goto2:↙

Lbl 1:?Z:Prog“QXJS-SUB1”:“N=”:N◢:“E=”:E◢:“F=”:F→DMS◢: Goto3↙

Lbl 2: “N=”:?B: “E=”:?C:B→N: C→E:Prog“QXJS-SUB2”: “S=”:S◢: “Z=”:Z◢: Goto4↙

Lbl 3:I=Pol(N-Z[1],E-Z[2]):J<0=>J=J+360:“DIST=”:I◢:

“FW=”:J→DMS◢

Goto4↙

(Z[1]为测站点X坐标,Z[2]为测站点Y坐标)

QXJS-SUB0             数据库子程序

Goto1↙               同时保存多个曲线时的指针

Lbl 1

IF S<***(线元终点里程):Then***→A(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径):***→R(线元终点曲率半径): ***→L(线元起点至终点长度): Return:IfEnd↙

IF S<***:Then***→A:***→O:***→U:***→V:***→P:***→R: ***→L: Return:IfEnd↙

………………………..为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。

QXJS-SUB1             正算子程序

0.5(1÷R-1÷P)÷L→D:S-O→X↙

U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N↙

V+∫(sin(A+(X÷P+DX2)×180÷π,0,X)→E↙

A+(X÷P+DX2)×180÷π→F↙

N+Zcos(F+90) →N:E+Zsin(F+90) →E

QXJS-SUB2             反算子程序

Lbl 1:0→Z:1→Q:Prog“QXJS-SUB0”: Prog“QXJS-SUB1”↙

Pol(N-B+10^(-46), E-C+10^(-46)):Isin(F-90-J) →W:S+W→S↙

Abs(W)>0.0001 => Goto1↙

Lbl 2: 0→Z:Prog“QXJS-SUB1”:(C-E) ÷sin(F+90) →Z

三、使用说明

1、规定

(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当曲线半径在左时,P、R取负值,当曲线半径在右时,P、R取正值,当曲线半径为无穷大(即直线)时,P、R以10的45次代替。

(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右

侧时,Z取正值。

(3) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆

弧的半径。

(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次方代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的

值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等

于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

 

2、输入与显示说明

输入部分:

 

  1. SZ => XY
  2. XY = > SZ

Q ?  选择计算方式,输入1表示进行由里程、边距计算坐标 ;输入2表示由坐标反算里程和边距。

 

分享到 :