К моему удивлению, задача оказалась не очень простой.
Дело в том, что значение угла мне нужно было в целочисленной форме и в градусах. Значение это должно находиться на сегменте [-180,180], а угол отсчитываться от направления вправо, по часовой стрелке вниз по кругу. То есть так, как это принято для координат графического окна компьютера.
Вот подпрограмма, которая делает это -
Public Function Usc() As Integer '
Dim A As Single, U As Integer
If Abs(Caa) > Abs(Saa) Then
A = Atn(Saa / Caa) * 57.29578
If Caa < 0 Then If Saa > 0 Then A = 180 + A Else A = A - 180
Else: A = Atn(Caa / Saa) * 57.29578
If Saa < 0 Then A = -90 - A Else A = 90 - A
End If: U = A
Usc = U
End Function
'========
здесь Caa и Saa - косинус и синус, а U это искомое значение угла.
Если кто-нибудь знает более простой способ, то подскажите.
Клип с наклонами ёлок смотрите тут - http://youtu.be/lWpFxt3VWe8