A A A A Автор Тема: Вычислить Прямое восхождение.  (Прочитано 1162 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн АртемийАвтор темы

  • Новичок
  • *
  • Сообщений: 26
  • Благодарностей: 0
    • Сообщения от Артемий
Доброго всем дня, как устранить неопределенность со знаками по квадрантам при вычислении тангенса прямого восхождения.

Оффлайн Acrux

  • ****
  • Сообщений: 367
  • Благодарностей: 39
  • Eppur si Muove!
    • DeepSkyHosting: AlexanderKrutov
    • Сообщения от Acrux
    • Astrarium — бесплатный open-source планетарий для Windows
Re: Вычислить Прямое восхождение.
« Ответ #1 : 15 Янв 2008 [18:19:34] »
Артемий,

не могли бы вы немного уточнить вопрос?

Может быть, вы имели в виду неопределенность при вычислении АРКтангенса?
Если так, то во многих языках программирования есть функция atan2(y,x) вычисления арктангенса по двум катетам. Она прекрасно справляется с "неопределенностью", т.е. находит угол в нужном квадранте.
Если же такой функции нет, а есть только atan(theta), то можно написать atan2(y,x) самому:

// Учтем, что theta = y/x.

double atan2(double y, double x) {
  if (x > 0) {
    theta = arctan(y/x);
  }
  if (x < 0) {
    theta = arctan(y/x) - 180;
  }
  if (x == 0) {
    if y > 0 {
      theta = 90;
    }
    if (y < 0) {
      theta = -90;
    }
    if (y == 0) {
      theta = NAN;
    }
  }
  return theta;
}
Astrarium — бесплатный open-source планетарий для Windows

SW SkyMax 127, SW BKP1145, Svbony SV48, Nikon Aculon A211 7x35
SW AZ5 HD, SW AZ-GTi
Svbony SV105, SV305