Задать вопрос
@mlsedov

Как в Math.atan(1/x) обработать точку разрыва?

Реализовал построение графиков функций вида y=... на canvas.
Не могу решить одну проблему, выявление асимптоты функции y=atan(1/x).
В точке ноль выдаёт числовое значение, т.е. в javascript код Math.atan(1/0) выдаёт значение 1.5707963267948966, при том что Math.tan(1/0) выдаёт NaN, который можно обработать.
Как возможно обойти эту особенность javascript?
  • Вопрос задан
  • 249 просмотров
Подписаться 1 Оценить 4 комментария
Решения вопроса 2
@iShatokhin
JS developer
function atan (num) {
  if (num === Infinity || num === -Infinity)
    return NaN;
  return Math.atan(num);
}

atan(1/0); // NaN
Ответ написан
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Math.atan(1/0) выдаёт значение 1.5707963267948966

Ну и чем вы озабочены? Вам выдаётся значение Math.PI / 2.
А теперь делаем так:

console.log(Math.PI / Math.atan(1 / 0)); // 2 — ответ соответствует 90°
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы