歡迎來到http://www.tljciu.live !
當前位置:六六工程資料網建筑課堂工程資料工程測量測量計算編程——方位角

測量計算編程——方位角

08-22 13:59:12  瀏覽次數:914次  欄目:工程測量
標簽:工程測量規范,工程測量技術, 測量計算編程——方位角,http://www.tljciu.live
'定義角度輸出格式(枚舉類型) 



Enum rtnAzimuthFormat 
qd_DecimalDegree 
qd_DD_MM_SS_SeperatedByMinusSymbol 
qd_DD_MM_SS_SeperatedByDivideSymbol 
qd_Decimal_DD_MM_SS 
End Enum 


'(二維)點格式

Public Type Point 
X As Double 
Y As Double 
End Type 

'方位角計算

'調用方法:

'rtnAz=surAzimuth(起始點,終點,返回格式,度(可選),分(可選),秒(可選))

'度(可選)表示只輸出DD-MM-SS中的度部分,便于后續處理
Public function surAzimuth(PointA As Point, PointB As Point, rtnFormat As rtnAzimuthFormat, Optional Degree As Integer, Optional Minute As Integer, Optional Second As Single) As String 
Dim deltX As Double, deltY As Double 
Dim AziCal As Double 
Dim pi As Double 
Dim intD As Integer, intM As Integer, Sec As Single, mm As Single 
pi = Atn(1) * 4 


deltX = PointB.X - PointA.X 
deltY = PointB.Y - PointA.Y + 1E-20 

AziCal = (pi - pi / 2 * Sgn(deltY) - Atn(deltX / deltY)) * 180 / pi 

intD = Int(AziCal) 
mm = (AziCal - intD) * 60# 
intM = Int(mm) 
Sec = Round((mm - intM) * 60, 2) 

 Degree = intD 
 Minute = intM 
 Second = Sec 

Select Case rtnFormat 
       Case qd_DecimalDegree 
            surAzimuth = AziCal 
       Case qd_DD_MM_SS_SeperatedByMinusSymbol 
            surAzimuth = Format(intD, "0") & "-" & Format(intM, "00") & "-" & Format(Sec, "0.00"
       Case qd_DD_MM_SS_SeperatedByDivideSymbol 
            surAzimuth = Format(intD, "0") & "/" & Format(intM, "00") & "/" & Format(Sec, "0.00"
       Case qd_Decimal_DD_MM_SS 
            surAzimuth = Format(intD, "0") & "." & Format(intM, "00") & Format(Sec * 100, "00"
       Case Else 
            surAzimuth = AziCal 
End Select 


End function

,測量計算編程——方位角

++《測量計算編程——方位角》相關文章

22选五的开奖公告