摘要:在工作中对于圆曲线的计算有很多的计算软件和计算方法,但在精度上都存在差异,不能保证数据的可靠性,并且在实际应用中,其它方法计算道路圆曲线上细部点的坐标是不能满足自己要求的。在此作者在工作过程中总结出通过Microsoft Excel平台能够准确快速计算出圆曲线上任意桩号的点位坐标。
关键词:圆曲线;自定义函数及变量;Microsoft Visual Basic
前言:对于一个合格的测绘技术人员,道路中圆曲线上任意桩号的坐标计算是应具备的基本技能。由于作者基于用户熟悉的Microsoft Excel平台,利用Microsoft Excel内置函数编写了计算公式,并在Microsoft Excel VBA界面上开发出相应的自定义函数,克服了以前使用专门编程软件编写计算程序的繁锁过程,且不易被改动,易于操作和掌握,在测绘技术中具有一定的实用性、可靠性、精度高、批量计算等特点。
1 计算方法
1.1 思路及公式依据
图1-1
以右曲线为例,如图1-1所示,O为圆曲线圆心点,R为圆曲线半径,a为圆曲线转角,ZD为直线上点,ZY为直圆点、JD为圆曲线交点, YZ为圆直点,以上坐标与桩号为已知点,通过已知要素可以计算出未知的曲线元素,这里不再做祥细介绍了。要想计算曲线上细部点坐标,如计算A1坐标,首先要计算出直线OZY的方位角:
FWJ(o-zy)=arctan(Yzy-Yo)/(Xzy-Xo),
根据下面公式计算出A1坐标:
XA1= Xo+COS((FWJ(o-zy)+a1)* 3.1415926/180)* R
YA1= Yo+SIN(FWJ(o-zy)+a1) *3.1415926/180)* R
其中直线OZY与OA1的夹角a1=L1/R,这里a1计算出来结果是弧度,L1为曲线长,这里要说明的是曲线长L1可由计算点A1的里程减去ZY点里程得到。由此可得任意点Ai坐标:
XAi= Xo+COS (FWJ(o-zy)* 3.1415926/180+(Ai里程-ZY里程 )/R)* R
YAi= Yo+SIN (FWJ(o-zy)*3.1415926/180+ (Ai里程-ZY里程 )/R)* R
2 在Microsoft Excel编写应用
2.1 自定义函数在EXCEL中应用
首先打开Microsoft Excel工作表,将已知元素如下图2-1 输入表格中,红色为曲线上已知元素只需输入,计算结果将显示在相对应的表格中,然后只需调用在Visual Basic 编辑器编辑的自定义函数即可,在其相对应的表格中只需输入如下计算公式:
B7=ZBZS_x($B$3,((fangweijiao($B$3,$C$3,$D$3,$E$3)*PI()/180)+(A7-$A$5)/$A$3),$A$3)
C7=ZBZS_y($C$3,((fangweijiao($B$3,$C$3,$D$3,$E$3)*PI()/180)+(B7-$A$5)/$A$3),$A$3)
图2-1
这里应用了调用自定义函数,其主要编写的简易过程和用法。
2.2自定义函数的编写
以2010版Excel为例,打开EXCEL界面中菜单的“工具”—“宏” —“Visual Basic 编辑器(V)或用快捷键“ALT+F11”,然后打开Microsoft Visual Basic 编辑界面,并插入模块,默认为“模块1”,也可重命名,并在该模块界面中输入和添加以下程序代码。如图2-2所示;
图2-2
主要Microsoft Visual Basic 编辑界面模块中程序代码及自定义函数如下:
首先进行了角度的转换,然后进行了函数的自定义和代码的编写。
'“度分秒”为单位的角度转化为“弧度”为单位的角度
Public Function dufenmiao_hu(D As Double) As Double
Dim du As Double
Dim fen As Double
Dim miao As Double
Dim hu As Double
du = Int(D)
fen = Int((D - Int(D)) * 100)
miao = (D * 100 - Int(D * 100)) * 100
dufenmiao_hu = (du + fen / 60 + miao / 3600) * 3.14159265358979 / 180
End Function
'“度”为单位的角度转化为“弧度”为单位的角度
Public Function du_hu(du As Double) As Double
du_hu = du * 3.14159265358979 / 180
End Function
'方位角的计算,单位为“度”,
Public Function ZBZS_x(x1, U, s) As Double
U = U / 180 * 3.14159265358979
'坐标正算待求点的“X”坐标
ZBZS_x = x1+ Cos(U) * s
End Function
'坐标正算待求点的“Y”坐标
Public Function ZBZS_y(y1, U, s) As Double
ZBZS_y = y1 + Sin(U) * s
End Function
'根据两点坐标计算方位角,计算结果单位:度
Public Function fangweijiao(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double
Dim U As Double
fangweijiao = (3.14159265358979 * (1 - Sgn(y2 - y1) / 2) - Atn((x2 - x1) / (y2 - y1))) * 180 / 3.14159265358979
End Function
2.3自定义函数变量说明及应用
2.3.1变量主要说明
①自定义 “坐标正算纵坐标“函数ZBZS_x(x1, U, s),其中(x1, U, s)为自定义函数的变量即起算点纵坐标x1,方位U和距离s。
②自定义 “坐标正算横坐标“函数ZBZS_y(y1, U, s),其中(y1, U, s)为自定义函数的变量即起算点横坐标y1,方位U和距离s。
③自定义 “方位角计算“函数fangweijiao(x1,y1, x2, y2),其中(x1,y1, x2, y2)为自定义函数的变量即起算点坐标x1,y1和终点坐标x2, y2。
2.3.2自定义函数的应用
函数定义的变量有先后顺序, 在表格中引用自定义函数,主要是要正确使用变量的顺序,如计算桩号K0+980.660处的坐标点位,对应的表格B7与C7,即将变量带入自定义函数中完成计算,
B7=ZBZS_x($B$3,((fangweijiao($B$3,$C$3,$D$3,$E$3)*PI()/180)+(A7-$A$5)/$A$3),$A$3)
C7=ZBZS_y($C$3,((fangweijiao($B$3,$C$3,$D$3,$E$3)*PI()/180)+(B7-$A$5)/$A$3),$A$3)
在上计算的公式中,自定义函数ZBZS_x(x1, U, s)中变量U又引用自定义函数fangweijiao($B$3,$C$3,$D$3,$E$3)*PI()/180)+(B7-$A$5)/$A$3)计算得到的,所以只要选对变量顺序,才能正确使用自定义函数,
3 总结
虽然目前有部分类似的坐标计算软件,但往往价格不低,而且通常操作复杂,利用Microsoft的常用办公软件Excel提供的VBA程序,通过该计算方法,根据坐标正算原理和几何关系推导演变得出《应用Excel计算圆曲线细部点坐标程序》,功能强大,且与Excel工作表实现无缝接合,只要灵活应用,即可方便、快捷的解决测量中大量的、机械的数据处理过程。打破了切线之距法、偏角法等常用方法的繁琐、复杂等过程,从而提高了工作效率,节约了经济成本。这种方法适合在Excel中灵活应用和批量计算,在使用过程中基于Microsoft Excel平台应用VBA (Microsoft Visual Basic)编辑模板,将园曲线的公式计算原理,通过引用自定义函数,设计在表格中简单、直观的计算出碎部坐标结果,更是简化了计算过程,在计算应用过程中应注意以下几点:(1)在Microsoft Excel编写圆曲线任意桩号坐标计算过程中,主要依据了坐标正算公式原理:纵坐标XA1= Xo+COS((FWJ(o-zy)+a1)* 3.1415926/180)* R,横坐标YA1= Yo+SIN(FWJ(o-zy)+a1) *3.1415926/180)* R。(2)角度单位为度分秒,输入时采用小数形式,如12°01′42″为12.0142。(3)在引用自定义函数时要正确变量的前后顺序。(4)在公式中采用$表示对数据区域的绝对引用,如$B$3为绝对B3单元格。
参考文献:
[1] Excel 2000中文版 VBA 开发实例指南,电子工业出版社,2000年8月
[2] 刘培文.公路施工测量技术.北京:人民交通出版社,2003
[3] 李幼乂等.Excel函数与公式实战技巧精粹.北京:人民邮电出版社,2008
[4] 赵志东. Excel VBA技巧应用.北京:人民邮电出版社,2007
[5] 刘宇等.EXCEL高效办公—VBA入门与实践.北京:人民邮电出版社,2006
[6] 周建郑等.工程测量(测绘类).郑州:黄河水利出版社,2006
[7] 水利工程测量.河海大学,武汉大学.中国水利水电出版社.2001
[8] 张正禄.工程测量学.武汉:武汉大学出版社,2002
论文作者:唐伯龙,刘航
论文发表刊物:《基层建设》2019年第10期
论文发表时间:2019/7/1
标签:自定义论文; 坐标论文; 函数论文; 曲线论文; 变量论文; 里程论文; 方位角论文; 《基层建设》2019年第10期论文;