CASIO fx-5800P线元法坐标正反算程序V2.0说明:本程序适用于卡西欧计算器 CASIO fx-5800P,可对全线贯通坐标正反算、竖曲线高程计算。
该程序可计算任意线型,包含(直线、圆曲线、缓和曲线、卵形曲线)等,还可以能通过坐标反推该点里程和距中线距离,适用测量员专用。
主程序名:ABCYT第1步Deg:Fix 3:10→DimZ第2步Lbl 3:"1.DK=>XY":"2.XY=>DK":"Q"?W:"K0+"?S:Prog"ABCYTSJ":If P=0:Then 10^(45)→P:IfEnd:If R=0:Then 10^(45)→R:IfEnd第3步1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:If W=1:Then Goto 1:Else Goto2:IfEnd第4步Lbl 1:"E"?Z90=N:Abs(S-O)→W:Prog "ABCYTZ"第5步Cls:"F=":Locate 3,1,F°:"X=":Locate 3,2,X:"Y=":Locate 3,3,Y◢第6步Prog"ABCYTSQX":Cls:"H=":Locate 3,1,H◢第7步1→W:90→N:Goto 3第8步Lbl 2:?X:?Y:X→I:Y→J:Prog"ABCYTF":O+W→S第9步Cls:"K=":Locate 3,1,S:"E=":Locate 3,2,Z◢第10步2→W:Goto 3正算子程序名:ABCYTZ第1步0.1739274226→A:0.3260725774→B:0.0694318442→K:0.3300094782→L第2步1-L→F:1-K→M第3步U+W×(A×cos(G+Q×E×K×W×(C+K×W×D))+B×cos(G+Q×E×L×W×(C+L×W×D))+B×cos(G+Q×E×F×W×(C+F×W×D))+A×cos(G+Q×E×M×W×(C+M×W×D)))→X第4步V+W×(A×sin(G+Q×E×K×W×(C+K×W×D))+B×sin(G+Q×E×L×W×(C+L×W×D))+B×sin(G+Q×E×F×W×(C+F×W×D))+A×sin(G+Q×E×M×W×(C+M×W×D)))→Y第5步G+Q×E×W×(C+W×D)→F:F+ N→Z[1]第6步X+Z×cos(Z[1])→X:Y+Z×sin(Z[1])→Y反算子程序名:ABCYTF第1步Lbl 2:(S-O)→W:0→Z:Prog "ABCYTZ":F-90→Z[9]:(J-Y)×cos(Z[9])-(I-X)×sin(Z[9])→Z[10]第2步If Abs(Z[10])>0.001:Then S+Z[10]→S:Goto 2:Else Goto 1:IfEnd第3步Lbl 1:(Y-J)÷sin(Z[9])→Z数据库名:ABCYTSJ第1步Goto1第2步Lbl 1:If S<7586.707 Or S>13346.96:Then Cls:Locate 2,2,"PQX":Locate 4,3,"CHAOXIAN":Locate 10,4,"→Stop"◢第3步Stop:IfEnd第4步Lbl 1:IF S<7946.707:Then 98°56′56″→G:7586.707→o:3378605.445→U:453648.704→V:0→P:4500→R:360→H:1→Q:Return:IfEnd第5步Lbl 1:IF S<11766.03:Then 101°14′26″→G:7946.707→o:3378544.714→U:454003.518→V:4500→P:4500→R:3819.323→H:1→Q:Return:IfEnd第6步Lbl 1:IF S<12126.03:Then 149°52′11″→G:11766.03→o:3376389.890→U:457018.324→V:4500→P:0→R:360→H:1→Q:Return:IfEnd第7步Lbl 1:IF S<13346.96:Then 152°09′41.68″→G:12126.03→o:3376073.846→U:457190.654→V:0→P:0→R:1220.93→H:0→Q:Return:IfEnd第n步……………………………………………………数据输入说明:第1步Goto1第2步Lbl 1:If S<本条线路起点里程S>本条线路止点里程Cls:Locate 2,2,"PQX":Locate 4,3,"CHAOXIAN":Locate 10,4,"→Stop"◢第3步Stop:IfEnd第4步Lbl 1:If S<本线元止点里程:Then线元起点切线方位角→G:线元起点桩号→O:线元起点坐标X→U:线元起点坐标Y→V:线元起点半径(直线为0、曲线为半径)→P:线元止点半径(直线为0、曲线为半径)→R:线元长度→H:线元转向(左转为-1、右转为1、直线为0)→Q:Return:IfEnd第n步Lbl 1:每增加一行则为增加一个线元要素。
竖曲线子程序名:AB CYTSQX第1步S→C:Prog "ABCYTSQXSJ":A→Z[1]:B→Z[2]:C→Z[3]:If (Z[1]-Z[2])<0:Then 1→Z[8]:Else -1→Z[8]:IfEnd第2步R×Abs(Z[1]÷100-Z[2]÷100)→L:L÷2→T:T^(2)÷2÷R→E:K-T→Z[4]:Z[4]+L→Z[5]第3步If Z[3]≤Z[4]:Then H-(K-Z[3])×Z[1]÷100→X:Goto 3:Else If Z[3]≥Z[4] And Z[3]<K:Then H+(Z[3]-K)×Z[1]÷100→Z[6]:(Z[3]-Z[4])^(2)÷2÷R→Z[7]:Z[6]+Z[7]×Z[8]→X:Goto 3:Else If Z[3]=K:Then H+E×Z[8]→X:Goto 3:Else If Z[3]>K And Z[3]≤Z[5]:Then H+(Z[3]-K)×Z[2]÷100→Z[6]:(Z[5]-Z[3])^(2)÷2÷R→Z[7]:Z[6]+Z[7]×Z[8]→X:Goto 3:Else If Z[3]≥Z[5]:Then H+(Z[3]-K)×Z[2]÷100→X:IfEnd:Lbl 3:X→H:Return竖曲线数据库:AB CYTSQXSJ第1步Goto 1第2步Lbl 1:If S<5000.000 Or S>11211.997:Then Cls:Locate 2,2,"SQX":Locate 4,3,"CHAOXIAN":Locate 10,4,"→Stop"◢第3步Stop:IfEnd第4步Lb1 1:If S<5900.000:Then 5800.000→K:323.527→H:20000→R:-0.5800→A:0.4200→B:Return:IfEnd第5步Lb1 1:If S<8982.000:Then 8910.000→K:336.589→H:20000→R:0.4200→A:-0.3000→B:Return:IfEnd第6步Lb1 1:If S<11211.997:Then 11187.000→K:329.758→H:20000→R:-0.3000→A:-0.5500→B:Return:IfEnd第n步……………………………………………………数据输入说明:第1步Goto 1第2步Lbl 1:If C<本条线路竖曲线起点里程C>本条线路竖曲线止点里程n Cls:Locate 2,2,"SQX":Locate 4,3,"CHAOXIAN":Locate 10,4,"→Stop"◢第3步Stop:IfEnd第4步Lbl 1:If C<本条竖曲线圆直桩号或止点桩号:Then 变坡点桩号→K:变坡点高程→H:竖曲线半径→R:第一纵坡(百分数单位)→A:第二纵坡(百分数单位)→B:Return:IfEnd第n步Lbl 1:每增加一行则为增加一个竖曲线要素。
程序输入说明:本程序中除了浅黄底色O表示为字母,其余均为数字0,输入程序时每输入完成1步则按EXE换行,需认真、仔细,子程序输入方式和主程序相同,若字体小请按住CTRL键然后再滑动鼠标滚动条进行缩放页面大小。
本程序中多数指令在FUNCTION中(2:COMPLX、3:PROG)查找。
Deg和Fix 按SHIFT再按MODE SETUP查找。
程序数据库可采用“曲线坐标计算程序VBA”自动生成fx-5800P数据库。
程序演示步骤:《坐标正算》运行主程序ABCYT1.DK=>XY2.XY=>DKQ? 1 (输入1为坐标正算、输入2为坐标反算)DK?= 10000(计算里程)W?= 5(边桩偏距:左为负,右为正)α?= 90(边桩偏角:正交为90°,斜交自拟)F= 127°23ˊ02.02″(计算切线方位角)X= 3377702.697(计算结果坐标X)Y= 455855.490(计算结果坐标Y)H= 333.319(计算竖曲线高程)说明:按EXE键返回主程序界面。
《坐标反算》运行主程序ABCYT1.DK=>XY2.XY=>DKQ? 1 (输入1为坐标正算、输入2为坐标反算)DK?= 10000(计算里程)X? 3377700.567(输入反算点坐标X)Y? 455950.689 (输入反算点坐标Y)K= 10076.066 (反算结果里程)S=-51.759 (反算结果偏距:负为偏左,正为偏右)说明:按EXE键返回主程序界面。