fx-5800p全线坐标正反算带高程计算程序(线元法)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
曲线任意里程中边桩坐标正反算(CASIO fx-5800P计算器)程序
一、程序功能及原理
1.功能说明:本程序由一个主程序(TYQXJS)和五个子程——正算子程序(SUB-ZS)、反算子程序(SUB-FS)等构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。本修改版程序既可实现正算全线贯通,亦可实现反算全线贯通。本程序在CASIO fx-5800P计算器运行。
2.计算原理:利用Gauss-Legendre 5点通用公式正算线路中边桩坐标、线外测点至曲线元起点和终点的垂距的符号是否相异(即Dca×Dcb<0=>该测点在其线元内)进行判断并利用该线元要素反算中桩里程、支距,最后计算出放样数据。
二、源程序
1.主程序(TYQXJS)(A)
Deg:fix 3
119→DimZ
“INPUT(0) Or DATA(Else)”?I
Lbl 0:“1.SZ=>XY,2.XY=>SZ,3.TF=>CK,4.SD=>FY,5.TW=>FY”?N
If N=1 Or N=5:Then Goto 1
Else If N=2 Or N=3 Or N=4:Then Goto 2
Else Goto 3
IfEnd:IfEnd
Lbl 1:“K(m)=”?S
If S<0:Then Goto 0:IfEnd
“JL(m)=”?Z
If Z≠0:Then “ANGLE→R(Deg)=”?M:IfEnd
If I=0:Then Prog “DAT1”:Else Prog “DAT2”:IfEnd
S-O→W:If W<0:Then Goto 0:Else If W>H:Then Goto 0:IfEnd:IfEnd
Prog “SUB-ZS”:Prog “SUB-GC”
If Z<0:Then“XL(m)=”:X◢“YL(m)=”:Y◢ If N=5:Then Prog “SUB-TW”:IfEnd
Else If Z>0:Then “XR(m)=”:X◢“YR(m)=”:Y◢
If N=5:Then Prog “SUB-TW”:IfEnd
Else “X(m)=”:X◢“Y(m)=”:Y◢“Hs(m)=”:L◢“FWJ=”: F►DMS◢ IfEnd:IfEnd
Lbl 2:“X(m)=”?X:If X<0:Then Goto 0:IfEnd
“Y(m)=”?Y
If N=3 Or N=4:Then “H(m)=”?→Z[2]:IfEnd
X→Z[4]:Y→Z[5]:90→M
If I=0:Then Prog “DAT1”
G+QEH(C+HD)→F:1→J:U→Z[8J]:V→Z[8J+1]
G-M→A:F-M→B:Prog “SUB-ZX1”:Goto B
G+M→A:F+M→B:Prog “SUB-ZX1”:Goto B:IfEnd
0→J:Lbl A: Isz J
Z[8J+3]-M→A:Z[8(J+1)+3]-M→B:Prog “SUB-ZX1”
If Z[6]Z[7]<0:Then J→J:Prog“DAT1” :Goto B:IfEnd
Z[8J+3]+M→A:Z[8(J+1)+3]+M→B:Prog “SUB-ZX1”
If Z[6]Z[7]<0:Then J→J:Prog “DAT1” :Goto B:Else Goto A:IfEnd
Lbl B:Prog“SUB-FS”
O+W→S:Prog “SUB-GC”
“K(m)=”:S◢“Hs(m)=”:L◢“JL(m)=”:Z◢
If N=3:Then Prog “WIDE”:IfEnd
If N=4:Then Prog “SDFY”:IfEnd
Goto 2
Lbl 3:“TYQXJS→END”
2. 正算子程序(SUB-ZS)(A3)
0.1184634425→A: 0.2393143352→B:0.2844444444→Z[1]:0.0469100770→K:0.2307653449→L:0.5→
Z[3]
U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Z[1]cos(G+QEZ[3]W(C+Z[3]WD))+Bcos(G+QE(1-L)W(C+( 1-L)WD))+Acos(G+QE(1-K)W(C+(1-K)WD)))→X
V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Z[1]sin(G+QEZ[3]W(C+Z[3]WD))+Bsin
(G+QE(1-L)W(C+(1-L)WD))+Asin(G+QE(1-K)W(C+(1-K)WD)))→Y
G+QEW(C+WD)+M→F
X+Zcos(F)→X:Y+Zsin(F)→Y
F-M→F:If F<0:Then F+360→F:IfEnd
3. 反算子程序(SUB-FS)
G-M→T:Abs((Y-V)cos(T)-(X-U)sin(T))→W:0→Z
Lbl C:Prog “SUB-ZS”
T+QEW(C+WD)→L:(Z[5]-Y)cos(L)-(Z[4]-X)sin(L)→Z
If Abs(Z)<10-6:Then Goto D:Else W+Z→W:Goto C:IfEnd
Lbl D:0→Z:Prog “SUB-ZS”:(Z[5]-Y)÷cos(F)→Z:Return
4.高程计算子程序(SUB-GC)(A4)
Prog “DAT3”
0.5RAbs(0.01(E-D))→T
If E>D:Then 1→C:Else -1→C:IfEnd
If S Abs(A-S)→L If L>T:Then B+WL→L:Else B+WL+C(T-L)2÷2÷R→L:IfEnd Return 5. 垂距计算子程序(SUB-ZX1) (Z[5]-Z[8J+1])cos(A)-(Z[4]-Z[8J])sin(A)→Z[6] (Z[5]-Z[8(J+1)+1])cos(B)-(Z[4]-Z[8(J+1)])sin(B)→Z[7] Return 6.曲线元要素数据库:DAT1(两条线路,可扩充为多条线路)(A1) If I=0:Then Goto E: Else If I=2:Then Goto F:IfEnd:IfEnd J=1=>***→Z[8]:***→Z[9]:***→Z[10]:***→Z[11]:***→Z[12]:***→Z[13]:***→Z[14]:*** →Z[15]:IfEnd J=2=>***→Z[16]:***→Z[17]:***→Z[18]:***→Z[19]:***→Z[20]:***→Z[21]:***→Z[22]:***→ Z[23]:IfEnd J=3=>***→Z[24]***→Z[25]:***→Z[26]:***→Z[27]:***→Z[28]:***→Z[29]:***→Z[30]:***→[31]:IfEnd ……………………………………………….. Goto H Lbl F: J=1=>***→Z[8]:***→Z[9]:***→Z[10]:***→Z[11]:***→Z[12]:***→Z[13]:***→Z[14]:*** →Z[15]:IfEnd J=2=>***→Z[16]:***→Z[17]:***→Z[18]:***→Z[19]:***→Z[20]:***→Z[21]:***→Z[22]:***→