Как вычислить угол зная его синус и косинус

  К моему удивлению, задача оказалась не очень простой.
  Дело в том, что значение угла мне нужно было в целочисленной форме и в градусах. Значение это должно находиться на сегменте [-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


Рецензии
Ну ты ещё и сионский мудрец, оказывается.
Губа не треснет? (шютка юмору)

Елисеев 2   24.07.2020 09:20     Заявить о нарушении
Эта задача имела практическое значение. Угол поворота в сотых долях градуса я хранил в целочисленной форме, и было нужно чтобы это число не оказалось слишком большим. Короче говоря, градусы угла поворота должны быть в диапазоне от -180 до +180.

Геннадий Маков   24.07.2020 09:42   Заявить о нарушении