5800全线计算程序

资料详细介绍:

本程序由4800程序改编而成,网上有5800积分通用公式,但由坐标反算里程及边距时很慢,本程序大大提高了反算速度。1. 主程序(TYQXJS)

Lbl 4:\:\:?N:?S:Prog“SUB0”↙ 1÷P→C: (P-R)÷(2HPR) →D:180÷∏→E:N=1 => Goto1: Goto2:↙ Lbl 1:? Z: Abs(S-O) →W:Prog \: \:X◢ \:Y◢F-90→F: “FS=”:F▲DMS◢:Goto4↙ Lbl 2:?X: ?Y:X→I:Y→J: Prog“SUB2”:O+W→S:“S=”:S◢“Z=”:Z◢Goto4↙

2. 正算子程序(SUB1)

0.1739274226→A: 0.3260725774→B: 0.0694318442→K: 0.3300094782→L: 1-L→F: 1-K→M:

U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW (C+FWD))+Acos(G+QEMW(C+MWD))) →X: V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))) →Y:

G+QEW(C+WD)+90→F: X+Zcos(F)→X: Y+Zsin(F)→Y 2. 反算子程序(SUB2)

G-90→T: Abs((Y-V)cosT-(X-U)sinT) →W: 0→Z:Lbl 0:Prog \: T+QEW(C+WD) →L: (J-Y)cos(L)-(I-X)sin(L)→Z:Abs(Z)<1E-6=>Goto1: W=W+Z:Goto 0Δ←┘

Lbl 1:Z=0:Prog \: (J-Y)÷sin(F)→Z SUB0 数据库子程序

Goto1↙ 同时保存多个曲线时的指针 Lbl 1:IF S<***(线元终点里程):Then***→G(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径):***→R(线元终点曲率半径): ***→H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd↙ Lbl 1:IF S<***(线元终点里程):Then***→G(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径):***→R(线元终点曲率半径): ***→H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd ?????????..

为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。 三、使用说明 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表示由坐标反算里程和边距。

S ?正算时所求点的里程,反算时为所求点的近似里程,反算时输入的近似里程不能夸线元,若夸线元的话,需进行第二次反算,并以第一次的结果做为近似里程,否则反算的里程及边距不对, Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零) X ?反算时所求点的X坐标 Y ?反算时所求点的Y坐标 显示部分:

XS=××× 正算时,计算得出的所求点的X坐标 YS=××× 正算时,计算得出的所求点的Y坐标

FS=××× 正算时,所求点对应的中线点的切线方位角 S=××× 反算时,计算得出的所求点的里程 Z=××× 反算时,计算得出的所求点的边距

曲線任意里程中邊樁坐標正反算5800p

TYQXJS(主程序名) LbI 0:4→Dimz:Cls \ \

\\\O:\\\1÷P→C:(P-R)÷(2HPR) →D:180÷π→E N=2=>Goto 2 LbI 1:Cls:?S

S=0=>Goto 0 (注:當S輸入0時,程序會由LbI 0開始重新運行) ?Z:Abs(S-O)→W Prog\\◢ \◢

\?DMS◢ Goto 1 LbI 2:Cls:?X

X=0=>Goto 0 (注:當X輸入0時,程序由會LbI 0開始重新運行) ?Y:X→I:Y→J

Prog\O+W→S:Cls \◢ \◢ Goto 2

注:紅色部可以不要,亦可以要,它的作用是將S或運行,(即是可以計算下段線元)

SUB1(子程序名)

0.1739274226→A:0.3260725774→B 0.0694318442→K:0.3300094782→L 1-L→F:1-K→M

輸入0時,程序會重新由頭開始

G+QEKW(C+KWD)→Z[1] G+QELW(C+LWD)→Z[2] G+QEFW(C+FWD)→Z[3] G+QEMW(C+MWD)→Z[4] A×cos(Z[1])→X (剩號可省略) X+Bcos(Z[2])→X X+Bcos(Z[3])→X X+Acos(Z[4])→X U+WX→X Asin(Z[1])→Y Y+Bsin(Z[2])→Y Y+Bsin(Z[3])→Y Y+Asin(Z[4])→Y V+WY→Y

G+QEW(C+WD)+90→F X+Zcos(F)→X Y+Zsin(F)→Y

SUB2(子程序名) G-90→T

(Y-V)cos(T)-(X-U)sin(T)→W Abs(W)→W:0→Z LbI 4:Prog\T+QEW(C+WD)→L (J-Y)cos(L)-(I-X)sin(L)→Z

If Abs(Z)<1E-6:Then 0→Z :Prog\ (J-Y)÷sin(F)→Z

Else W+Z→W:Goto 4:IfEnd

注:1E-6即是10的負6次方,亦即是等於0.000001 輸入時按SHIFT---log---(-)---6

亦可直接將If Abs(Z)<1E-6寫成If Abs(Z)<0.000001

注意:本程序是根據yhhf編寫的4800P改寫而成,以下是源程序及算例 大家有問題亦可在以下網址查看及向yshf發問

http://www.celiang.net/celiang/article_view.asp?id=380&author=yshf

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

本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序(

SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线

元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲

率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。另

外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲

线任意里程中边桩坐标进行正反算。本程序也可以在CASIO fx-4500P计算器及 CASIO fx-4850P计算器上运行。

特别申明:(1). 适用于弧长小于2倍半径的各种线元坐标正反算,精度优 于1mm;

(2). 在引用该核心计算部分时,请注明来源。 二、源程序 1.主程序(TYQXJS)

\=> XY\:\=> SZ\:N:U\:V\:O\:G\:H\: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 \:X\◢

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4