匝道坐标计算程序
- 格式:xls
- 大小:19.00 KB
- 文档页数:1
二、程序清单立交匝道中边桩坐标放样正反算程序包括一个主程序和三个子程序(不包含数据库子程序)。
1.主程序:RAMP..2.子程序1:RAMP-ZBJS功能:使用Gauss-Legendre积分公式(四结点)计算匝道坐标。
..3.子程序2:RAMP-XS功能:显示计算结果。
.特别说明:在程序第2行,Locate 4, 3, J后面有一个度的符号(可按“度分秒”的那个按键输入),注意不要漏了。
.4.子程序3:RAMP-DATA功能:调用相关匝道的数据库子程序。
..三、程序变量清单立交匝道中边桩坐标放样正反算程序变量清单见下表。
..四、程序运行流程RAMP程序运行流程示意图如下:...1.互通匝道数据库子程序格式说明每条互通匝道建立一个数据库子程序,子程序名称格式建议为:RAMP-DAT1-1RAMP-DAT1-2RAMP-DAT1-3……本来,笔者为了不建立太多的数据库子程序,曾将尝试将一条互通所有匝道的数据全部写在一个子程序RAMP-DATA1中(参照路线计算ROAD-2程序采用的数据库子程序的办法),后来发现:一是数据太过庞大,查找和修改数据相当麻烦(按上、下键按得手指发酸),二来逻辑判断语句太多,影响计算速度,因此舍弃。
每一段线元写成一行数据,格式如下:2.立交匝道参数辅助计算EXCEL程序的使用说明前面介绍了线元的数据格式,这里小结一下,每条线元需要确定以下数据:(1)线元起点的X/Y坐标;(2)线元起点的切线方位角;(3)线元起、终点的曲率(半径的倒数,左偏为负);(4)线元起、终点的桩号。
以上参数,要数第(3)种参数最难确定,因为在设计图表中没有直接标注,需要根据其它相关参数进行计算确定。
除第(3)种参数外,其它三种参数的确定就比较简单了,因为他们基本可以在匝道的设计图表中直接获取。
3.互通匝道数据库子程序的编写为说明清晰起见,笔者将每条匝道的每个线元都一一进行编号,比如a匝道的第一条线元编为“a-1”,读者可结合立交匝道设计图表进行判读。
主程序名称(4800-4850)A“XA”:B“YB”:C“CA”:D“RA”:E“RB”:F“DKA”:G“DKB”换行D≠0=>D=1÷D:换行E≠0=>E=1÷E:换行Lb1 1:{H,O,R}换行H“DKI”:O“DL”:R“DR” 换行Lb1 0 换行P=(E-D)÷Abs(G-F)换行Abs(H-F)>Abs(G-F)=>Q= Abs(G-F):≠=>Q= Abs(H-F):换行I=P×Q 换行J=C+(I+2D)×Q×90÷π 换行M=C+(I÷8+2D)×Q×45÷(4π)换行N=C+(3I÷8+2D)×Q×135÷(4π)换行U=C+(5I÷8+2D)×Q×225÷(4π)换行V=C+(7I÷8+2D)×Q×315÷(4π)换行K=C+(I÷4+2D)×Q×45÷(2π)换行W=C+(I÷2+2D)×Q×45÷π 换行Z=C+(3I÷4+2D)×Q×135÷(2π)换行X=A+Q÷24×(cosC+4×(cosM+cosN+cosU+cosV)+2×(cosK+cosW+cosZ)+cosJ)换行Y=B+Q÷24×(sinC+4×(sinM+sinN+sinU+sinV)+2×(sinK+sinW+sinZ)+sinJ)换行U=X+O×cos(J-90)换行V=Y+O×sin(J-90)换行W=X+R×cos(J+90)换行Z=Y+R×sin(J+90)换行Abs(H-F)>Abs(G-F)=> Goto 3:换行H“DKI=” ◢ fx4850输入改为“DKI=”:H ◢X“X=” ◢ fx4850输入改为“X=”:X ◢Y“Y=” ◢ fx4850输入改为“Y=”:Y ◢U“XL=” ◢fx4850输入改为“XL=”:U◢V“YL=” ◢fx4850输入改为“YL=”:V◢W“XR=” ◢fx4850输入改为“XR=”:W◢Z“YR=” ◢fx4850输入改为“YR=”:Z◢Goto 1 换行Lb1 3 换行A=X:B=Y:D=E:F=G:C=J 换行{E,G}换行E“RB”:G“DKB”换行E≠0=>E=1÷E:换行Goto 0计算器显示及输入方法:XA?线型起算点的X坐标。
高速公路坐标高程计算程序本软件简要说明:一、平曲线计算(主程序)1、J为起算点里程,C、D为起算点的X、Y坐标,F为起算点的切线方位角,R为圆曲线半径(左偏取负,右偏取正),A、B为第一、第二缓和曲线回旋参数,O为圆曲线长度,Ki为该分段的终点里程;2、对于直线段或圆曲线段,起算点可取直线或圆曲线上的任意一点;3、对于带第一、第二缓和曲线的平曲线段,起算点应取HY点;4、K为所求点的里程,T、P为第一偏距、偏角,S、Z为第二偏距、偏角,偏角取从该点的切线顺时针旋转的夹角;5、分段法则:直线单独分段;单一的圆曲线单独分段;缓和曲线1+圆曲线+缓和曲线2为一个整体单独分段,若不存在第一或第二缓和曲线(即不完全缓和曲线)仍然可以计算,A或B可取任意不为零的值;若不存在圆曲线,则O取零;6、无论任何时候A、B不能取零,否则可能导致被零除的错误;7、F、Q切线方位角输入输出均为度.分秒的格式,例如153°24′05.24″=153.240524。
Q改变时,可按照新方位角为基准,结合第一第二偏距、偏角重新计算所求点;8、输入平曲线参数后,默认为计算全线坐标,可修改来计算某段曲线,默认间距也可修改;9、可参考CAD图《平曲线计算图例》;10、生成的中桩CAD脚本设置成在世界坐标系下生成,注意的是世界坐标系与大地测量坐标系的区别是XY坐标是互换的,否则画出的图形与实际相反。
先打开CAD,设置好图层名称、颜色,并设置为当前层,然后单击CAD的工具==>运行脚本==>选中生成的脚本文件即可。
11、输出的坐标结果可以导入到EXCEL中,操作办法为:打开EXCEL,然后把坐标数据复制到单元格里,然后单击数据==>分列==>选中分隔符号==>下一步==>选中TAB键和逗号==>下一步==>完成即可。
下一次可直接在此表中粘贴,数据自动分列。
二、缓和曲线计算(辅助程序)1、本程序为辅助程序,用来从ZH点或HZ点计算整条完全的缓和曲线,若不知道HY点X、Y、Q参数,可用此程序计算出来,然后输入平曲线参数;2、参数设置参考平曲线计算;3、导出到EXCEL的办法同平曲线计算;三、直线计算(辅助程序)1、本程序为辅助程序,若已知P1(X1,Y1),P1-->P2的距离I及方位角J(度.分秒格式),可计算坐标P2(X2,Y2)。
一、前言应网友西北狼(232471254)的要求,改写了《CASIO fx-5800P计算与道路坐标放样计算》中立交匝道坐标放样计算程序。
主要在原带数据库进行立交匝道中边桩坐标及放样数据计算的基础上,增加了坐标反算功能。
改进后的程序名称为:立交匝道坐标放样正反算程序(带数据库功能),主要功能有:1.使用立交匝道数据库子程序,可将一个互通立交的若干条匝道写入数据库子程序,程序在计算时省却了输入原始数据的麻烦;2.坐标正算方面,选择匝道后,输入桩号即可进行匝道的中、边桩坐标计算,若输入了测站坐标,还可同时计算全站仪极坐标放样数据(拨角和平距);3.坐标反算方面,选择匝道后,输入平面坐标,即可计算对应的桩号和距中距离(含左右信息)。
程序的特点:1.使用线元积分法进行中桩坐标的正、反算,程序代码简洁,便于阅读和改写;2.主程序通过调用数据库子程序,省却了使用时再输入匝道参数的繁琐;3.使用数据库子程序,换项目只需改写数据库子程序,程序通用性强。
二、立交匝道示例项目基本资料基本资料同《CASIO fx-5800P计算与道路坐标放样计算》第6章MN互通式立交。
这里摘取部分关键图表资料如下:MN互通式立交线位数据图(由于图片大小的限制,此处不清晰,参见《CASIO fx-5800P计算与道路坐标放样计算》P162附录2).-.-. ...三、立交匝道线元数据的整理经整理,匝道a、b、c线元数据如下(d匝道和MR匝道略)。
.--. -.-.四、程序代码 .-. 注:根据实际使用情况,在桩号反算时,若桩号比较大(匝道起始桩号一般为0),还是让用户输入一个估算的对应桩号为好,因此程序第29、30行分别改为(每行结尾处省略回车符):29行:"X"?F: "Y"?G: "K"?P30行:F→I: G→J.. .. -.-.d匝道和MR匝道数据库子程序略。
. -. 五、程序变量清单 .--..六、计算流程示例1.坐标正算示例计算任务:计算MN互通式立交c匝道K0+315.3中桩坐标及切线方位角,以及该桩左侧4.5米、右侧6米的边桩坐标,假设在导线点(2807544.340,475613.014)上架设全站仪,计算这三个点位的极坐标放样数据。
公路通用复化辛普森公式匝道点位坐标计算4800源程序------------------杭浦高速临平互通---------------------本文利用的是计算公路匝道点位坐标的复化辛普森通用公式数学模型,集直线、圆曲线、回旋线通用,占字符内存较小,计算精度不限的程序一、运行变量名称说明:V=1、2分别进入坐标计算、桩号反算K1、K2-------曲线起点、终点里程F0-----------曲线起点方位角R1、R2------曲线起点、终点半径(ρ左-右+,0为直线)X0、Y0-------曲线起点、终点坐标M------------求和累积次数n的2倍(偶数),精度迭代次数K------------曲线待求点里程BP-----------求点左右偏距(左-右+)ANG-------- -求点的右斜交角X、Y---------曲线求得坐标FW-----------待求点的即时切线方位角XF、YF-------为需求桩号的点坐标DL、K+O、LP分别为桩号误差、求得桩号、左右偏距(左-右+)当曲线的设计半径较小时,为保证点位计算精度,M(即程序中n的2倍)的取值可适当的大些。
M为偶数,直线时M=2即可,经计算M=16即可满足半径为60的小半径曲线精度。
二、曲线计算程序名: Prog "CURVE"Defm 4V"V=1 2"Lbl 0:{KLW}Lbl 4Q"OPT:M0AB1C2D3E4FH5G6I7J8CR9"=0=>Prog "M"△Q=1=>Prog "AB"△Q=2=>Prog "C"△Q=3=>Prog "D"△Q=4=>Prog "E"△Q=5=>Prog "FH"△Q=6=>Prog "G"△Q=7=>Prog "I"△Q=8=>Prog "J"△Q=9=>Prog "CR"△A"K1"B"K2"C"F0"D"R1"E"R2"F"X0"G"Y0"D≠0=>I=1/D:≠=>I=D△E≠0=>J=1/E:≠=>J=E△AbsD+AbsE=0=>M=2:≠=>M=16△V=2=>L=0:W=90△KL"BP"W"ANG"N=0:Z[1]=0:Z[2]=0:Z[3]=0:Z[4]=0 进入坐标迭代计算Lbl2N=N+1:H=2(K-A)/M:R=NH/2+A:R=C+180/π*(I+(J-I)/2(B-A)*(R-A))*(R-A)Int(N/2)=N/2=>Z[1]=Z[1]+cosR:Z[2]=Z[2]+sinR:≠=>Z[3]=Z[3]+cosR:Z[4]=Z[4]+ sinR△N=M=>Goto3:≠=>Goto 2Lbl3X=F+H/6*(cosC+4Z[3]+2Z[1]-cosR)+Lcos(R+W)Y=G+H/6*(sinC+4Z[4]+2Z[2]-sinR)+Lsin(R+W)V=2=>Goto 6△X"X="◢Y"Y="◢R"FW"=R-360Intg(R/360◢Goto 0Lbl 6 进入桩号求算Pol(T"XF"-X,U"YF"-YO=Icos(J-RAbsO≤1e-4=>O"DL"◢K=K+O◢O"LP"=Isin(J-R◢{TU}Goto 6:≠=>K=K+O:L=0:Goto 4三、数据文件:线元要素数据文件每行为一个线元段,逐句执行赋值,直至不满足、运行完成。
使 用 说 明1、本工作簿共含四张工作表,第一张表为使用说明;第二张表为数据录入(曲线数据库);第三张表为曲线段张表为曲线任意点坐标正反算.使用前请认真阅读使用说明。
2、数据录入表的使用:你可将全线路或标段的各线段设计参数依序录入表中。
序号列不需输入,表格根据录入本表设计有供输入310行的线段点参数的单元区间,完全满足全线或标段全程计算需要。
①、桩号输入:按普通数值输入,表格自动显示为代公里标示的格式。
(全程可逆向输入) ②、切线方位角输入:如:182°25′36.2″按 182.25362 输入。
(曲线转向自动判断、曲线属性自动判断③、半径输入:直线段不作规定;圆曲线输入设计半径值;缓和曲线接直线端输入“1”,接圆曲线端输入圆半曲线相接于公切点时,应在第二半径列输入作为下一曲线段起点计算的半径值。
(此类情况可发生在复曲线或反曲④、断链:断链值按长正短负输入;处理在直线末端。
程序自动计算断链桩号。
直线段大于1.2公里时,应分多⑤、曲线段中边桩坐标计算的选择:你可在录入表右上方的黄色单元格中输入需要计算的线段序号,程序自动在中进行计算。
如:输入“5”,程序自动选择5-6序号段进行计算。
3、线段中边桩坐标计算表的使用:打开此表,在逐桩栏输入任意数值或字符,在左边垂距和右边垂距中输入数中边桩坐标,不输入边桩垂距,不计算边桩点坐标;整桩取值:直线段按25或50米;曲线段按5、10、20、25、504、任意点坐标正反算表的使用:①、正算:可直接计算全线范围内的有效桩号值中边桩坐标。
(有桩号范围提示)一次只能进行一个桩号的计②、反算:只能进行一个曲线段中的桩号反算。
方法:在正算栏输入需要反算的曲线段区间的任意桩号值,程作为反算依据,在反算栏输入曲线点的坐标值,该点的桩号自动计算并显示,误差小于3毫米。
一次计算一个点。
③、放样计算:可对正算的桩号点(包括中边桩)自动进行放样计算,得到的放样参数为:以曲线起点为置镜零方向的偏距和偏角。
教案示例佳木镇E匝道坐标计算详解示例图纸:①平曲线表②逐桩坐标表一部分一、图纸分析该条匝道两个交点,而且每个交点都存在对于的缓和曲线,而且第一缓和曲线和第二缓和曲线不相等,所以判断它是非普通的三单元曲线,使用线元法计算坐标。
二、分解图纸线元要素得到下面的简图:BP点(桩号0)—HY 点(桩号43.16)之间为一段缓和曲线,参数A=70,根据完整缓和曲线参数等式A²=L*R,70²≠43.16*60,所以该条缓和曲线为非完整缓和曲线,那么BP点为YH点,圆曲线半径根据非完整缓和曲线参数等式A^2=[(R大*R小) ÷(R大-R小)]*Ls,所接圆曲线半径为127.25或者39.254。
(根据公式R大=(A^2*R小÷(A^2- R小* Ls)R小=(A^2*R大)÷(A^2+R大* Ls))R取正值。
软件演示:HY点(桩号43.16)—YH点(桩号103.377)之间为一段圆曲线,半径R=60.YH点(桩号103.377)—HY点(桩号147.388)之间为一段缓和曲线,该段缓和曲线夹在两段圆曲线之间,为非完整缓和曲线,起终点半径为各段的圆曲线半径。
HY点(桩号147.388)—YH点(桩号194.823)之间为一段圆曲线。
YH点(桩号194.823)—EP点(桩号298.030)之间为一段缓和曲线,缓和曲线参数A=130,根据完整缓和曲线参数等式A²=L*R,130²≠103.207*160,所以该条缓和曲线为非完整缓和曲线,那么EP 点为YH点,圆曲线半径根据非完整缓和曲线参数等式A^2=[(R大*R小) ÷(R大-R小)]*Ls,所接圆曲线半径为6989.25或者80.926。
(根据公式R大=(A^2*R小÷(A^2- R小* Ls)R小=(A^2*R大)÷(A^2+R大* Ls))R取正值。
一、名称:立交匝道中桩坐标计算EXCEL程序二、运行平台:计算机中,安装有EXCEL2003/2007软件三、程序功能:1.输入较少的匝道参数即可计算匝道全部主点参数,且易于同设计文件比照校对;2.能批量生成指定间距的中桩,避免手工输入的麻烦;3.瞬间计算完成指定桩号的中桩坐标和切线方位角,计算结果便于进一步制作报表输出;4.可生成匝道线型绘制数据,简单操作即可在AUTOCAD中生成匝道线型。
四、使用步骤:1.工程实例介绍一个立交匝道实例,并以此为例介绍程序使用步骤。
实例还是来源于《CASIO fx-5800P计算与道路坐标放样计算》中的立交匝道(见教材第6章,139页)匝道整体图:把其中的A匝道提取出来:A匝道相关的参数表也提取出来:.2.打开EXCEL计算程序,输入A匝道的相关参数图中浅绿色部分是输入的原始数据部分。
这里原始数据的输入是难点和关键,一定要准确验证,否则后面的工作全是无用功。
这里就数据输入作详细解读如下:(1)第一行,“匝道”后面的单元格可输入匝道编号,这个不参与计算,仅作提示,使界面清晰明了。
(2)数据第一列,是节点栏,“节点”是我起的名字,含义是两种不同线元交界的点,如ZH、ZY、HZ、GQ、YZ等特征点都是节点,匝道的起、终点也是节点,注意QZ不是节点。
这一栏就填节点的名称,注意不要漏了。
(3)节点桩号栏。
这个在设计文件上可以找到,需要强调的是输入时按数字输入,如输入153.194,回车后会自动显示为K0+153.194格式,千万不可按桩号格式K**+***的格式输入,否则会出错。
(4)半径1、半径2两栏。
节点除匝道起、终点外,都是对前后两个线元起承接作用的点,一般情况下,其曲率半径是连续的,但也有例外,如ZY点,节点前承直线终点,半径无穷大,后接圆曲线,半径为R。
因此,在节点处曲率半径连续的情况下,就在半径1中填写半径值,半径2中空着就行(当然填一个与半径1一样的值也没事),而当节点出曲率半径不连续的情况下,就分别在半径1和半径2中相应填写两个不同的半径值。
高速公路线路(缓和曲线、竖曲线、圆曲线、匝道)坐标计算公式一、缓和曲线上的点坐标计算已知:①缓和曲线上任一点离ZH点的长度:l②圆曲线的半径:R③缓和曲线的长度:l④转向角系数:K(1或-1)⑤过ZH点的切线方位角:α⑥点ZH的坐标:xZ ,yZ计算过程:说明:当曲线为左转向时,K=1,为右转向时,K=-1,公式中n的取值如下:当计算第二缓和曲线上的点坐标时,则:l为到点HZ的长度α为过点HZ的切线方位角再加上180°K值与计算第一缓和曲线时相反x Z ,yZ为点HZ的坐标切线角计算公式:二、圆曲线上的点坐标计算已知:①圆曲线上任一点离ZH点的长度:l②圆曲线的半径:R③缓和曲线的长度:l④转向角系数:K(1或-1)⑤过ZH点的切线方位角:α⑥点ZH的坐标:xZ ,yZ计算过程:说明:当曲线为左转向时,K=1,为右转向时,K=-1,公式中n的取值如下:当只知道HZ点的坐标时,则:l为到点HZ的长度α为过点HZ的切线方位角再加上180°K值与知道ZH点坐标时相反x Z ,yZ为点HZ的坐标三、曲线要素计算公式公式中各符号说明:l——任意点到起点的曲线长度(或缓曲上任意点到缓曲起点的长度)l1——第一缓和曲线长度l2——第二缓和曲线长度l——对应的缓和曲线长度R——圆曲线半径R1——曲线起点处的半径R 2——曲线终点处的半径P——曲线起点处的曲率1——曲线终点处的曲率P2α——曲线转角值四、竖曲线上高程计算已知:①第一坡度:i(上坡为“+”,下坡为“-”)1(上坡为“+”,下坡为“-”)②第二坡度:i2③变坡点桩号:SZ④变坡点高程:HZ⑤竖曲线的切线长度:T⑥待求点桩号:S计算过程:五、超高缓和过渡段的横坡计算已知:如图,第一横坡:i1第二横坡:i2过渡段长度:L待求处离第二横坡点(过渡段终点)的距离:x 求:待求处的横坡:i解:d=x/Li=(i2-i1)(1-3d2+2d3)+i1六、匝道坐标计算已知:①待求点桩号:K②曲线起点桩号:K③曲线终点桩号:K1④曲线起点坐标:x0,y⑤曲线起点切线方位角:α⑥曲线起点处曲率:P(左转为“-”,右转为“+”)⑦曲线终点处曲率:P(左转为“-”,右转为“+”)1求:①线路匝道上点的坐标:x,y②待求点的切线方位角:αT计算过程:注:sgn(x)函数是取符号函数,当x<0时sgn(x)=-1,当x>0时sgn(x)=1,当x=0时sgn(x)=0。
Cls :"1Z 2A 3B"?→I ↙(注:此处""内为线路名,有几条线路就加入几条!)Cls:"K Or –K To Shu"?K:If K≥0:Then↙I=1=>Prog"P. Z"↙I=2=>Prog"P. A"↙I=3=>Prog"P. B"↙………………………(注:此处必须与上述""内为线路名和下面的数据库子程序名对应,有几条线路就加入几条!)Mat B[1,1]→A: Mat B[1,2]→L: Mat B[1,3]→U: Mat B[1,4]→V: MatB[1,5]→W: Mat B[1,6]→P: Mat B[1,7]→Q: Mat B[1,8]→G↙Else Cls:"K0"?A:"KN"?L :"X0"?U :"Y0"?V :"F0"?W :"R0"?P :"RN"?Q:"ZX:-1,+1,0"?G:IfEnd :Cls↙1→O: Prog "XY-B"↙Cls:"1.ZS 2.FS"? →I: I=2=>Goto 3↙Cls:"XC"?H:"YC"?Z↙LbI 1 : Cls:"K×+×××"?K↙If K>L Or K<A : Then Cls: Locate 6,2,"K OUT !"◢Stop: IfEnd↙LbI 2: Cls:90→B: 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↙360Frac((M+360)÷360→M↙Pol(X-H,Y-Z : 360Frac((J+360)÷360→J↙2→O: Prog "XY-B":Goto 2↙LbI 3 : Cls: "X"?C:"Y"?D↙LbI 4 : If K>L Or K<A : Then Cls: Locate 6,2,"K OUT !"◢Stop:IfEnd↙Prog "XY-A"↙(D-Y)sin(M)+(C-X)cos(M)→H↙If Abs(H)>X10-3 :Then K+H→K:Goto 4:IfEnd↙(D-Y)÷cos(M)→T↙3→O: Prog "XY-B":Goto 3↙子程序1名: XY-A5→N: G(Q-1-P-1)÷Abs(L-A)→F: Abs(K-A)÷N→R: 90R÷π→S:W+(FNR+2GP-1)NS→M:1→E↙U+R÷6×(Cos (W)+Cos (M) +4∑(Cos (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(Cos (W+((EFR+2GP-1)ES,E,1,(N-1)))→X ↙V+R÷6×(sin (W)+sin (M) +4∑(sin (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(sin (W+((EFR+2GP-1)ES,E,1,(N-1)))→Y↙子程序2名: XY-BCls :Fix 3:If O=1:Then "XY RESULTS:": "K0=":"KN=":"F0=": Locate 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:Th en↙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:M▼DMS◢IfEnd↙Cls :"K×××=":"S=": Locate 6,1, K : Locate 4, 2, I :"F=":J:J▼DMS◢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取正值。
匝道坐标计算程序(辛甫生公式)
L1 LbI0:{EG}:A“XA”:B“YA”:C“CA”:D“1/RA”:E“1/RB”:F“KA”:G“KB”
L2 LbI1:{HORS}:H“KI”:O“DL”:R“DR”:S“PJ”:H>G => Goto2△
L3 P=(E-D)/Abs(G-F):Q=Abs(H-F):I=P×Q:T=D+I
L4 J=C+(I+2D)Q×90/π⊿M=C+(I/4+2D)Q×45/(2π):N=C+(3I/4+2D)Q×135/(2π)
L5 K=C+(I/2+2D)Q×45/π
L6 X=A+Q(cosC+cosJ+4(cosM+cosN)+2cosK)/12⊿
L7 Y=B+Q(sinC+sinJ+4(sinM+sinN)+2sinK)/12⊿
L8 U“XL”=X+Ocos(J-180+S)⊿V“YL”=Y+Osin(J-180+S)⊿
L9 W“XR”=X+Rcos(J+S)⊿Z“YR”=Y+Rsin(J+S)⊿
L10 A=X:B=Y:C=J:D=T:F=H:Goto1
L11 LbI2:A=X:B=Y:D=E:F=G:C=J:Goto0
数据输入说明:
① XA、YA、CA分别为A点(起始点)的X、Y坐标及方位角。
② 1/RA、1/RB分别为A点和B点的曲率,以1/R表示。
曲线左偏时取“-”;曲线右偏时取“+”;直线时为0;缓和曲线时: 1/RA为0或是〒1/RA、1/RB为0或是〒1/RB;圆曲线时均为〒1/R。
【左“-”右“+”】
③ KA、KB分别为曲线原起点A和终点B的里程桩号。
④ XL、YL、XR、YR分别为左边桩和右边桩的X、Y坐标。
⑤ DL、DR分别为左、右边桩距中桩的水平距离。
⑥ 当一个曲线计算完后,即KI>KB时,程序显示1/RB和KB,此时需输入下一个曲线原终点的曲率和桩号。
⑦ 计算无缓和曲线时,不能由直线段直接计算而应将KA、1/RA输入LR点桩号和〒1/R。
⑧ S为偏角,定义为路线前进方向顺时针旋转到的夹角。