CASIOfx5800p积木法坐正反算程序 .docx

上传人:牧羊曲112 文档编号:3154303 上传时间:2023-03-11 格式:DOCX 页数:5 大小:39.35KB
返回 下载 相关 举报
CASIOfx5800p积木法坐正反算程序 .docx_第1页
第1页 / 共5页
CASIOfx5800p积木法坐正反算程序 .docx_第2页
第2页 / 共5页
CASIOfx5800p积木法坐正反算程序 .docx_第3页
第3页 / 共5页
CASIOfx5800p积木法坐正反算程序 .docx_第4页
第4页 / 共5页
CASIOfx5800p积木法坐正反算程序 .docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《CASIOfx5800p积木法坐正反算程序 .docx》由会员分享,可在线阅读,更多相关《CASIOfx5800p积木法坐正反算程序 .docx(5页珍藏版)》请在三一办公上搜索。

1、CASIOfx5800p积木法坐正反算程序 Casio5800线元法匝道坐标正反算放样程序 本程序由一个主程序2.XY和两个子程序构成及各个线路的线元矩阵数据库组成,运行时只需运行主程序即可! 本程序采用复化辛普森公式为核心,采用积木法线元定位思路架构,多线路共存,程序开始选择线路后K Or K To Shu?提示时,执行输入一个定位桩号用于定位所在线元坐标起点切线方位角计算,为了编写数据库做准备用的,故此时手输入情形下程序只可单独正算不可进行反算的!等用手工输入单算将所有线元数据准备完毕编写为数据库时即可任意角正反算的),后面的坐标正、反算均在该线元范围内进行,该线元要素只在程序开始时运行一

2、次,避免了每次计算桩号都要重新定位线元、计算线元要素的麻烦,适当的提高了正反计算速度,虽然存在每次执行程序只能在一个线元计算范围内计算,要计算另一个线元范围的桩号,要重新执行程序的缺点,但比起由此带来的优势,这是微不足道的;其实当K OUT!提示时只需连续两次EXE重新定位即可计算! 线元定位技术的采用,结合线元计算桩号范围的确定,可圆满解决公路匝道曲线中的断链情况;关于此程序断链的处理:断链前后的数据编写到一个数据库中,运行时只需记住断链前后某一个特定桩号来定位断链前后线元即可开始正常的断链前后的正反算了的。 数据库子程序采用矩阵变量的形式,使数据组织更加简洁,输入更加便捷; 程序考虑了调用

3、数据库子程序和手工输入线元数据两种方法。 本程序采用线元定位思路故而专为应对匝道坐标计算而设,当然主线上的单交点平曲线计算也可使用的,但单交点曲线运用该程序计算的弊端是由于数据库太长占用计算器空间字节太多,故建议用交点法处理单交点曲线减少数据库容量,当然在单交点曲线线路中当不完整缓和曲线时,存在时此段不完整缓和曲线采用此线元法解决未尝不可! 关于下面代码中字母O和数字0,分不清者建议到word中使用编辑-查找功能自己就可区分出来! 主程序名: 2.XY ClrMat:Deg:Fix 3 Cls :1Z 2A 3B?I (注:此处内为线路名,有几条线路就加入几条!) Cls:K Or K To

4、Shu?K:If K0:Then I=1=ProgP. Z I=2=ProgP. A I=3=ProgP. B (注:此处必须与上述内为线路名和下面的数据库子程序名对应,有几条线路就加入几条!) Mat B1,1A: Mat B1,2L: Mat B1,3U: Mat B1,4V: Mat B1,5W: Mat B1,6P: Mat B1,7Q: Mat B1,8G Else Cls:K0?A:KN?L :X0?U :Y0?V :F0?W : R0?P :RN?Q:ZX:-1,+1,0?G:IfEnd :Cls 1O: Prog XY-B Cls:1.ZS 2.FS? I: I=2=Goto

5、3 Cls:XC?H:YC?Z LbI 1 : Cls:K+?K If KL Or KA : Then Cls: Locate 6,2,K OUT ! Stop: IfEnd LbI 2: Cls:90B: Cls:RJ Or 0 To K?B:B=0 =Goto 1:Z?T Prog XY-A X+Tcos(M+B)X Y+Tsin(M+B)Y Pol(X-H,Y-Z : 360Frac(J+360)360J 2O: Prog XY-B:Goto 2 LbI 3 : Cls: X?C:Y?D LbI 4 : If KL Or KA : Then Cls: Locate 6,2,K OUT !

6、 Stop:IfEnd Prog XY-A (D-Y)sin(M)+(C-X)cos(M)H If Abs(H)0.1 :Then K+HK:Goto 4:IfEnd (D-Y)cos(M)T 3O: Prog XY-B:Goto 3 子程序1名: XY-A 5N: G(Q-P)AbsF: AbsNR: 90RS: W+(FNR+2GP-1)NSM:1E U+R6(Cos (W)+Cos (M) +2+2X V+R6(sin (W)+sin (M) +2+2Y 子程序2名: XY-B Cls :Fix 3:If O=1:Then XY RESULTS: K0=:KN=: F0=: Locate

7、 5,2,A : Locate 5,3,L : Locate 5,4,W Cls :X0=:Y0=:R0=:RN=: Locate 5,1,U : Locate 5,2,V : Locate 5,3,GP : Locate 5,4,GQ IfEnd If O=2:Then Cls :K=:Z=:X=:Y=: Locate 6,1, K : Locate 4, 2, T : Locate 4,3, X : Locate 4,4, Y If T=0 :Then Cls :QF(Z)=: Locate 8,1, M:MDMS IfEnd Cls :K=:S=: Locate 6,1, K : Loc

8、ate 4, 2, I : F=:J:JDMS IfEnd If O=3:Then X=:Y=:K=:Z=: Locate 4,1,C: Locate 4, 2, D : Locate 6,3,K :Locate 4,4,T IfEnd:Cls 线路线元数据库子程序格式: 数据库采用给矩阵变量Mat B赋值的形式,使数据组织更加简洁,极大的减少了线路数据库子程序的输入量,节约了计算器空间 程序说明: 程序线元判断原则: (1) 以道路中线的前进方向区分左右; (2) 当所求点位于中线时,Z=0;当位于中线左侧时,Z取负值;当位于中线右侧时,Z取正值。 (3) 当线元为直线时,其起点、终点的曲率

9、半径为无穷大,以10的45次代替输入10x45。 (4) 当线元为圆曲线时,无论其起点、终点与什么线元相接,其曲率半径均等于圆弧的半径。 (5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替输入10x45;与圆曲线相接时,曲率半径等于圆曲线的半径。终点与直线相接时,曲率半径为无穷大,以10的45次代替输入10x45;与圆曲线相接时,曲率半径等于圆曲线的半径。 (6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。终点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径

10、。 输入与显示简单说明 1.ZS 2.FS选1正算 选2反算 K0? KN? R0? RN?F0?X0? Y0?ZX? 分别为线元起点桩号 、终点桩号、起点半径、终点半径、起点切线方位角、起点X坐标、起点Y坐标、线元转向。 XC ? YC? 输入置镜点即测站的X,Y坐标 K+? 输入所求的桩号 Z ? 输入所求点距中线的边距(在中线输零,左负右正) RJ? 输入边桩时左右边桩连线与线路前进方向中桩切线的右交角 X =、Y = 计算得出的所求点的左、中、右 的X Y坐标 QF(Z)= 计算得出所求点的中桩切线方位角 F= 计算得出置镜点到测点的方位角 S= 计算得出置镜点到测点的水平距离 X= 反算输入所求点的X坐标 Y= 反算输入所求点的Y坐标 K= 计算得出求点所对应的里程 Z= 计算得出求点到所对应的里程的垂直距离 郑重声明: 提供一种编程解决断链的思路而已 没啥技巧可言! 保证源码完整计算无误! 转载复制请注明出处,原作者保留一切版权和解释权,不得擅自修改核心代码和程序结构,包含不会使用者代码输入错误等否则所造成的一切错误后果,作者将不承担任何责任!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号