19 lines
726 B
Text
19 lines
726 B
Text
Option Base 1
|
|
Private Function mean_angle(angles As Variant) As Double
|
|
Dim sins() As Double, coss() As Double
|
|
ReDim sins(UBound(angles))
|
|
ReDim coss(UBound(angles))
|
|
For i = LBound(angles) To UBound(angles)
|
|
sins(i) = Sin(WorksheetFunction.Radians(angles(i)))
|
|
coss(i) = Cos(WorksheetFunction.Radians(angles(i)))
|
|
Next i
|
|
mean_angle = WorksheetFunction.Degrees( _
|
|
WorksheetFunction.Atan2( _
|
|
WorksheetFunction.sum(coss), _
|
|
WorksheetFunction.sum(sins)))
|
|
End Function
|
|
Public Sub main()
|
|
Debug.Print Format(mean_angle([{350,10}]), "##0")
|
|
Debug.Print Format(mean_angle([{90, 180, 270, 360}]), "##0")
|
|
Debug.Print Format(mean_angle([{10, 20, 30}]), "##0")
|
|
End Sub
|