多点虚交曲线计算程序设计

2020-09-08 01:32刘书元
黑龙江交通科技 2020年8期
关键词:文本框交点转角

刘书元

(哈尔滨市龙滨公路勘察设计有限责任公司,黑龙江 哈尔滨 150010)

1 几何解析

如图1所示路线由于障碍所限,中线t1与t2实交点及转角无法测定,因此在t1开始转弯处A点和t2转弯结束处B点中间布设N个辅助交点,辅助交点相邻两点互相通视。两中线通过辅助交点1、2、…i、…n连线相互连接,形成多点虚交。实测得各虚交边转角(偏角)分别为I1、I2、…、Ii…、In,实测相邻两虚交点间距分别为L1、L2、…、Li…、Ln-1。

图1 多点虚交曲线示意图

为了建立虚交点与实交点间的几何关系,将路线中线t1、t2向前方延长,其延长线OA、OB在点O处相交得JD(O)。由A点向B点作辅助线,则OA、AB、OB构成以JD(O)为顶点的三角形△OAB。再由虚交点A点向其余虚交点分别作辅助线S1、S2、…Sn,构成若干三角形并共用邻边。同时△AiB与△OAB又共有底边,因此可以根据三角函数关系求得实交点位置和转角。具体步骤为:

(1)由已知虚交边L1、L2及I1,求未知边S1及未知底角α1、β1

(2)再由S1、L2和角I2±β1推算S2、α2、β2;

(3)如此顺序推算直至求得Sn、αn、βn;

(4)在△OAB中,由底边Sn、底角∠A、∠B求得实交点至起讫虚交点距离La、Lb;

(5)计算实交点桩号Kjd及总转角I0。

最后根据路线等级要求和地形、地物条件等控制因素拟定曲线半径R和缓和曲线长度Ls后就可以进行虚交曲线的主点元素计算和曲线测设。从上述解析过程可以看出,虚交点数量增加,计算工作量将大幅增长,计算过程也更加繁琐。因此编制计算机软件,使这一计算过程程序化,就会减掉繁琐的计算工作量,提高野外勘测设计的工作效率。

2 数学模型

设ξ为虚交点转角方向系数,当Ii-1转向与总转角I0一致时ξ=1,否则ξ=-1。根据正弦定理及余弦定理,在△i-1Ai中

(1)

(2)

(3)

(4)

(5)

(6)

在△OAB中

(7)

∠B=In+ξβn

(8)

Io=∠A+∠B

(9)

(10)

(11)

(12)

(13)

交点桩号Kjd=KJa+La

(14)

本程序以式(2)、(4)、(6)、(7)、(8)、(9)、(11)、(13)、(14)为数学计算模型进行编制。

3 程序设计

程序采用在Windows环境下运行的Visual Basic编程语言编写,Visual Basic是新型的计算机程序设计语言,具有可视化的直观的操作界面,使用方便等特点。

3.1 程序设计流程

程序设计流程见图2。

图2 程序设计流程图

3.2 程序设计

(1)主要变量

程序中定义的的主要变量有:

字符串变量(String);交点点号JDx、datI、datL等。

整数型变量(Integer):虚交点个数N、系数ξ。

单精度实数变量(Single):虚交元素Li、Ii、Io等。

双精度实数变量(Double)La、Lb、Si、αi、βi等。

(2)自定义常量

定义圆周率π常量:Public Const π=3.141 592 6。

(3)自定义函数

①角度转化弧度函数:

Public Function RAD(D)

RAD=R* π /180

End Function

②弧度转化角度函数:

Public Function DEG(R)

DEG=R*180/π

End Function

(4)主要程序代码

Private Sub Command1_Click()

n=Text1.Text

datI=Text2.Text

datL=Text3.Text

n=Val(n)

Kjda=Val(Text4.Text)

For i=1 To n-2

If I<2 Then

m=InStr(datI,",")

dat1=Left(datI,m-1)

Ii=Val(dat1)

Ii=ANG(Ii)

datI=Mid(datI,m+1)

m=InStr(datL,",")

If m=0 Then

Li=Val(datL)

Text5.Text=Text5.Text & "L" & I & "=" & Li & " m" & vbCrLf

Si=Li

Si_1=Si

Ii_1=Ii

∠A=Ii_1

I=I+1

Ii=Val(datI)

Ii=ANG(Ii)

Text5.Text=Text5.Text & "I" & I & "=" & DMS(Ii)& vbCrLf

∠B=Ii

Io=Ii+Ii_1

GoTo 1000

End If

dat2=Left(datL,m-1)

Li=Val(dat2)

datL=Mid(datL,m+1)

Ii_1=Ii

Li_1=Li

Si_1=Li_1

βi_1=0

Io=Ii_1

∠A=Ii_1

End If

m=InStr(datI,",")

dat1=Left(datI,m-1)

Ii=Val(dat1)

If Ii<0 Then

ξ=-1

Ii=Abs(Ii)

Else

ξ=1

End If

Ii=ANG(Ii)

Io=Io+ξ*Ii

datI=Mid(datI,m+1)

m=InStr(datL,",")

If m=0 Then

Li=Val(datL)

Else

dat2=Left(datL,m-1)

Li=Val(dat2)

datL=Mid(datL,m+1)

End If

Si=Sqr(Si_1 ^ 2+Li ^ 2+2*Si_1*Li*Cos(RAD(Ii+ξ*βi_1)))

αi=ASN(Li/Si*Sin(RAD(Ii+ξ*βi_1)))

αi=DEG(αi)

∠A=∠A+ξ*αi

βi=ASN(Si_1 /Si*Sin(RAD(Ii+ξ*βi_1)))

βi=DEG(βi)

βi_1=βi

Si_1=Si

If I=n-1 Then

Ii=Val(datI)

Ii=ANG(Ii)

Io=Io+Ii

∠B=Ii+ξ*βi

End If

Next i

1000

La=Si_1*Sin(RAD(∠B))/Sin(RAD(Io))

Lb=Si_1*Sin(RAD(∠A))/Sin(RAD(Io))

Kjd=Kjda+La

End Sub

3.3 程序界面及使用方法

利用文本框控件TextBox输入基本参数虚交点数N、相邻虚交点间距离Li和转向角Ii,实交点点号。数据之间以逗号分隔。Ii以小数形式输入,如15°30′45″输为15.304 5,与总转角方向一致为正,否则为负。

点击确认计算按钮程序进入Command1_Click()

主过程,提取上述文本框内数据,通过Val(String)进行转换给Li、Ii等变量赋值,通过For Next循环语句执行函数运算,计算中间变量Si、αi值,循环结束后,计算实交点至虚交点距离La、Lb及实交点桩号Kjd,最后计算成果在文本框Text5内显示。点击退出按钮后程序弹出文件管理器,选择存储路径和文件名存储数据并退出程序。

4 应用实例

某四点虚交曲线,虚交点A桩号为K1+122.38,I1=46°56′43″,I2=29°12′12″,I3=48°02′46″,I4=2°38′59″L1=131.464 m,L2=161.924 m,L3=191.500 m,拟定R=200 m,计算曲线要素及主点桩号。

程序操作:在上部组合框中输入已知数据,点击“确认计算”,在窗体右方显示虚交计算结果。在下部组合框内按要求输入R、Ls,点击确定。

5 结 语

道路曲线测设时会经常遇到多点虚交测设状况,现场手工计算费时费力,很容易出现错误。而本程序可以一次性输入数据,直接计算出各虚交点要素和曲线元素及主点桩号。程序用户界面可视,操作简便,实用性强,大大提高了野外勘测设计的工作效率。

猜你喜欢
文本框交点转角
玩转角的平分线
巧用文本框实现PPT多图片排版
侧围外板转角深拉伸起皱缺陷研究
PPT文本框的另类应用
阅读理解
借助函数图像讨论含参数方程解的情况
试析高中数学中椭圆与双曲线交点的问题
图片动画玩异样
INS/GPS组合系统初始滚转角空中粗对准方法
飞机活动面转角测量的方法探讨