坐标正反算程序计算器
Casio 5800计算器辛普森结构线路正反算程序

Casio 5800计算器辛普森结构线路正反算程序摘要:现代高等级公路的设计线中的连接线、互通立交、匝道和城市道路的线型设计很多都采用了非基本型中的不对称型,卵形,复曲线形式。
这些曲线组合形式在设计中的复核、校正和在施工放样、检查都要通过一种简单易行的计算方法才能实现。
本程序操作简单,执行速度快,具备很好的可操作性,方便了核对图纸和现场施工作业,审图和测量的精度、质量得到了保证。
关键词:设计线;非基本型、审图;放样;验收0.引言卡西欧5800计算器作为目前最为常用的测量计算器,具有以下优点:程序语言严谨、条理清晰、传输程序、程序断电不丢失。
因此,本人采用卡西欧5800计算器编写了用以线路坐标正反算程序1.程序原理该程序正算基于辛普森放样公式,反算过程中调用正算程序,采用“逐点趋近法”计算坐标反算的对应桩号、法向偏距。
相比其它程序,本程序有以下优点:程序结构简单,运算速度快;采用线元法计算,可以解决线形复杂的城市立交、复曲线;正反算结合,便于对放样结果进行复核。
2.程序结构及参数设置下面,笔者以所在标段道路设计线为例对该程序进行说明:2.1、程序代码2.1.1、主程序Prog“FY”Lbl B:“ZS=1,FS=2,EXIT=3”?A:If A=1:Then “K”?K:ElseIf A=2:Then “XP”?C:“YP”?D:41389.354→K:Else A=3=>STOP:IfEnd:IfEnd:Lbl A:Prog“AXYD”:If A=1:Then “PJ”? →R:IfEnd:(E-S)÷Abs(G-F) →P:Abs(K-F)→Q:PQ→I:S+I→T:W+(I+2S)Q×90÷π→J:W+(I÷4+2S)Q×45÷(2π)→M:W+(3I÷4+2S)Q×135÷(2π)→N:W+(I÷2+2S)Q×45÷π→H:U+Q÷12×(cos(W)+4(cos(M)+cos(N))+2cos(H)+cos(J))→X:V+Q÷12×(sin(W)+4(sin(M)+sin(N))+2sin(H)+sin(J)) →YIf A=1:Then “XP”:X+Rcos(J+90) →X◢“YP”:Y+Rsin(J+90) →Y◢“QXJ”:J►DMS◢Stop:IfEnd:If A=2:Then J→U:Pol(C-X,D-Y):Icos(J-U) →L:IfEndIf Abs(L)≤0.001 And A=2:Then “K=”:K◢“PJ=,Z=-,Y=+”:Isin(J-U) →P◢Else L+K→K:Goto A:IfEnd:A=1=>Stop:Goto B说明:Prog“FY”中(“XP”?C:“YP”?D:411389.354→K:),其中K为控制反算里程的起始点,如果要反算坐标为线路全范围内,则K为线路起始里程。
CASIO fx—5800计算器 工程测量与公路测量程序

CASIO fx—5800计算器工程测量与公路测量程序1、坐标正算〝X0=〞?X:〝Y0=〞?Y:〝I=〞?I:〝J=〞?JX+ICos(J)→U:Y+ISin(J)→V〝X=〞:U (待求点的X坐标)〝Y=〞:V (待求点的Y坐标)说明:X0 Y0:已知点坐标I:两点的距离J:方位角2、坐标反算Lbl 0〝X1=〞?X:〝Y1=〞?Y:〝X2=〞?U:〝Y2=〞?VPol(U-X,V-Y):J<0 J+360→J〝I=〞:I〝J=〞:J DMSGOTO 0说明:X1Y1:第一点的坐标,X2Y2第二点的坐标,I:两点的距离,J:方位角3、圆曲线〝X0=〞?X: 〝Y0=〞?Y:〝FWJ=〞?D:〝QDHAO=〞?G: 〝ZDHAO=〞?C: 〝R=〞?R Lbl 1〝DQHAO=〞?LL<G Or L﹥C GOTO 2〝PY=〞?K180(L-G)÷(πR) →E2RSin(0.5E) →FReC(Abs(F),D+0.5E):Cls〝X=〞:X+I+KCos(D+E+90) →A〝Y=〞:Y+J+KSin(D+E+90) →BD+E→o:o<0 360+o→0o〝FWJ=〞:o DMSGoto 1Lbl 2〝END〞说明:X0Y0:起始点的坐标,FWJ:起始点的方位角,QDHAO:起点里程,ZDHAO 终点里程,R:半径,DQHAO:待求点里程,PY:偏移量4、竖曲线〝QZHAO =〞?J: 〝H+B〞=?B:〝I1=〞?C:〝I2=〞?D:〝R=〞?R:〝T=〞?T: ((D-C)÷100) ÷Abs((D-C) ÷100)→A:Abs(0.5R(D-C) ÷100)→S〝T〞:SJ-T→XJ+T→YLbl 0〝DQ=〞?LIf L<X:Then Goto 1:Else If L﹥Y:Then Goto 1:If End:If End〝GC=〞:B+C(L-J) ÷100+A(L-J+T) ÷(2R) →HGoto 0Lbl 1〝END〞说明:QZHAO:曲中点里程,H+B:曲中点高程,I1:第一坡度,I2:第二坡度,R:半径,T:切线长,DQ:待求点里程。
卡西欧FX5800程序

FX-5800计算器公路测量常用程序本程序由6个主程序、5个次子程序及5个参数子程序组成。
主要用于公路测量中坐标正反算,设计任意点高程及横坡计算,桥涵放样,路基开挖口及填方坡脚线放样。
程序坐标计算适应于任何线型.二、源程序1.主程序1:一般放样反算程序(①正算坐标、放样点至置仪点方位角及距离;②反算桩号及距中距离)程序名:1ZD-XYLb1 0:Norm 2F=1:(正反算判别,F=1正算,F=2反算,也可以改F前加?,改F为变量)Z[1]=90(与路线右边夹角)Prog"THB":F=1=>Goto 1:F=2=>Goto 2Lb1 1:Fix 3:"X=":Locate 6,4,X◢"Y=":Locate 6,4,Y◢Prog"3JS”:Goto 0:Lb1 2:Fix 3:"KM=":Locate 6,4,Z◢"D=":Locate 6,4,D◢Goto 02.主程序2:高程序横坡程序(设计任意点高程及横坡)程序名:2GCLbI 0:Norm 2“KM”?Z:?D:Prog”H”:Fix 3:”H=”:Locate 6,4,H◢“I=”: Locate 6,4,I◢Goto 03.主程序3:极坐放样计算程序(计算放样点至置仪点方位角及距离)程序名:3JSX:Y:1268.123→K(置仪点X坐标)2243.545→L(置仪点Y坐标,都是手工输入,也可以建导线点数据库子程序,个人认为太麻烦)Y-L→E:X-K→F:Pol(F,E):IF J<0:Then J+360→J:Int(J)+0.01Int(60Frac(J))+0.006Frac(60Frac(J)) →J:(不习惯小数点后四位为角度显示的,也可以用命令J◢DMS◢来直接显示) Fix 4:” FWJ=”: Locate 6,4,J◢(不习惯小数点后四位为角度显示的,也可以用命令J◢DMS◢来直接显示)Fix 3:”S=”:Locate 6,4,I◢4.主程序4:涵洞放样程序(由涵中心桩号计算出各涵角坐标、在主程序3中输入置仪点坐标后计算放样点至置仪点方位角及距离)程序名:4JH-XYLbI 0:Norm 290→Z[1](涵洞中心桩与右边夹角,手工输入,也可以修改成前面加?后变为变量)1→F:Prog”THB”:?L:Z[2]-Z[1] →E:X+Lcos(E) →X:Y+Lsin(E) →Y:Fix 3: "X=":Locate 6,4,X◢"Y=":Locate 6,4,Y◢Prog"3JS”:Goto 0:5.主程序5:路基开挖边线及填方坡脚线放样程序(输入大概桩号及测量坐标、地面标高计算出偏移距离、桩号、距中距离、填挖高度)程序名:5FBXLbI 0:Norm 2: 18→DimZ:2→F:90→Z[1]:Prog “THB”:Z:D:”M0”?M:M→Z[4]:D→Z[3]:Prog”6GD”:L→Z[6]:If D<0:Then 0.75-L→D:Goto H:Else L-0.75→D:Goto H:IfEndLbI H:Prog”H”:H-0.03-Z[4] →Z[5]:Z[6] →L:If Z[5]<0:Then –z[5] →G:Goto W:Else Z[5] →G:Goto T:LbI W:Prog “W0”:Z[10]+Z[11] →A: If G>A:Then Goto 1:Else If G>Z[10]:Then Goto 2:Else Goto 3:IfEnd:LbI 1:L+Z[12]+Z[13]+Z[14]+(G-A)×Z[9]+Z[11]×Z[8]+Z[10]×Z[7]:Goto Z:LbI 2:L+Z[12]+Z[13]+(G-Z[10])×Z[8]+Z[10]×Z[7]:Goto Z:LbI 3:L+Z[12]+G×Z[7]:Goto z:LbI T:L+0.5→N:If G>Z[17]:Then (N+Z[18]+(G-Z[17])×Z[16]+Z[17]×Z[15])→S:Goto Z:Else (N+G×Z[15])→S:Goto z:LbI Z:Z[3]→D:Fix 2:Abs(D)-S→T:”L0=”:L Locate 6,4,T◢"KM=":Locate 6,4,Z◢"D=":Locate 6,4,D◢“TW=”: Locate 6,4,Z[5]◢Goto 06.主程序6:路基标准半幅宽度计算程序(对于设计有加宽渐变的有用,如路基宽度无变化,则把此程序直接输入半幅宽度值至L)程序名:6GDProg “G0”Z-C→E:(B-A)×E/S+A→L:L:7.坐标计算次程序(THB)程序名:THB18→DimZ:"KM"?Z:Prog "X0"1÷P→C:(P-R)÷(2HPR) →S:180÷π→E:F=1=>Goto 1:F=2=>Goto 2←┘Lbl 1:?D:Abs(Z-O) →W:Prog "A":X:Y:Goto 3LbI 2:X:Y:X→I:Y→J:Prog "B":O+W→Z:D→D:Goto 3LbI 3:IF F=1Then X:Y:Else Z:D8. 正算子程序(A)程序名:A0.1184634425→A:0.2393143352→B:0.2844444444→N 0.046910077→K:0.2307653449→L:0.5→M:U+W(Acos(G+QEKW(C+KWS))+Bcos(G+QELW(C+LW S))+Ncos(G+QEMW(C+MW S))+Bcos(G+QE(1-L)W(C+(1-L)WS))+Acos(G+QE(1-K)W(C+(1-K)WS))) →X:V+W(Asin(G+QEKW(C+KWS))+Bsin(G+QELW(C+LW S))+Nsin(G+QEMW(C+MWS))+Bsin(G+QE(1-L)W(C+(1-L)WS))+Asin(G+QE(1-K)W(C+(1-K)WS))) →Y:G+QEW(C+WS)+Z[1]→Z[2]:X+Dcos(Z[2])→X:Y+Dsin(Z[2])→Y9. 反算子程序(B)程序名:BG-90→T:Abs((Y-V)cos(T)-(X-U)sin(T)) →W:0→D:Lbl 0:Prog "A":T+QEW(C+W S) →L:(J-Y)cos(L)-(I-X)sin(L)→D:IF Abs(D)<0.01:Then Goto1:Else W+D→W:Goto 0←┘Lbl 1:0→D:Prog "A":(J-Y)÷sin(Z[2]) →D:10.高程计算子程序(H)程序名:HProg “S0”:R:T:C:G:I:C-T→F:Z-F→L:C+T→E:G-TI→Q:If T=O:Then Q+LI→H:Goto 0:Else If Z<F:Then Q+LI→H:Goto 0:Else If Z≤E:Then Q+LI+L2÷2÷R→H:Goto 0:LbI 0:H:If D=0:Then Goto I:Else Prog “I”:H+V→H:Goto I:LbI I:H:I:11.高程超高计算程序(I)程序名:IProg”I0”:W=1=> Goto 0:W=2=>Goto 1:LbI 0:If L=0:Then Abs(D)×M→V:Goto 2:Else Abs(D)×((N-M)×(Z-C)÷L+M)→V:Goto 2:IfEnd: LbI 1:If L=0:Then Abs(D)×M→V:Goto 2:Else Abs(D)×(((3((Z-C)÷L)2-2((Z-C)÷L)∧(3))×(N-M))+M)→V:Goto 2:IfEnd:LbI 2:Abs(D)→E:V÷E→I:I(E-K)→V:12.数据子程序(附后示例)①程序名:X0(坐标计算要素程序)If Z≥25900 And Z≤26615.555:Then 25900→O:11587.421→U:1847.983→V:101。
工程测量放样CASIO fx-5800P 直线正反算坐标计算程序

工程测量放样CASIO fx-5800P 直线正反算坐标计算程序作者:张素辉来源:《城市建设理论研究》2013年第32期【摘要】介绍工程测量放样中CASIO fx-5800P直线正反算计算程序,主要应用于结构物的坐标计算。
【关键词】坐标;计算;CASIO;程序中图分类号:P123 文献标识码:A【引言】对于一个工程测量技术人员来说,能够掌握和运用测量基础知识,正确、熟练地使用计算器(如CASIO fx-5800P)编程和运用,才能在野外方便快捷的计算、复核大地坐标,并能结合全站仪准确、方便的放样。
在此谨以我在施工测量中编辑、调试、实用的CASIO fx-5800P 直线正反算程序奉送读者。
一、主程序名:ZXZFSDeg:Fix 3:20→DimZ↙(设置程序参数)"DK(QD)"?A(输入起点桩号):"X(QD)"?B(输入起点坐标X):"Y(QD)"?C (输入起点坐标X):"X(ZD)"?U(输入终点坐标X):"Y(ZD)"?V↙(输入终点坐标Y)“DJ=”:POL(U-B,V-C):I → M◢(显示直线平距)“FWJ=”:if JGoto0↙ElseJ → N:N▲DMS◢ (显示直线方位角)Goto0 ↙(直线参数设置完成)Lbl 0↙N→F:"1=>XY.2=>DK":"J"?W↙(条件选择:输入数字1为正算,输入数字2为反算)If W=1:Then Goto 1:Else If W=2:Then Goto 2:IfEnd↙Lb1 1↙(正算)"JSDK"?E(输入待求点的桩号):"PJ"?G(输入待求点偏距):"PA"?H↙(输入待求点偏角左-右+)"X=":B+(E-A) ×cos(F)+G×cos(F+H)→X◢"Y=":C+(E-A) ×sin(F)+G×sin(F+H)→Y◢(计算出待测点的坐标X,Y)"CZD(X)"?S ↙(设置全站仪测站坐标X)IfS=0:ThenGoto 1:Else (当测站坐标X输0时,不计算放样数据)"CZD(Y)"?T:↙(设置全站仪测站坐标Y)"FY-PJ=":Pol(X-S,Y-T):I→M◢"FY-FWJ=":If JGoto1↙Else J→Z[1]:Z[1] ▲DMS◢(计算出放样平距及放样坐标方位角)Goto 1↙(正算循环)Lb1 2↙(反算)"X="?K:"Y="?L↙(输入全站仪测量点的坐标X,Y)Pol(K-B,L-C):I→D:If JIf FSin(O)×D→Q↙"DK=":A+Q÷tan(O)→R◢(反算测量点的桩号)"PJ=":sin(O)×D→Q:If FGoto 2↙Else -1×Q→Q◢(反算出测量点距离直线的偏距:负值为左偏,正值为右偏) Goto2↙ ·(反算循环)备注:1、◢为显示指令。
卡西欧5800公路坐标正反算程序

一、坐标正算基本公式 (02)二、坐标反算原理 (04)三、高程数据库录入变换 (05)四、计算器程序 (07)01、ZBZS (坐标正算) (07)02、ZBFS (坐标反算) (08)03、GCJF (高程积分) (09)04、PJFY (坡脚放样) (10)05、JFCX (积分程序) (11)06、ZBFY (坐标放样) (11)07、DT (递推) (12)08、HP (横坡) (13)09、LK (路宽) (14)10、SJKl (平面数据库) (14)IK SJK2 (纵面数据库) (14)12、SJK3 (左路宽度数据库) (15)13、SJK4 (右路宽度数据库) (15)14、SJK5 (横坡数据库) (16)15、SJK6 (下边坡数据库) (16)16、SJK7 (左上边坡数据库) (17)17、SJK8 (右上边坡数据库) (18)五、后记 (19)CASIO 5800计算器公路工程测量程序4 一、正算所涉及的计算公式图表1 在图1中,A点为回旋曲线起点,B点为回旋曲线止点,I点为所求坐标点。
设:A点的X坐标为XA , Y坐标为Y A, A点的切线方位角为α, A点的曲率为PA点的里程为L A, B点的曲率为p 8, B点的里程为L B, I点的曲率为p∣, I点的里A,程为L I O I点的切线角为B o由于回旋线上各点曲率半径Ri和该点至曲线起点的距离L成反比。
故此任意点的曲率为;Q =丄=土(C为常数)(1 )R i C由式(1)可知,回旋曲线任意点的曲率按线性变化,由此回旋曲线上里程为L点的曲率为;iL-I,、Pi = PA + (PB - PJ × I, _ /(2)当曲线右偏时P 8、PA取正值,反之取负值。
设:则有:P i = PA + ML在I 点处取一微段,则有:d β=- = P l d l (单位为弧度)Ri因已知回旋曲线起点A 的切线方位角α ,则里程为Li 点的切线方位角为:a, =a + βi将式(7)代入式(8)得:a i = a + + (单位为弧度)(9) 2对于式(9),当P A =0, M 二0时,则a i =a ,式(9)变成计算直线段上任意 点切线方位角的计算公式;当P A=C (C 为常数),M=O 时,则CIi 二a + P A L,式(9) 变成计算圆曲线上任意点切线方位角的计算公式。
王中伟老师全线正反算坐标程序

一、前言本程序是《CASIO fx-5800P计算与道路坐标放样计算》中道路坐标放样计算程序的升级改进版本。
原道路坐标放样计算程序只基于道路的单个基本型曲线,有效计算范围仅包括平曲线部分和前后的两条直线段,使用时需要输入平曲线设计参数,无坐标反算桩号功能。
改进后的程序名称为:道路中边桩坐标放样正反算程序(全线贯通),增加了可实现全线贯通的数据库功能和坐标反算桩号功能,主要是:1.使用道路平面数据库子程序,可将一段或若干段道路的交点法格式平面参数(可容易从直线、曲线及转角表中获得)以数据库子程序形式输入计算器,程序在计算时省却了输入原始数据的麻烦;2.坐标正算方面,输入桩号即可进行道路的中、边桩坐标计算,若输入了测站坐标,还可同时计算全站仪极坐标放样数据(拨角和平距);3.坐标反算方面,输入平面坐标,即可计算对应的桩号和距中距离(含左右信息);4.对于存在断链的道路,可分段分别编写数据库子程序,然后在主程序中添加一个路段选择的功能即可实现(可参照立交匝道程序中匝道的选择)。
程序的特点:1.可进行中桩坐标的正、反算,程序代码简洁,便于阅读和改写;2.主程序通过调用数据库子程序,省却了使用时输入平面参数的繁琐;3.使用数据库子程序,换项目只需改写数据库子程序,程序通用性强。
二、道路示例项目基本资料基本资料同《CASIO fx-5800P计算与道路坐标放样计算》第6章HY高速公路第2合同段(合同段起止桩号:K4+800~K9+600)。
这里摘取直线、曲线及转角表资料如下(若图片不清晰,请参见参见教材P161附录1):...三、程序代码.. ....注:路线数据库子程序ROAD-DATA1是根据计算示例项目的直曲表编写,大家使用时应按各自项目的直曲表改写或新建。
..四、程序变量清单..五、计算流程示例1.中桩坐标计算示例计算任务:计算HY高速公路K6+100~K6+700段的中桩坐标及切线方位角(桩距20m),并在导线点(2807118.026,474113.687)上架设全站仪,计算各中桩的极坐标放样数据。
计算器坐标反算方位角

计算器坐标反算方位角背景在现实生活中,我们经常会遇到需要计算两点间方位角的问题。
方位角是以北为0度,顺时针方向逐渐增大,最大为360度。
计算两点间方位角可以帮助我们确定方向,对于导航、地理定位等领域非常重要。
而计算器作为常用的工具,如果能够进行方位角的反算,将会极大地提高我们的工作效率。
目标本文将介绍如何使用计算器进行坐标反算方位角的方法。
具体来说,我们将以手持式计算器为例,使用简单的数学公式和步骤,将两点的坐标转化为方位角。
步骤步骤一:确定两点的坐标首先,我们需要确定两点的具体坐标。
假设点A的坐标为 (x1, y1),点B的坐标为 (x2, y2)。
步骤二:计算两点的水平距离和垂直距离接下来,我们需要计算两点之间的水平距离和垂直距离。
水平距离可以通过 x2 - x1 得到,垂直距离可以通过 y2 - y1 得到。
步骤三:计算方位角现在我们可以使用以下数学公式来计算方位角:方位角 = arctan(垂直距离 / 水平距离)这里的 arctan 表示反正切函数,可以通过计算器的函数键或者查表来获得结果。
步骤四:将角度转化为方位计算出的方位角是一个以弧度表示的数值,我们需要将其转化为以北为0度的方位。
具体的转化方法如下:•如果方位角在第一和第四象限(0度到180度),则直接将其作为方位。
•如果方位角在第二和第三象限(180度到360度),则将其转化为以北为0度的方位。
计算方法为:方位 = 360度 - 方位角。
示例假设我们要计算点A坐标为 (3, 4),点B坐标为 (9, 8) 的方位角。
首先,我们计算水平距离和垂直距离:水平距离 = 9 - 3 = 6垂直距离 = 8 - 4 = 4然后,我们计算方位角:方位角= arctan(4 / 6) ≈ 0.588最后,我们将角度转化为方位:因为方位角在第一和第四象限,所以方位≈ 0.588这样,我们就得到了点A和点B之间的方位角。
总结通过上述步骤,我们可以使用计算器进行坐标反算方位角的计算。
pol计算器坐标反算

POL计算器坐标反算介绍在计算机图形学和几何学中,坐标反算是一个常见的问题。
给定一个点在平面直角坐标系中的坐标,我们希望通过一些公式和计算来确定该点所在的位置。
而POL(平面极坐标)是一种用距离和角度来描述点位置的坐标系统。
POL计算器坐标反算就是把一个点的平面直角坐标转换为POL坐标的过程。
本文将介绍POL计算器坐标反算的原理和基本公式,并通过示例详细说明。
原理POL坐标系由两个参数来描述点的位置:距离和角度。
距离表示点到坐标系原点的直线距离,而角度表示该直线与坐标系的X轴正方向之间的夹角。
因此,POL 坐标系可以将平面上的点映射到一个二维极坐标下。
在进行坐标反算时,首先需要计算点的距离和角度。
然后,利用一些基本的三角函数公式,可以将距离和角度转换为平面直角坐标系下的X和Y坐标。
基本公式下面是POL计算器坐标反算的基本公式:1.距离公式:距离d可以通过平面直角坐标系下的点坐标(x,y)计算如下:$$d = \\sqrt{x^2 + y^2}$$2.角度公式:角度θ可以通过平面直角坐标系下的点坐标(x,y)计算如下:$$θ = \\arctan\\left(\\frac{y}{x}\\right)$$3.反算公式:已知距离d和角度θ,可以计算出平面直角坐标系下的点坐标(x,y)如下:$$x = d \\cdot \\cos(θ)$$$$y = d \\cdot \\sin(θ)$$示例假设我们有一个点P,它在平面直角坐标系下的坐标为(3,4),我们想要将其转换为POL坐标。
首先,我们可以使用距离公式计算点P的距离d:$$d = \\sqrt{3^2 + 4^2} = 5$$接下来,我们可以使用角度公式计算点P的角度θ:$$θ = \\arctan\\left(\\frac{4}{3}\\right)≈53.13°$$最后,我们可以使用反算公式计算出点P在平面直角坐标系下的坐标(x,y):$$x = 5 \\cdot \\cos(53.13°)≈3$$$$y = 5 \\cdot \\sin(53.13°)≈4$$因此,点P的POL坐标为(5,53.13°)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、Lbl 3:"1→ZS,2→FS"?QQ=1=>Goto 1:Q=2=>Goto 2Lbl 1:"CE:X"?M:"CE:Y"?F:"JL"?L:"FWJ"?A:Rec(L,A):M+I→C:F+J→DCls"X=":Locate 3,1,C:"Y=":Locate 3,2,D◢Goto 3Lbl 2::"CE:X"?G:"CE:Y"?H:"(HOU)FY:X"?N:"(HOU)FY:Y"?EPol(N-G,E-H)If J<0:Then J+360→Y:Else J→Y:IfEndCls"FY JL=":Locate 10,1,I:"FY FWJ=":Y◆DMS◢Goto 3进入程序运行如下:1→ZS,2→FS? 输入1为正算,2为反算.以输入1为例:CE:X? 测站点X(5796.717)CE:Y? 测站点Y(5212.569)JL? 仪器测得的距离(321.889)FWJ? 仪器测得的方位角(193-41-07)得到:X=5483.966Y=5136.414再按EXE,输2为例:CE:X? 测站点X(5796.717)CE:Y? 测站点Y(5212.569)(HOU)FY:X? 后视或放样的X(5483.966)(HOU)FY:Y? 后视或放样的Y(5136.414)得到:FY JL=321.889FY FWJ=193-41-6.79二、Deg : Fix 3 : “XZ→0:YZ→1”?A : If A = 1: Then Goto 1 : IfEnd ↙If A = 0 : Then “BS→0:XY→1:AND→2:DK→3:L(I)→4 ”?O : IfEnd ↙If O = 4: Then Goto 1 : IfEnd ↙If O = 3: Then Prog “F.2 ”: If X= 0 : Then Goto 1 : IfEnd : IfEnd ↙If O≠1: Then “X1 ”?X : “Y1”?Y : X→Z[11]: Y→Z[12]: “X2 ”?P : “Y2”?Q : Pol( P-X , Q-Y) : If J﹤0 : Then J + 360→J : IfEnd : Cls : “S12= ”: Locate 6 ,1, I : “B12= ”: J ►DMS◣1→B : IfEnd ↙If O = 1: Then “XY(0) →0: ≠﹥1”? B: IfEnd ↙Lbl 1 : If A = 1 And O = 3 :Then Prog “F.2 ”: IfEnd : Prog “Q.1 ”子程序PPQX (给定综合曲线属性)“ZQX →0: *** →1: *** →2 ******* ”?C ↙If C=0: Then 100→Z[98]: n0 →Z[99]: IfEnd ↙If C=1: Then m1→Z[98]: n1 →Z[99]: IfEnd ↙If C=2: Then m2→Z[98]: n2 →Z[99]: IfEnd ↙*******Prog “PQX ”其中: mi为第i条综合曲线矩阵变量起始单元,(第1条综合曲线矩阵变量起始单元应自100开始,以便其他程序临时使用100以前的矩阵变量,综合曲线中每一基本单元需8个矩阵存储单元);ni为第i条综合曲线中基本单元数,每增加一个条综合曲线则增加一行If C=*******→Z[99]: IfEnd↙语句。
还应注特别意,原有程序中的矩阵变量定维语句DimZ应取消,只要原有程序中的矩阵变量定维不大于100,原有程序的运行不受影响。
子程序Q . 5 (建立数据库)Deg : Fix 5 ↙0→I : “N ”? W : W →Z[99]: “Z[MIN]”? V : V→Z[98]↙Lbl 1 : “NO.I= ”: I ◣Lbl C : V + 8 I→G ↙“→DK ”?A : A→Z[G]↙“→X ”?B : B→Z[G + 1]↙“→Y ”?C : C→Z[G +2]↙“→AT ”?D : D→Z[G +3]↙“→(-1Y+1) ”?K : K→Z[G +4]↙“→L ”?E : E→Z[G +5]↙“→R1 ”?F : F→Z[G +6]↙“→R2”?O : O→Z[G +7]↙Lbl 2 : “JX→1: NO→0 : OK→2”? M : If M = 2 : Then Goto 3 : IfEnd : If M = 1: Then Goto C : IfEnd ↙I + 1→I : Goto 1 ↙Lbl 3 : “END ”子程序Q . 6Lbl 1 : “S ”? W : If W = 0 : Then Goto 2 : IfEnd ↙I-W→W : Cls : “⊿S= ”: Locate 5 , 1 , W : “BP= ”: J ►DMS◣Goto 1 ↙Lbl 2 : Cls : “OK ”子程序Q.1If X = 0 And O = 3 : Then Goto 2 : IfEnd ↙Lbl 1 : Z[98]→I : Z[99]→J : “→DKP ”? S ↙If S = -1: Then Prog “JH . ZJ ”: Goto 1 : IfEnd ↙(加桥台转轴时)If S = -2: Then Prog “ZH . 2 ”: Goto 1 : IfEnd ↙(加涵通转轴时)If S = 0: Then Goto 2 : IfEnd : If S﹤Z[I ]: Then “DKP<MIN ”◣Goto 1 : IfEnd : If S > Z[I + 8 J ]: Then “DKP>MAX ”◣Goto 1 : IfEnd ↙If O≠4 And B ≠0 : Then “→B ”? V : V : Prog “J ”: T→U : “→(-+)D ÷2 ” ? N : Else 0 →N : IfEnd ↙Prog “Q.2 ”: Goto 1 ↙Lbl 2 : “END ”子程序Q . 2If O≠3 : Then “→”: IfEnd ↙0→I : Z[98]+ 8 →M ↙If S ≥Z[M-8 ]And S ≤Z[M ]:Then Goto 1 : IfEnd ↙Lbl 2 : I +1 →I : M + 8 →M ↙If S ≤Z[M ]:Then Goto 1 : Else Goto 2 : IfEnd ↙Lbl 1 : If O = 3 : Then I →B :IfEnd : M→Z[27]: If O≠4 : Then Prog “Q. 3”: Else “L(I) , I = ”: I ◣Cls : “MIN = ”: Locate 6 , 1 , Z[Z[98]+8 I ]: “MAX = ”: Locate 6 ,2 , Z[Z[98]+8 I +8]:I→B : IfEnd ↙子程序Q . 3If O = 3 And U = 0 : Then B→I : IfEnd ↙Z[98]+8 I →G ↙Z[G]→Z ↙Z[G +1]→Z[1]: Z[G +2]→Z[2]: Z[G +3]→Z[3]↙Z[3]:Prog “J ”: T→Z[3]↙Z[G +4]→Z[4]: Z[G +5]→M : 1÷Z[G +6]→Z[5]: 1÷Z[G +7]→Z [6]↙Z[6]-Z[5]→Z[6]: S-Z→D ↙If O = 3 : Then 0→N : IfEnd : Prog “Q . 4 ”↙子程序Q .4 (正算)Lbl 0 : 0→I : 0→E:0→F : 0→G : 0→H ↙Lbl 1 : I + 1→I : Z[3]+ Z[4]( ( I D÷12) ( Z[5]+ I D Z[6]÷24÷M ) ( 180÷л) →W : If I ﹤12: Then If Frac ( I÷2 ) ﹥0 : Then E + cos ( W ) →E : F + sin ( W ) →F : Else G + cos ( W ) →G : H + sin ( W ) →H : IfEnd : IfEnd ↙If I ﹤12 : Then Goto 1:IfEnd ↙Z[1]+(D÷36)( cos ( Z[3]) + cos ( W ) + 2G + 4E ) + N cos ( U + W ) →P ↙Z[2]+(D÷36)( sin ( Z[3]) + sin ( W ) + 2H + 4F ) + N sin ( U + W ) →Q ↙If O = 3 : Then Goto 2 : IfEnd ↙If O≠0 : Then Cls : “XP = ”: Locate 5 , 1 , P : “YP = ”: Locate 5 , 2 , Q : “AT = ”: W►DMS◣IfEnd ↙Z[27]→I : If Z[I]-S = 0 And Z[I + 1]= 0 And N = 0 : Then P →Z[I + 1]: Q→Z[I + 2]: W : Prog “H ”: T→Z[I +3]: IfEnd ↙If O≠1: Then Pol( P-Z[11], Q-Z[12]) : If J < 0 : Then J+360→J : IfEnd : Cls : “SP= ”: Locate 5 , 1 , I : “BP= ”: J ►DMS◣Prog “Q. 6 ”: IfEnd ↙Lbl 2子程序F . 2 (反算)“ZH.D(LI) →0 : NO→1”? U ↙Lbl 2 : If U = 0 : Then “I ”? B : IfEnd ↙Z[98]+ 8 Z[99]→M ↙If X = 0 : Then Z[13]→X : IfEnd : “X ”? X : If X = 0 : Then Goto 3 : IfEnd ↙“Y ”? Y : 1 →Z[8]↙“=〉”↙If U = 1 : Then -√( ( X-Z[M + 1]) ²+ (Y-Z[M +2]) ²) →Z[7]: Z[7]+Z[M]→S : Prog“Q . 2”: IfEnd ↙Z[98]+ 8 B→M : Z[M +3]: Prog“J ”: T-90→T ↙( Y-Z[M +2]) cos (T) -( X-Z[M + 1]) Sin (T) →Z[7]↙If U =1 And Abs ( Z[7]) ≤0.01: Then -0.01 →Z[7]: IfEnd ↙Z[7]→D : Z[M]+ D →S :If S > Z[M +8]: Then Z[M +8]→S ; IfEnd ↙If U = 0 : Then Prog“Q . 3”: Else Prog“Q . 2”: IfEnd ↙“=〉”↙Lbl 1 : ( Y-Q ) cos (W-90)-(X-P) sin (W-90) →Z[8]↙Z + Z[7]+ Z[8]→S↙If Abs ( Z[8]) ≥0.0001: Then Z[7]+ Z[8]→D : Prog“Q .4”: D→Z[7]: Goto 1: IfEnd ↙If U =1: Then If S + 0.01< Z : Then “DKP≠”: S ◣If B< Z[99]-1 : Then B-1→B : Z[Z[98]+ 8B ]→I : Z→J : Else Z→I : Z[Z [98]+ 8 Z[99]]→J : IfEnd : “L(I)= ”: B ◣Cls : “MIN= ”: Locate 6 , 1 , I : “MAX= ”: Locate 6 , 2 , J : “END, =〉ZH.D(LI)”◣X →Z[13]: 0→X : 3→O: Goto 3 : IfEnd: IfEnd ↙If U =0: Then If S< Z-0.01 : Then “DK<MIN,L→(I-1) ”◣Goto 2 : IfEnd : If S> Z[Z[98]+ 8(B+1) ]+ 0.01: Then “DK>MAX , L→(I+1) ”◣Goto 2 : IfEnd : IfEnd ↙Cls : “DKP=”: Locate 6 ,1, S : X-P→P : If P =0: Then ×10-9→P : IfEnd : Pol( P , Y-Q) : If sin(W-J)>0: Then -I→I : IfEnd : “D÷2= ”: Locate 6 , 2, I : Goto 2↙Lbl 3子程序JAns ÷. 36 -16 ( Int ( Ans ) ) ÷9-Int (100 (Ans-Int (Ans ) ) )÷90→T子程序H. 6 4 Int ( Ans )+. 36 Ans + . 004 Int ( ( 60 ( Ans-( Int (Ans ) ) →T为了实现桥台转轴坐标计算,现(2009.04.19)加一个子程序如下:子程序JH . ZJ (桥台转轴)“=〉B ”? V : V : Prog“J : W + T→T ↙Lbl 1 : “=〉(-Y +) D ”? N : N = 0 =〉Goto 2 : “=〉(-→+) S ”? S↙Pol(N , S ) : Rec( I ,T-J ) ↙Cls : “X = ”: Locate 6, 1 , I + P : “Y = ”: Locate 6 , 2 , J + Q ◣Goto 1 ↙Lbl 2 : “OK ”◣在子程序Q.1 中语句Lbl 1 : Z[98]→I : Z[99]→J : “→DKP ”? S ↙后加If S = -1: Then Prog “JH . ZJ ”: Goto 1 : IfEnd ↙(加桥台转轴时)就可以了,(2009.04.19以加,见绿色标注语句。