朱金秀,蓋僑僑
(安徽理工大學測繪學院,安徽 淮南 232001)
?
基于VB的圓曲線偏角法測設程序
朱金秀,蓋僑僑
(安徽理工大學測繪學院,安徽 淮南 232001)
介紹了利用VB良好的人機交互對話界面,運用VB代碼設計出一種與傳統圓曲線測設一致的智能數據處理軟件程序,并驗證了程序的易用性與可靠性。
圓曲線;偏角法;Visual Basic 6.0;放樣數據
在應用工程測量學中經常遇到道路曲線測設問題,放樣數據的處理是曲線測設的基礎,傳統的手工計算計算量大、煩瑣且容易出錯,直接影響線路工程的效率和質量。
為快速有效的完成任務,本文基于VB語言編寫了計算圓曲線道路放樣數據的程序,通過對偏角法對應放樣數據的計算進行了編程實現。
1.1 曲線要素計算
圓曲線要素包括曲線半徑R、線路轉角α、切線長T、曲線長L、外矢距E和切曲差q。其中,曲線半徑R和線路轉角α在線路的勘探設計階段給出,其他四個要素的計算公式如下。
q=2T-L
圖1 圓曲線示意圖Fig.1 Schematic diagram of circular curve
里程計算:
按順序JD→ZY→QZ→YZ
ZY里程=JD里程-T
QZ里程=ZY里程+L/2
YZ里程=QZ里程+L/2
檢核:檢驗JD里程+T-q的值是否與上式計算結果一致。
1.2 圓曲線基于偏角法的詳細測設
圓曲線基于偏角法的詳細測設計算要素主要包括偏角Δ(i),細部點距ZY點或YZ點曲線長lh(i) ,相鄰樁點之間的弦長cx(i)相鄰樁點之間的弧長cn(i),里程l(i) ,計算方法如下式。
Δ(i) =Δ(1) + (i - 1) ×Δ(0)
lh(i)=2×R×sin(Δ(i))
cn(i) = cn(1) + (i - 1) ×c
l(i) = l(1) + (i - 1) × c
圖2 偏角法放樣示意圖Fig.2 Schematic diagram of laying off by deflection angle method
2.1 曲線要素及主點里程計算
T = Int((R * Tan(α / 2)) * 100 + 0.5) / 100
l = Int(α * R * 100 + 0.5) / 100
E = Int(R * (1 / Cos(α / 2) - 1) * 100 + 0.5) / 100
q = Int((2 * T - l) * 100 + 0.5) / 100
lzy = lc - T
lqz = lzy + l / 2
lyz = lqz + l / 22.2 求ZY點到QZ點偏角偏距(ZY點到QZ點類似)
第一,求半條曲線離首端最近一點的分弦cn(1),到ZY點的距離l(1),偏角Δ(1)。
cn(1) = Int(lczy) - Int(lczy) Mod c + c - lczy
l(1) = Int(lczy) - Int(lczy) Mod c + c
Δ(1) = (cn(1) / (2 * Form3.R)) * (180 / Form2.pi)
Δ0 = c / (2 * Form3.R) * (180 / Form2.pi)
第二,求前半段點的偏角偏距。
Print “計算結果:”
Print “點號”; Spc(2); “里程”; Spc(4); “相鄰點弦長”; Spc(3); “相鄰點弧長”; Spc(3); “至ZY點弦長”; Spc(4); “偏角”
Print “ZY”; Spc(3); Format(lczy, “000.000”); Spc(10); Spc(10); Spc(17); “000°00′00″”
‘循環(huán)輸出前半段曲線各樁點的點號、里程及對應的偏距以及相鄰點弦長與弧長和至ZY點的弦長
Do
i = i + 1
l(i) = l(1) + (i - 1) * c ‘l(i)為各樁點對應的里程
Δ(i) = Δ(1) + (i - 1) * Δ0 ‘Δ(i) 為各樁點對應的偏角
cx(i) = 2 * Form3.R * Sin((Δ(i) - Δ(i - 1)) * pi / 180) ‘cx(i) 為各相鄰樁點之間的弦長
cn(i) = cn(1) + (i - 1) * c ‘cn(i)為各樁點到ZY的弧長
lh(i) = lh(i - 1) + cx(i) ‘lh(i)為各樁點到ZY的弦長
x(i) = Format(Int(Δ(i)), “000”)
y(i) = Format(Int((Δ(i) - Int(Δ(i))) * 60), “00”)
z(i) = Format(Int(((Δ(i) - Int(Δ(i))) * 60 - y(i)) * 60), “00”)
‘x(I),y(i),z(i)的引用是為了將角度轉化為度秒分格式
Print i; Spc(2); Format(l(i), “000.000”); Spc(3); Format(cx(i), “000.000”); Spc(5); Format(cn(i) - cn(i - 1), “000.000”); Spc(5); Format(lh(i), “000.000”); Spc(3); x(i) & “°” & y(i) & “′” & z(i) & “″”
Loop While l(i) <= lcqz - c
‘求出曲中點對應的各要素
n = (lcqz - lczy) / (2 * Form3.R) * (180 / pi)
Print “QZ”; Spc(3); Format(lcqz, “000.000”); Spc(3); Format(Form3.l / 2 - (lh(i) - lh(i - 1)), “000.000”); Spc(5); Format(lcqz - lczy - cn(i), “000.000”); Spc(5); Format(2 * Form3.R * Sin(Form3.α / 4), “000.000”); Spc(3); Format(Int(n), “000”) & “°” & Format(Int((n - Int(n)) * 60), “00”) & “′” & Format(Int(((n - Int(n)) * 60 - Int((n - Int(n)) * 60)) * 60), “00”) & “″”
第三,同理,可編出后半段點的偏角偏距。
程序編寫完成后,經多個算例驗證測試后,結果準確無誤,現就圓曲線偏角法計算,過程如圖。
圖3 數據輸入界面Fig.3 Data input interface
圖5 結果輸出Fig.5 Output
注意:本軟件所指的偏角僅給出角度值,實際應用中要考慮正撥與反撥,如果曲線在切線的右側,為正撥;曲線在切線的左側,為反撥。
本文介紹的基于VB的圓曲線偏角法測設程序,輸入已知數據,自動進行數據處理計算及得到最終成果表。過程和傳統的導線計算表一致,但是比較快捷、方便且準確度高。利用VB語言編寫計算VB強大的人機對話功能使得到的結果透明度高,便于檢核和修改錯誤,提升了圓曲線測量數據處理計算的工作效率??梢?,在VB環(huán)境下編制曲線測設程序,具有多功能、快速、準確、簡單等特點,滿足當下道路施工要求。
[1] 胡振琪.應用工程測量學[M].北京:煤炭工業(yè)出版社,2008.
[2] 薛皓然,蔡云霞,古君.基于VB曲線放樣程序設計[J].西部資源,2015,(06):101-102.
Measuring program for laying off circular curve by deflection angle method based on VB
ZHU Jin-xiu, GE Qiao-qiao
(School of Surveying and Mapping, Anhui University of Science and Technology, Huainan 232001, China)
This paper describes the way of using the VB code to design a set of intelligent data processing software with the use of VB good man-machine interface, which is consistent with the way of laying off traditional circular curve, and verify the usability and reliability of the program.
Circular curve; Deflection angle method; Visual Basic 6.0; Layout data
2017-04-02
朱金秀(1997-),女,在校本科生。
P258
A
1674-8646(2017)10-0176-02