曲线道路坐标计算(Excel)
- 格式:docx
- 大小:263.23 KB
- 文档页数:16
在Excel中,可以使用以下公式来计算道路坐标:
计算两点间的距离:
使用距离公式:D = sqrt((x2-x1)^2 + (y2-y1)^2)。
其中,x1、y1是第一个点的坐标,x2、y2是第二个点的坐标。
计算直线距离(两点间的最短距离):
使用直线距离公式:D = abs(y2-y1) + abs(x2-x1)。
计算斜率:
使用斜率公式:m = (y2-y1) / (x2-x1)。
计算角度:
使用角度公式:θ = arctan(m)。
其中,arctan是反正切函数,m是斜率。
计算坐标变换(平移和旋转):
使用平移公式:x' = x + tx,y' = y + ty。
其中,tx和ty是平移量。
使用旋转公式:x' = x * cos(θ) - y * sin(θ),y' = x * sin(θ) + y * cos(θ)。
其中,cos和sin是余弦和正弦函数,θ是旋转角度。
这些公式可以根据具体需求进行组合和调整,以计算道路坐标和其他相关参数。
请注意,这些公式假设坐标系为笛卡尔坐标系,并且输入的坐标值是实数。
如果使用其他坐标系或涉及复数计算,可能需要使用不同的公式或函数。
小白自学ExcelVBA道路坐标高程计算程序流程1声明1.1 本人是个工作时间不长测量施工员。
1.2听说想轻松愉快的干好测量得学门编程,又听说ExcelVBA是个简单的可视化的常用的……1.3 本人很懒,面对厚厚的全是“昏天暗地”代码的ExcelVBA教科书籍,实在是没心没力。
其实俺还是懂点儿VB编程的(学校学过“=”是赋值,if、while、end的意思,嘿嘿,还有画窗体图框,其他的就都还给老师了)。
1.4 谷歌、度娘,是咱的好帮手。
1.5 仰望的存在,神一般的存在,无私的化身!道路中边桩坐标计算程序120424.xls(王中伟”教授”QQ:595077)曲线坐标计算程序VBA 4.6.xls(陈超”中铁”QQ:295188316)陈师傅的VBA代码乍一看感觉比王老师的让人头痛,怎么说咱们也是个有理想有目标的人,要啃就啃硬骨头!就选~~~嘿嘿~~~王老师的程序吧!1.6 道路中边桩坐标计算程序120424.xls代码获取。
王老师、陈师傅担心不懂编程的人,不小心修改代码导致程序错误,设置了vba密码(个人认为),其次我跟他们不熟,没有正大光明的要的密码,于是求助谷歌度娘,这个关于VBA 密码破解,于是很不厚道的得到了密码,为了方便本次学习,又很不厚道的把道路中边桩坐标计算程序120424.xls的密码贴出来(df750726),神人勿怪呀!2 代码理解ing…我们通过密码打开vba代码窗口,大家可以先把每个表格打开浏览一下代码,是不是感觉很短呀,感觉应该是超级链接的意思,嘿嘿,主要的代码在模块“lx”里,打开下,代码多吧,这就是咱们要肯的骨头。
现在咱们冲呀!2.1 第一段代码理解貌似第一段代码是定义的意思“定义π值”、'定义桩号点”、“'定义坡段”、“'定义基本曲线”①Public Const PI As Double = 3.14159265358979谷歌翻译:Public Const PI As Double公共常量PI 作为双精度浮点型百度百科:双精度浮点数双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个字节(64位)存储空间,其数值范围为1.7E-308~1.7E+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“D”或“d”表示。
公式解析一.坐标转换X =A +N COSα-E SINαY =B +N SINα+E COSαN=(X-A) COSα±(Y-B)SINαE=(Y-B)COSα±(X-A)SINαA,B为施工坐标系坐标原点α为施工坐标系与北京坐标系X轴的夹角(旋转角)即大地坐标系方位角X,Y为北京坐标值 N,E为施工坐标值二.方位角计算1.直线段方位角: α=tanˉ¹ [(Yb-Ya)/(Xb-Xa)]2.交点转角角度: α=2 tanˉ¹ (T/R)计算结果①为﹢且<360,则用原数;②为﹢且>360,则减去360;③为﹣,则加上180.3.缓和曲线上切线角: α=ƟZH±90°*Lo²/(π*R* Ls)α= Lo/(2ρ)=Lo²/(2 A²)=Lo²/(2R*Ls)ρ—该点的曲率半径4.圆曲线上切线角: α=ƟHY±180°*Lo/(π*R)ƟZH—直缓点方位角, ƟHY—缓圆点方位角,注:以计算方向为准,左偏,取"﹣";右偏,取"﹢"。
左偏,则第一段缓和曲线和圆曲线上取"﹣",第二段缓和曲线上取"﹢" ;右偏,则第一段缓和曲线和圆曲线上取"﹢",第二段缓和曲线上取"﹣" .。
符号说明:A—回旋线参数(A²=R* Ls) Ls—缓和曲线长度R—曲线半径Lo—曲线长度:计算点位到特殊点(ZH、HY、YH、HZ)的长度三.坐标值计算1.直线段坐标计算公式:直线两端点A.B间距离为S;A点坐标为A(Xa, Ya);方位角为αXb= Xa+S*cosαYb= Ya+S*sinα2.缓和曲线及圆曲线坐标计算公式:①缓和曲线坐标计算公式:X=XZH+(Lo-Lo^5/(40*R^2*Ls^2)+Lo^9/(3456*R^4*Ls ^4)-Lo^13/(599040*R^6*Ls^6)+Lo^17/(175472640*R ^8*Ls^8))*cosα-(Lo^3/(6*R*Ls)-Lo^7/(336*R^3*L s^3)+Lo^11/(42240*R^5*Ls^5)-Lo^15/(9676800*R^7 *Ls^7)+Lo^19/(3530096640*R^9*Ls^9))*sinαY=YZH+(Lo-^5/(40*R^2*Ls^2)+Lo^9/(3456*R^4*Ls^4 )-Lo^13/(599040*R^6*Ls^6)+Lo^17/(175472640*R^8 *Ls^8))*sinα+(Lo^3/(6*R*Ls)-Lo^7/(336*R^3*Ls^ 3)+Lo^11/(42240*R^5*Ls^5)-Lo^15/(9676800*R^7*L s^7)+Lo^19/(3530096640*R^9*Ls^9))* cosα符号说明:XZH—直缓点X坐标值 YZH—直缓点Y坐标值 A—回旋线参数(A²=R* Ls)Lo—计算点位到特殊点的长度 Ls—缓和曲线长度R—曲线半径α—方位角注:式中,紫色部分为缓和曲线任意点的坐标增量(支距坐标)。
道路坐标计算excel道路坐标计算是一种常见的数据处理方法,用于计算道路上的各个位置的经纬度坐标。
这种计算方法可以帮助我们确定道路上的具体位置,方便导航和定位等应用。
在实际的道路坐标计算中,常用的方法是使用Excel进行处理。
Excel是一款功能强大的电子表格软件,可以方便地进行数据处理和计算。
下面将介绍如何使用Excel进行道路坐标计算。
首先,我们需要准备好待处理的数据。
在Excel中,可以将道路划分为多个路段,并为每个路段标注起点和终点的位置。
这些位置可以用经度和纬度来表示。
接下来,我们可以使用Excel中的函数进行坐标计算。
常用的函数包括经纬度转换函数和距离计算函数。
1. 经纬度转换函数在进行坐标计算时,经纬度间的转换是非常重要的一步。
Excel提供了很多函数来进行经纬度转换,例如DEGREES、RADIANS、SIN、COS、TAN等函数。
通过这些函数的组合,我们可以将经纬度导航到计算坐标。
2. 距离计算函数除了经纬度转换,计算两点之间的距离也是道路坐标计算的重要一环。
Excel提供了很多函数来计算两点之间的距离,例如ACOS、COS、SIN、SQRT等函数。
通过这些函数的组合,我们可以计算出两点之间的距离。
在进行坐标计算之前,我们需要对数据进行预处理。
这包括将经纬度数据转换为数字格式,并确定坐标轴的单位。
在Excel 中,我们可以使用“格式单元格”功能,将经纬度数据转换为数字格式,以便进行后续计算。
接下来,我们可以使用Excel的函数来进行道路坐标计算。
以计算两点之间的距离为例,可以使用类似以下的公式:=ACOS(COS(RADIANS(90-纬度1))*COS(RADIANS(90-纬度2))+SIN(RADIANS(90-纬度1))*SIN(RADIANS(90-纬度2))*COS(RADIANS(经度1-经度2)))*6371在这个公式中,纬度和经度分别用纬度1、经度1、纬度2、经度2来表示。
路线坐标计算软件
ROAD COORDINATE CALCULATING SOFTWARE
Copyright © 2001
版权所有 All Rights Reserved
1.本计算软件基于EXCEL开发,使用VBA编程,为保证顺利使用,请将宏安全性设为“中”;2.本软件适用于基本型曲线的道路的计算,但不适用于卵形曲线、立交匝道的计算;
3.作者开发有适用于卵形曲线、立交匝道计算的计算软件,需要者请与作者联系;
4.本软件供工程一线技术人员免费使用,但版权和改编权属于作者;
5.本软件使用简单,使用者有任何问题,可与作者联系,作者尽可能提供帮助;
6.用户若有支助意向,请与作者联系。
EXCEL快速计算任何难度的道路中线、边线坐标主程序Public i As IntegerPublic pi As DoubleSub TP()Dim ii As IntegerDim k(1000) As DoubleDim xzq, yzq, kq, xzh, yzh, kzh, xjd, yjd, kjd, khy, kyh As Double'直线区域pi = 3.14159265358979xzq = 71862.642yzq = 63474.651kq = 0 '因为直线连接终点为ZH点,与圆曲线起点为同一点,所以在直线区域不定义ZH点参数'直线区域'曲线区域xzh = 71858.3267yzh = 63375.2684kzh = 99.4763xhz = 71909.3687yhz = 63283.8076 '曲线区域定义内容有:ZH(坐标、里程)、HZ(坐标、里程)、JD(坐标、里程)khz = 212.3392 'R(半径)、LS(缓和曲线长度)、HY(里程)、YH(里程)xjd = 71855.658yjd = 63313.806kjd = 160.9966ls = 30r = 75khy = 129.4763kyh = 182.3385'曲线区域i = 2 '从第二格开始读取数据所以定义I=2ii = 1 '桩号从第一个开始启用,所以定义II=2Dok(ii) = Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 1) '定义桩号等于读取数据If Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 1) = "" Then Exit Do '当没有数据读取时退出循环If k(ii) < kq Then '若计算点超过计算起点给予提示并退出程序MsgBox ("猪啊!!你的输入的桩号居然超过计算起点桩号")Exit SubElseIf k(ii) <= kzh Then '若计算点在ZH点前,则进入直线程序Call zx(xzq, yzq, kq, xzh, yzh, kzh, k(ii))ElseIf kzh < k(ii) And k(ii) <= khy Then '若计算点在ZH和HY之间则调入前段缓和曲线程序Call qhhqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseIf khy < k(ii) And k(ii) <= kyh Then '若计算点在HY和YH之间则调入圆曲线程序Call yqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseIf kyh < k(ii) And k(ii) <= khz Then '若计算点在YH和HZ之间则调入后段缓和曲线程序Call hhhqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseMsgBox ("笨啊!!数据已超出计算范围了") '若出现超出范围的桩号则给与提示并退出程序Exit SubEnd Ifi = i + 1ii = ii + 1LoopEnd Sub直线模块Sub zx(ByV al xzq As Double, ByV al yzq As Double, ByV al kq As Double, ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ParamArray k())fw = fwj(xzh, xzq, yzh, yzq) '首先调入方位角程序计算直线方位角x = xzq + (k(ii) - kq) * Cos(fw) '然后根据桩号和长度计算出坐标值y = yzq + (k(ii) - kq) * Sin(fw)zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub圆曲线模块Sub yqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - kzh) '计算ZH点(因为以直缓点起算)到待求桩号的弧度长度ly = l - ls / 2 '计算圆弧长度p = ls ^ 2 / 24 / r - ls ^ 4 / 2688 / r ^ 3 '曲线内移值m = ls / 2 - ls ^ 3 / 240 / r ^ 2 '曲线切线长增量u = r * Sin(ly / r) + m '偏量坐标计算v = r * (1 - Cos(ly / r)) + p'调入方位角fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nq = n(fwq, fwh) '计算偏角方向,左偏为-1右偏为1'计算坐标x = u * Cos(fwq) - nq * v * Sin(fwq) + xzhy = u * Sin(fwq) + nq * v * Cos(fwq) + yzhd = (90 * (2 * l - ls) / pi / r) * pi / 180 '计算圆曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwq + d * nq '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub前缓和段Sub qhhqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - kzh) '计算测点到ZH点的距离u = l - l ^ 5 / 40 / r ^ 2 / ls ^ 2 + l ^ 9 / r ^ 4 / ls ^ 4 / 3456 '计算偏量v = l ^ 3 / 6 / r / ls - l ^ 7 / 336 / r ^ 3 / ls ^ 3'用公式二则以下两计算可省略(圆曲线和后缓和曲线也同理)Rem t = Atn(v / u)Rem s = Sqr(u ^ 2 + v ^ 2)'调入方位角计算fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nq = n(fwq, fwh) '计算偏角方向,左偏为-1右偏为1'结果计算Rem x = xzh + s * Cos(fwq + nq * t)Rem y = yzh + s * Sin(fwq + nq * t)x = u * Cos(fwq) - nq * v * Sin(fwq) + xzh '经过测试,计算结果中的两种公式计算结果是一样的y = u * Sin(fwq) + nq * v * Cos(fwq) + yzhd = (90 * l * l / pi / r / ls) * pi / 180 '计算缓和曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwq + d * nq '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub后缓和段模块Sub hhhqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - khz) '计算测点到HZ点的距离(后缓和曲线是以HZ点为起点)u = l - l ^ 5 / 40 / r ^ 2 / ls ^ 2 + l ^ 9 / r ^ 4 / ls ^ 4 / 3456 '计算偏量v = l ^ 3 / 6 / r / ls - l ^ 7 / 336 / r ^ 3 / ls ^ 3Rem t = Atn(v / u)Rem s = Sqr(u ^ 2 + v ^ 2)'调入方位角计算fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nh = n(fwh, fwq) '计算偏角方向,左偏为-1右偏为1(注意:因为是从后HZ点起算,所以必须将HZ点方位角放在前ZH放在后)'结果计算Rem x = xzh + s * Cos(fwq + nq * t)Rem y = yzh + s * Sin(fwq + nq * t)x = xhz - (u * Cos(fwh) - nh * v * Sin(fwh)) '经过测试,计算结果中的两种公式计算结果是一样的y = yhz - (u * Sin(fwh) + nh * v * Cos(fwh))d = (90 * l * l / pi / r / ls) * pi / 180 '计算缓和曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwh + d * nh '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub偏角模块Function n(ByV al fw1 As Double, ByV al fw2 As Double) As Doublepj = fw1 + pi - fw2 '前进的右角pjIf pj - pi > 0 Then '当右角pj-pi 〉0时为左偏否则为右偏n = -1Else: n = 1End IfEnd Function方位角模块Function fwj(ByV al x1 As Double, ByV al x2 As Double, ByV al y1 As Double, ByV al y2 As Double) As Double'计算增量x0 = x1 - x2y0 = y1 - y2'由增量判断方位角所在象限,不同象限取不同的值If x0 = 0 And y0 > 0 Thenfwj = pi / 2 '当在大地坐标中偏量在X轴上的值时ElseIf x0 = 0 And y0 < 0 Thenfwj = 3 * pi / 2 '当在大地坐标中偏量在负X轴上的值时ElseIf x0 < 0 Thenfwj = Atn(y0 / x0) + pi '当在大地坐标中偏量在第二第三象限上的值时ElseIf x0 > 0 And y0 < 0 Thenfwj = Atn(y0 / x0) + 2 * pi '当在大地坐标中偏量在第四象限上的值时Elsefwj = Atn(y0 / x0) '当在大地坐标中偏量在第一象限上的值时End IfEnd Function度分秒模块Function dfm(ByV al ao As Double) As V ariantao = ao * 180 / pi '将弧度转化为度jd = Int(ao) '计算度jf = Int(ao * 60 - jd * 60) '计算分jmx = (ao - jd - jf / 60) * 3600 '计算秒jm = Left(jmx, 8) '因为拆分出来的秒数经常占到十多位,所以只取秒数的前八位dfm = jd & "°" & jf & "′" & jm & "″" '连接度分秒End Function边桩公式(此公式在电子表格中直接输入):=B2+J2*COS(D2+RADIANS(L2)+PI()) =C2+J2*SIN(D2+RADIANS(L2)+PI()) =B2+K2*COS(D2+RADIANS(M2)) =C2+K2*SIN(D2+RADIANS(M2))=B3+J3*COS(D3+RADIANS(L3)+PI()) =C3+J3*SIN(D3+RADIANS(L3)+PI()) =B3+K3*COS(D3+RADIANS(M3)) =C3+K3*SIN(D3+RADIANS(M3))=B4+J4*COS(D4+RADIANS(L4)+PI()) =C4+J4*SIN(D4+RADIANS(L4)+PI()) =B4+K4*COS(D4+RADIANS(M4)) =C4+K4*SIN(D4+RADIANS(M4))=B5+J5*COS(D5+RADIANS(L5)+PI()) =C5+J5*SIN(D5+RADIANS(L5)+PI()) =B5+K5*COS(D5+RADIANS(M5)) =C5+K5*SIN(D5+RADIANS(M5))=B6+J6*COS(D6+RADIANS(L6)+PI()) =C6+J6*SIN(D6+RADIANS(L6)+PI()) =B6+K6*COS(D6+RADIANS(M6)) =C6+K6*SIN(D6+RADIANS(M6))=B7+J7*COS(D7+RADIANS(L7)+PI()) =C7+J7*SIN(D7+RADIANS(L7)+PI()) =B7+K7*COS(D7+RADIANS(M7)) =C7+K7*SIN(D7+RADIANS(M7))=B8+J8*COS(D8+RADIANS(L8)+PI()) =C8+J8*SIN(D8+RADIANS(L8)+PI()) =B8+K8*COS(D8+RADIANS(M8)) =C8+K8*SIN(D8+RADIANS(M8))=B9+J9*COS(D9+RADIANS(L9)+PI()) =C9+J9*SIN(D9+RADIANS(L9)+PI()) =B9+K9*COS(D9+RADIANS(M9)) =C9+K9*SIN(D9+RADIANS(M9))=B10+J10*COS(D10+RADIANS(L10)+PI()) =C10+J10*SIN(D10+RADIANS(L10)+PI()) =B10+K10*COS(D10+RADIANS(M10)) =C10+K10*SIN(D10+RADIANS(M10))=B11+J11*COS(D11+RADIANS(L11)+PI()) =C11+J11*SIN(D11+RADIANS(L11)+PI()) =B11+K11*COS(D11+RADIANS(M11)) =C11+K11*SIN(D11+RADIANS(M11))=B12+J12*COS(D12+RADIANS(L12)+PI()) =C12+J12*SIN(D12+RADIANS(L12)+PI()) =B12+K12*COS(D12+RADIANS(M12)) =C12+K12*SIN(D12+RADIANS(M12))=B13+J13*COS(D13+RADIANS(L13)+PI()) =C13+J13*SIN(D13+RADIANS(L13)+PI()) =B13+K13*COS(D13+RADIANS(M13)) =C13+K13*SIN(D13+RADIANS(M13))=B14+J14*COS(D14+RADIANS(L14)+PI()) =C14+J14*SIN(D14+RADIANS(L14)+PI()) =B14+K14*COS(D14+RADIANS(M14)) =C14+K14*SIN(D14+RADIANS(M14))=B15+J15*COS(D15+RADIANS(L15)+PI()) =C15+J15*SIN(D15+RADIANS(L15)+PI()) =B15+K15*COS(D15+RADIANS(M15)) =C15+K15*SIN(D15+RADIANS(M15))=B16+J16*COS(D16+RADIANS(L16)+PI()) =C16+J16*SIN(D16+RADIANS(L16)+PI()) =B16+K16*COS(D16+RADIANS(M16)) =C16+K16*SIN(D16+RADIANS(M16))=B17+J17*COS(D17+RADIANS(L17)+PI()) =C17+J17*SIN(D17+RADIANS(L17)+PI()) =B17+K17*COS(D17+RADIANS(M17)) =C17+K17*SIN(D17+RADIANS(M17))=B18+J18*COS(D18+RADIANS(L18)+PI()) =C18+J18*SIN(D18+RADIANS(L18)+PI()) =B18+K18*COS(D18+RADIANS(M18)) =C18+K18*SIN(D18+RADIANS(M18))=B19+J19*COS(D19+RADIANS(L19)+PI()) =C19+J19*SIN(D19+RADIANS(L19)+PI()) =B19+K19*COS(D19+RADIANS(M19)) =C19+K19*SIN(D19+RADIANS(M19))=B20+J20*COS(D20+RADIANS(L20)+PI()) =C20+J20*SIN(D20+RADIANS(L20)+PI()) =B20+K20*COS(D20+RADIANS(M20)) =C20+K20*SIN(D20+RADIANS(M20))=B21+J21*COS(D21+RADIANS(L21)+PI()) =C21+J21*SIN(D21+RADIANS(L21)+PI()) =B21+K21*COS(D21+RADIANS(M21)) =C21+K21*SIN(D21+RADIANS(M21))=B22+J22*COS(D22+RADIANS(L22)+PI()) =C22+J22*SIN(D22+RADIANS(L22)+PI()) =B22+K22*COS(D22+RADIANS(M22)) =C22+K22*SIN(D22+RADIANS(M22))=B23+J23*COS(D23+RADIANS(L23)+PI()) =C23+J23*SIN(D23+RADIANS(L23)+PI()) =B23+K23*COS(D23+RADIANS(M23)) =C23+K23*SIN(D23+RADIANS(M23))呵呵,这个就是传说已久的EXCEL自动计算曲线坐标.给大家研究研究.欢迎在此基础上开发增加新模块。
excel绶和曲线计算公式文字1.应用程序的目标计算最为复杂的诗路中线逐点坐标和切线方位角,既中桩的x值、y值。
excel的主要目标就是计算公路中线的中桩参数。
2.源程序l1 f:n:g:r:u:q:j:k起算要素l2 defm 4 扩大内存l3 m=i/2-i^3/240/r^2 m为加设缓和曲线后使切线增长的距离l4 p=i^2/24/r-i^4/2688/r^3 p为加设缓和曲线,圆曲线相对于切线的内移量l5 e=(r+p)/cos(n/2)-r e外矢距在excel中角度默认为弧度。
l6 l=πrn/180+i l为曲线长含缓和段l7 t=m+(r+p)tan(n/2)切线长l8 a=q-t:b=a+i:d=a+l:c=d-i zh:hy:hz:yh里程桩号l9 rec(t,f+180)zh点坐标增量计算l10 z[1]=v+j:z[2]=w+k zh点坐标(v,w坐标增量,计算机内部运算)l11 rec(t,f+gn)hz点坐标增量计算l12 z[3]=v+j:z[4]=w+k hz点坐标lbi θl14 {h,s,e} 待点要素l15 h<a=>goto 1 第一段直线上任一点坐标计算l16 ≠>h<b=>goto 2 第一段缓和曲线上任一点坐标计算l17 ≠>h<c=>goto 3 圆曲线上任一点坐标计算l18 ≠>h<d=>goto 4 第二段缓和曲线上任一点坐标计算l19 ≠>goto 5第二段直线上任一点坐标计算l20 lbi i 第一段直线坐标计算开始l21 rec(q-h,f+180)中桩坐标增量计算l22 x=v+j:y=w+k 中桩坐标l23 x=x+v:“x”=◢l24 y=y+w:“y”=◢第一段直线上任一点坐标计算结果l25 goto θl26 lbi 2第一段缓和曲线坐标计算开始l27 z=h-a所求点到zh距离l28 o=90z^2/r/i/π 所求点的方位角l29 x=z-z^5/40/r^2/i^2+z^9/3456/r^4/i^4l30 z=z^6/6/r/i-z^7/336/r^3/i^3+z^11/42440/r^5/i^5 第一段缓和曲线上任一点切线支距法坐标计算l31 lbi 6 第一段缓和曲线、圆曲线坐标换算计算l32 rec(x,f)l33 x=z[1]+v:y=z[2]+wl34 rec(x,f+90g)l35 x=x+v:y=y+wl36 lbi 3 圆曲线上任一点切线支距法计算开始l37 z=h-a-i/2l38 o=180z/r/π z所对中心角l39 x=z-z^3/6/r^2+z^5/120/r^4+ml40 z=z^2/2/r-z^4/r^3/24+z^6/720/r^5+pl41 goto 6l42 lbi 4 第二段缓和曲线计算开始l43 z=d-h到hz点长度l44 o=90z^2/r/i/π z所对中心角l45 x=z-z^5/40/r^2/i^2+z^9/3456/r^4/i4l46 z=z^3/6/r/i-z^7/336/r^3/i^3+z^11/42240/r^5/i^5l47 rec(x,f+gn+180)l48 x=z[3]+v:y=z[4]+wl49 rec(x,f+gn+180-90g)l50 x=x+v:y=y+wl51 x=x+v:“x”=◢l52 y=y+v:“y”=◢l53 goto θ程序中符号说明f-第一直线段正方位角(即后视切线上任一点(如zh)至交点的方位角;n—交点转向角(即偏角);右偏角为正,左偏角为负,输入转向角时不得输入“+、-”g—条件(左偏输入-1,右偏输入+1);r—半径;i—缓和曲线长度(m)(圆曲线i输入0);q—交点里程桩号;j—交点x坐标值;k—交点y坐标值;h—所求点里程桩号;x、y—所求点x、y坐标值。
1.新建一个工作薄,在其中输入如表1所示的内容;2. 选中工作表A列,打开格式菜单,选中“单元格”,在单元格菜单中选中“数字”栏,自定义单元格格式为“K000+000.000”。
按此方法分别将其他列设置为如表1所示单元格格式;3. 将“4”行做为路线起点数据行,在“5”行中进行公式编辑;4.在“J5”单元格中输入“=IF(C5=4,RADIANS(IF((G5+H5/60+I5/60/60)<180,(G5+H5/60+I5/60/60)+180,(G 5+H5/60+I5/60/60)-180)),IF(C5=5,RADIANS(IF(B5=0,G5+H5/60+I5/60/60-E5/2/D 5*180/PI(),G5+H5/60+I5/60/60+E5/2/D5*180/PI())),RADIANS(G5+H5/60+I5/60/60 6.在“L5”单元格中输入“=$L$4+IF(C5=1,K5*COS(J5),IF(C5=2,2*D5*SIN(K5/2/D5)*IF(B5=0,COS(J5-K5/ 2/D5),COS(J5+K5/2/D5)),IF(C5=3,(K5-K5^5/40/D5^2/E5^2)*COS(J5)+(K5^3/6/D5/ E5-K5^7/336/D5^3/E5^3)*IF(B5=0,COS(J5-90*PI()/180),COS(J5+90*PI()/180)),IF( C5=4,(K5-K5^5/40/D5^2/E5^2)*COS(J5)+(K5^3/6/D5/E5-K5^7/336/D5^3/E5^3)*IF (B5=0,COS(J5-90*PI()/180),COS(J5+90*PI()/180)),2*D5*SIN(K5/2/D5)*IF(B5=0,C 7.在“M5”单元格中输入“=$M$4+IF(C5=1,K5*SIN(J5),IF(C5=2,2*D5*SIN(K5/2/D5)*IF(B5=0,SIN(J5-K5/2 /D5),SIN(J5+K5/2/D5)),IF(C5=3,(K5-K5^5/40/D5^2/E5^2)*SIN(J5)+(K5^3/6/D5/E5 -K5^7/336/D5^3/E5^3)*IF(B5=0,SIN(J5-90*PI()/180),SIN(J5+90*PI()/180)),IF(C5= 4,(K5-K5^5/40/D5^2/E5^2)*SIN(J5)+(K5^3/6/D5/E5-K5^7/336/D5^3/E5^3)*IF(B5= 0,SIN(J5-90*PI()/180),SIN(J5+90*PI()/180)),2*D5*SIN(K5/2/D5)*IF(B5=0,SIN(J5- 8.在“N5”单元格中输入“=IF(B5=0,J5-RADIANS(IF(C5=2,K5/D5*180/PI(),IF(C5=3,K5^2/2/D5/E5*180/PI( ),IF(C5=4,K5^2/2/D5/E5*180/PI(),IF(C5=5,K5/D5*180/PI()))))),J5+RADIANS(IF(C 5=2,K5/D5*180/PI(),IF(C5=3,K5^2/2/D5/E5*180/PI(),IF(C5=4,K5^2/2/D5/E5*180/ PI(),IF(C5=5,K5/D5*180/PI()))))))”;9.在“P5”单元格中输入“=IF(C5=4,L5+O5*COS(N5+90*PI()/180),L5+O5*COS(N5-90*PI()/180))”;10.在“Q5”单元格中输入“=IF(C5=4,M5+O5*SIN(N5+90*PI()/180),M5+O5*SIN(N5-90*PI()/180))”;11.在“S5”单元格中输入“=IF(C5=4,L5+O5*COS(N5-90*PI()/180),L5+O5*COS(N5+90*PI()/180))”;12.在“T5”单元格中输入“=IF(C5=4,M5+O5*SIN(N5-90*PI()/180),M5+O5*SIN(N5+90*PI()/180))”;13.选定“5行”向下复制到表格最后一行;14.点击“文件”菜单中的“另存为”选项,输入文件名为“坐标计算”在文件类型中选择为“模版”并点击“保存”。
曲线道路坐标计算(Excel)曲线道路坐标计算§1 曲线要素计算缓和曲线是在不改变直线段方向和保持圆曲线半径不变的条件下,插入到直线段和圆曲线之间的。
其曲率半径ρ从直线的曲率半径∞(无穷大)1逐渐变化到圆曲线的半径R,在缓和曲线上任意一点的曲率半径ρ与缓和曲线的长度l成反比,以公式表示为:ρ∝ 或ρ⋅l=C(C为常数,称l曲线半径变更率)。
当l=lo时,ρ=R,应有C=ρ⋅l=R⋅lo以上几式是缓和曲线必要的前提条件。
在实际应用中,可采取符合这一前提条件的曲线作为缓和曲线。
常用的有辐射螺旋线及三次抛物线,我国采用辐射螺旋线。
为了在圆曲线与直线之间加入一段缓和曲线lo,原来的圆曲线需要在垂直于其切线的方向移动一段距离p,因而圆心就由O'移到O,而原来的半径R保持不变,如图。
由图中可看出,缓和曲线约有一半的长度是靠近原来的直线部分,而另一半是靠近原来的圆曲线部分,原来圆曲线的两端其圆心角βo相对应的那部分圆弧,现在由缓和曲线所代替,因而圆曲线只剩下缓圆点(HY)到圆缓点(YH)这段长度即ly。
βo为缓和曲线的切线角,即缓圆点或圆缓点切线与直缓点或缓直点切线的交角,亦即圆曲线HY→YH两端各延长γ为缓和曲线总偏角,即从直缓点(ZH)测设缓圆点(HY)或从缓直点(HZ)测设圆缓点(YH)的偏角。
q为切线增量(切垂距),即ZH(或HZ)到从圆心O向ZH(或HZ)的切线作垂线垂足的距离。
p为圆曲线内移值,即垂线(从圆心O向ZH(或HZ)的切线作垂线)长与圆曲线半径R之差。
lo部分所对应的圆心角。
2§1.1 不等长缓和曲线要素计算:在铁路曲线测设中,线路曲线一般是由相等的两条缓和曲线中间加一个圆曲线构成,有时还会出现由两个不等长的缓和曲线中间加一个圆曲线构成的特殊情况,如图:缓和曲线长分别为lo1、lo2 ,切线长分别为T1、T2 ,曲线偏角(线路转角)为α,圆曲线半径为R,圆曲线长为ly ,曲线长为L ,外矢距为E ,切曲差为J,(缓和曲线后)圆曲线内移值分别为p1、p2,(缓和曲线)切线增量分别为q1、q2,缓和曲线偏角分别为βo1、2βo2 ,回旋线参数分别为A12=Rlo1、A2=Rlo2各曲线要素计算公式如下:llq1=o1-o122240R3T2=q2+(R+p2)tgα2+(p1-p2)sinαllq2=o2-o222240Rllp1=o1-o1324R2688Rllp2=o2-o2324R2688R2243βo1=lo118090lo1⋅= 2RππRβo2=lo218090lo2⋅= 2RππRL=lo1+lo2+(α-βo1-βo2)πR180︒T1=q1+(R+p1)tgα2+(p2-p1)sinα从以上公式可以看出,当lo1=lo2时,就是等长(对称)缓和曲线的情况。
利用Excel VBA 程序计算曲线坐标张卫庭高强(中铁济南勘察设计咨询院有限公司山东济南250022)【摘要】Excel 是大家很熟悉的办公软件,相信大家在工作中经常使用。
本文利用Excel VBA 编制程序计算铁路缓和曲线的坐标,并将计算坐标转化为任意平面坐标系下的坐标,最后转化全站仪可识别的文件格式,从而实现了曲线坐标计算和现场放样的一体化。
【关键词】Excel VBA ;曲线要素;坐标转化;全站仪1.曲线坐标计算1.1角度转化为弧度计算曲线坐标,难免要把角度转化为EXCEL所识别的弧度来计算,为此首先要做的是角度转化为弧度。
打开Excel ,按Alt+F11即进入VBAIDE ,在菜单上依次点击[插入]->[模块],然后输入如下代码Public Const pi =3.14159265359Public Function DEG(n As Double)Dim A As Double,B As Double,C As Double,D As Double,E As Double,F As Double,G As Double,KA As DoubleD =Abs(n)+0.000000000000001F =Sgn(n)A =Int(D)B =Int((D -A)*100)C =D -A -B /100DEG =F *(A +B /60+C /0.36)*pi /180End Function1.2曲线坐标计算1.2.1计算曲线坐标的公式加入缓和曲线后的铁路曲线示意图(见右图)坐标系的建立主要取决于控制点的情况。
如果控制点是为测设曲线而布设的,则坐标系一般采用ZH —XY 坐标系统①ZH~HY 段曲线点的坐标根据缓和曲线方程计算:x A =l A -l A 540R 2l 02y A =±l A 36Rl 0-l A7336R 3l 03!"#%%%%%$%%%%%&当曲线右偏时y A 坐标为正,左偏时y A 坐标为负。
EXCEL结合VBA在道路综合曲线中桩坐标计算中的应用作者:教传辉曾利君来源:《数字技术与应用》2012年第01期摘要:在公路中桩线路放样工作中,在没有专业设计软件辅助计算情况下,道路中桩特别是带有缓和曲线的复合曲线上的中桩里程与坐标里程与坐标的计算是很繁琐的事,需要进行大量的、复杂的计算,费神费时间,且极易出错。
如何快速而又精确地计算出公路复合曲线中桩里程与坐标?笔者利用寄生于Microsoft Excel的VBA,编制计算程序,对解决复杂的综合曲线中桩里程与坐标的计算进行了有益的尝试。
关键词:VBA 综合曲线坐标计算中图分类号:TP29 文献标识码:A 文章编号:1007-9416(2012)01-0043-021、VBA简介VBA的全称是Visual Basic for Applications的简称。
其意思是开发环境被整合到了某个应用程序的Visual Basic语言。
作为一种自动化语言工具,提供了计算人员充分的自由,做几乎任何其他编程语言或者环境能做的事情,避免重复的手工劳动。
它可以使常用的程序自动化,可以创建自定义的解决方案。
“一段宏代码”和“一段VBA代码”是等价的。
Office的自动录制功能可以帮你录制一个宏,实际上就是把对EXCEL表格的计算、格式操作等用VBA代码的形式记录下来。
在录制宏的基础上编写VBA代码可以极大地节省编写代码的工作量,特别是在对计算表格的单元格格式操作时。
2、工作机理分析通过在VBA模块表中编写(或宏录制)代码用VBA执行操作,然后以多种方法中的任意一种来执行宏。
VBA模块保存在Excel工作簿中,一个工作簿可以存储任意数量的VBA模块。
VBA模块由过程组成。
一段过程是执行某些操作的程序代码。
下面是一个计算“圆曲线坐标”的简单子过程的例子:VBA模块还可以保存函数过程。
函盘过程能执行计算并返回一个值。
函数可以从另一个VBA过程中调用,甚至可以用于一个工作表公式。
曲线道路坐标计算§1 曲线要素计算缓和曲线是在不改变直线段方向和保持圆曲线半径不变的条件下,插入到直线段和圆曲线之间的。
其曲率半径ρ从直线的曲率半径∞(无穷大)逐渐变化到圆曲线的半径R ,在缓和曲线上任意一点的曲率半径ρ与缓和曲线的长度l 成反比,以公式表示为:l1∝ρ 或 C l =⋅ρ(C 为常数,称曲线半径变更率)。
当o l l =时,R =ρ,应有o l R l C ⋅=⋅=ρ以上几式是缓和曲线必要的前提条件。
在实际应用中,可采取符合这一前提条件的曲线作为缓和曲线。
常用的有辐射螺旋线及三次抛物线,我国采用辐射螺旋线。
为了在圆曲线与直线之间加入一段缓和曲线o l ,原来的圆曲线需要在垂直于其切线的方向移动一段距离p ,因而圆心就由'O 移到O ,而原来的半径R 保持不变,如图。
由图中可看出,缓和曲线约有一半的长度是靠近原来的直线部分,而另一半是靠近原来的圆曲线部分,原来圆曲线的两端其圆心角o β相对应的那部分圆弧,现在由缓和曲线所代替,因而圆曲线只剩下缓圆点(HY )到圆缓点(YH )这段长度即y l 。
o β为缓和曲线的切线角,即缓圆点或圆缓点切线与直缓点或缓直点切线的交角,亦即圆曲线HY→YH 两端各延长2ol 部分所对应的圆心角。
γ为缓和曲线总偏角,即从直缓点(ZH )测设缓圆点(HY )或从缓直点(HZ )测设圆缓点(YH )的偏角。
q 为切线增量(切垂距),即ZH (或HZ )到从圆心O 向ZH (或HZ )的切线作垂线垂足的距离。
p 为圆曲线内移值,即垂线(从圆心O 向ZH (或HZ )的切线作垂线)长与圆曲线半径R 之差。
§1.1 不等长缓和曲线要素计算:在铁路曲线测设中,线路曲线一般是由相等的两条缓和曲线中间加一个圆曲线构成,有时还会出现由两个不等长的缓和曲线中间加一个圆曲线构成的特殊情况,如图:缓和曲线长分别为1o l 、2o l , 切线长分别为1T 、2T ,曲线偏角(线路转角)为α,圆曲线半径为R ,圆曲线长为y l ,曲线长为L ,外矢距为E ,切曲差为J ,(缓和曲线后)圆曲线内移值分别为1p 、2p ,(缓和曲线)切线增量分别为1q 、2q ,缓和曲线偏角分别为1o β、2o β , 回旋线参数分别为121o Rl A =、222o Rl A =各曲线要素计算公式如下:231112402R ll q o o -=232222402Rll q o o -=341211268824R lR l p o o -=342222268824RlR l p o o -=ααsin )(2)(12111p p tgp R q T -+++=ααsin )(2)(21222p p tgp R q T -+++=Rl R l o o o ππβ111901802=⋅=Rl R l o o o ππβ222901802=⋅=︒--++=180)(2121Rl l L o o o o πββα从以上公式可以看出,当21o o l l =时,就是等长(对称)缓和曲线的情况。
§1.2 等长(对称)缓和曲线要素计算:切线增量: 232402Rll q o o -=圆曲线内移值: 342268824Rl R l p oo -= 切线长: 2)(αtgp R q T ++=缓和曲线的切线角:Rl R l oo o ππβ901802=⋅=︒缓和曲线总偏角: Rl ooπβγ303==曲线长: ︒-+=180)2(2Rl L o o πβα ,其中圆曲线长︒-=180)2(Rl o y πβα外矢距: R p R E -+=2sec )(α切曲差: LT J -=2§1.3 缓和曲线各主点桩号计算公式:x ’ y ’αHYYHHZZHOp 2q 1p 1βo Eq 2JT JD l YH HZ l HY YH l HY LZH QZ l ZH HY T JD ZH o yy o-+=+=+=+=+=+=-=22§2 方位角计算§2.1 交点转角角度计算公式: RT1tan2-=α(R 为曲线半径,T 为切线长) §2.2 直线段上任一点的方位角计算公式:xy ∆∆=-1tanα ①Δx >0且Δy >0,则=α;②Δx >0且Δy <0,则=α+360;③Δx <0,则=α+180。
或 y x ∆∆=-1tan α(弧度)→πα180tan 1⋅∆∆=-y x (度) (若Δy >0,则=-α+90;若Δy <0,则=-α+270)(180±90)-α → 180(1±1/2)-α → π(1±1/2)-α(弧度)→ [π(1±1/2)-α]·180/π(度)§2.3 缓和曲线上任一点的方位角计算公式: oZHl R l ⋅⋅∆⋅±=παα290(ZH α为直缓点的方位角)缓和曲线上任一点的切线角:o l R lA l l ⋅∆=∆=∆=222222ρβ(弧度)→oo l R l l R l ⋅⋅∆⋅=⋅⋅∆=ππβ22901802(度) 注:ρ为该点的曲率半径,A 为回旋线参数()l l R A o ∆⋅=⋅=ρ2 公式导证:o l R l d l ld d ⋅∆⋅∆=∆=ρβ (已知 ll R o∆⋅=ρ) oo lolo l l R l l l R l d l l R l R l d l d ⋅∆=∆⋅⋅=∆⋅∆⋅=⋅∆⋅∆==⎰⎰⎰∆∆∆2211220ββ或 πβoo o l R l 18022⋅⋅∆= 当o l l =∆时,o ββ=, 即Rl R l oo o o ππβ901802=⋅=§2.4圆曲线上任一点的方位角计算公式: RlHY ⋅∆⋅±=παα180(HY α为缓圆点的方位角)其中,Rl R l o ⋅∆⋅=⋅∆=ππβ180180 为该点的切线角(缓圆点切线与该点切线的交角,即ΔL 所对应的圆心角)。
2901802βππγ=⋅∆⋅=⋅∆=R l R l o 为该点的弦切角(也叫偏角,即缓圆点到该点的弦与缓圆点的切线所夹的角。
弦切角等于弦所对应的圆心角之半,也就是切线角的一半)。
注:Δl 为曲线长度:计算点位到起算点(主点:ZH 、HY 、YH 、HZ )的长度。
第3、4中,以计算方向为准,左偏取"﹣",右偏取"﹢"(左负右正)。
§3 坐标值计算§3.1 直线段上任一点的坐标值计算公式:直线两端点A 、B 间距离为S ,A 点坐标为()A A Y X ,,方位角为α,则有:⎩⎨⎧⋅+=⋅+=ααsin cos S Y Y S X X A BA B★ 坐标转换大地坐标系(北京54坐标系)与工程坐标系转换:大地坐标:⎩⎨⎧++=-+=ααααcos sin sin cos B A y Y B A x X o o工程坐标:()()()()⎩⎨⎧---=-+-=ααααsin cos sin cos o o o o x X y Y B y Y x X AO(x o , y o )为工程坐标系原点的北京54坐标值,X 、Y 为北京54坐标值,A 、B 为工程坐标值,α为工程坐标系与北京54坐标系X 轴的夹角,即大地坐标系方位角。
§3.2 缓和曲线上任一点的坐标值计算公式:ααsin 35300966409676800422403366cos 175472640599040345640991977155511337388176613449225⋅⎪⎪⎭⎫ ⎝⎛⋅∆+⋅∆-⋅∆+⋅∆-⋅∆⋅⎪⎪⎭⎫ ⎝⎛⋅∆+⋅∆-⋅∆+⋅∆-∆+=o o o o o o o o o ZH l R l l R l l R l l R l l R l l R l l R l l R l l R l l X X ααcos 35300966409676800422403366sin 175472640599040345640991977155511337388176613449225⋅⎪⎪⎭⎫ ⎝⎛⋅∆+⋅∆-⋅∆+⋅∆-⋅∆±⋅⎪⎪⎭⎫ ⎝⎛⋅∆+⋅∆-⋅∆+⋅∆-∆+=o o o o o o o o o ZH l R l l R l l R l l R l l R l l R l l R l l R l l R l l Y Y左偏:⎩⎨⎧⋅-⋅+=⋅+⋅+=ααααcos sin sin cos E N Y Y E N X X ZH ZH 右偏:⎩⎨⎧⋅+⋅+=⋅-⋅+=ααααcos sin sin cos E N Y Y E N X X ZH ZH (N 、E 为坐标增量)(左加减,右减加)说明:ZH X 为直缓点X 坐标值,ZH Y 为直缓点Y 坐标值,o l 为缓和曲线长度,α为起算点(ZH 或HZ )的方位角,R 为曲线半径,l ∆为计算点位到起算点的长度。
注:第一段缓和曲线从直缓点计算到缓圆点(ZH → HY ),第二段缓和曲线从缓直点计算到圆缓点(HZ → YH ),与第一段计算方向相反,即"±" 相反;且方位角应="α+180"。
§3.3 圆曲线上任一点的坐标值计算公式:⎪⎪⎩⎪⎪⎨⎧⎪⎭⎫ ⎝⎛±⋅⋅+=⎪⎭⎫ ⎝⎛±⋅⋅+=2sin 2sin 22cos 2sin 2βαββαβHY HYHY HY R Y Y R X X 注:以计算方向为准,左偏取"﹣";右偏取"﹢"(左负右正)。
式中,弦长2sin2βR d = (缓圆点到计算点的弦的长度);弦切角Rl22∆==βγ (弧度)(弦所对应的圆心角,也就是切线角θ的一半);方位角2βαα±=HY (缓圆点到计算点沿弦方向的方位角)。
说明:HY X 为缓圆点X 坐标值,HY Y 为缓圆点Y 坐标值,αHY 为缓圆点的方位角,R 为曲线半径,β为计算点的切线角,l ∆为计算点位到起算点(HY )的长度。
§3.4边桩坐标值计算公式:⎩⎨⎧±⋅+=±⋅+=)90sin()90cos(ααS Y Y S X X z b z b 在有缓和曲线的圆曲线中圆心O 的坐标是一个非常重要的数据。
X o =X jd +(R+E)cos T jd-o Y o =Y jd +(R+E)sin T jd-o★Excel计算公式:☆1 方位角计算公式☆1.1 直线段上任一点的方位角: =(PI()*(1-SIGN(ΔY)/2)-ATAN((ΔX)/(ΔY)))*180/PI()☆1.2 缓和曲线上任一点的方位角: =αZH -SIGN(±1)*90*(L-L ZH)^2/(PI()*R* L H)☆1.3 圆曲线上任一点的方位角: =αHY -SIGN(±1)*180*( L-L HY)/(PI()*R)☆2 坐标值计算公式☆2.1 直线段上任一点的坐标值: X= X o+(ΔS)*COS(RADIANS(α))Y=Y o+(ΔS)*SIN(RADIANS(α))☆2.2 缓和曲线上任一点的坐标值X=X ZH+(( L-L ZH)-( L-L ZH)^5/(40*R^2* L H ^2)+( L-L ZH)^9/(3456*R^4* L H ^4)-( L-L ZH)^13/(599040*R^6* L H ^6)+( L-L ZH)^17/(175472640*R^8* L H^8))*COS(RADIANS(α))+SIGN(±1)*(( L-L ZH)^3/(6*R* L H)-( L-L ZH)^7/(336*R^3* L H ^3)+( L-L ZH)^11/(42240*R^5* L H ^5)-( L-L ZH)^15/(9676800*R^7* L H^7)+( L-L ZH)^19/(3530096640*R^9* L H ^9))*SIN(RADIANS(αZH))Y=Y ZH+(( L-L ZH)-( L-L ZH)^5/(40*R^2* L H ^2)+( L-L ZH)^9/(3456*R^4* L H ^4)-( L-L ZH)^13/(599040*R^6* L H ^6)+( L-L ZH)^17/(175472640*R^8* L H ^8))* SIN(RADIANS(α))-SIGN(±1)*(( L-L ZH)^3/(6*R* L H)-( L-L ZH)^7/(336*R^3* L H ^3)+( L-L ZH)^11/(42240*R^5* L H ^5)-( L-L ZH)^15/(9676800*R^7* L H^7)+( L-L ZH)^19/(3530096640*R^9* L H ^9))*COS(RADIANS(αZH))☆2.3圆曲线上任一点的坐标值X=X HY+2*R*SIN((L-L HY)/(2*R))*COS(RADIANS(α)- SIGN(±1)* (( L-L HY)/(2*R)))Y= Y HY+2*R*SIN((L-L HY) /(2*R))*SIN(RADIANS(α)- SIGN(±1)* (( L-L HY)/(2*R)))注:SIGN(±1)中,左偏用”+1”表示,右偏用”-1”表示。