Math.asin: примеры (JAVASCRIPT)
Math.asin(number): numberОписание функции Math.asin
Функция Math.asin() в языке JavaScript вычисляет арксинус (обратную синус функцию) числа. Она возвращает угол в радианах, синус которого равен указанному числу. Использование функции встречается при решении геометрических задач, в компьютерной графике, физических симуляциях и обработке сигналов, когда требуется найти угол по известному значению синуса.
Функция принимает один аргумент – числовое значение x, которое должно находиться в диапазоне от -1 до 1 включительно. Аргумент может быть целым или дробным числом.
Возвращаемое значение:
- Если аргумент
xнаходится в диапазоне [-1, 1], функция возвращает угол в радианах от-π/2доπ/2(от -1.5707963267948966 до 1.5707963267948966). - Если аргумент меньше -1 или больше 1, возвращается специальное значение
NaN(Not a Number). - Если аргумент не может быть преобразован в число, JavaScript попытается выполнить преобразование, и в случае неудачи также вернет
NaN.
Краткие примеры использования
Пример с корректным аргументом:
let result = Math.asin(0.5);
console.log(result);0.5235987755982989
Пример с граничным значением:
console.log(Math.asin(1));1.5707963267948966
Пример с отрицательным аргументом:
console.log(Math.asin(-0.7071));-0.7853981633974484
Пример с аргументом вне диапазона:
console.log(Math.asin(1.5));NaN
Пример с нечисловым аргументом:
console.log(Math.asin('text'));NaN
Похожие функции в JavaScript
- Math.acos() – вычисляет арккосинус числа. Возвращает угол в радианах от 0 до π. Применяется, когда известен косинус угла.
- Math.atan() – вычисляет арктангенс числа. Возвращает угол в радианах от -π/2 до π/2. Подходит для нахождения угла по тангенсу.
- Math.atan2(y, x) – возвращает угол между положительной осью X и точкой (x, y). Учитывает знаки обоих аргументов для определения квадранта. Более надежен, чем Math.atan(), при работе с декартовыми координатами.
Функцию Math.asin выбирают при работе конкретно с синусом. Если данные представлены в виде координат, предпочтительнее Math.atan2().
Аналоги функции в других языках
PHP: функция asin() работает аналогично, возвращает значение в радианах.
echo asin(0.5);0.5235987755983
Python: модуль math предоставляет функцию asin(). Также возвращает результат в радианах.
import math
print(math.asin(0.5))0.5235987755982989
MySQL: функция ASIN() вычисляет арксинус. Аргумент должен быть в диапазоне [-1, 1], иначе возвращается NULL.
SELECT ASIN(0.5);0.5235987755982989
C/C++: в стандартной библиотеке math.h существует функция asin(). Она принимает и возвращает значения типа double. При аргументе вне диапазона может возникнуть ошибка домена.
#include
double result = asin(0.5); Типичные ошибки
1. Передача аргумента вне диапазона [-1, 1], что приводит к возврату NaN.
console.log(Math.asin(2)); // Ожидание числаNaN
2. Неявное преобразование строки, которое может дать неожиданный результат.
console.log(Math.asin('0.5')); // Строка преобразуется
console.log(Math.asin('a0.5')); // Не преобразуется0.5235987755982989 NaN
3. Забывают, что результат возвращается в радианах, а не градусах. Для перевода в градусы требуется умножение на (180 / Math.PI).
let radians = Math.asin(0.5);
let degrees = radians * (180 / Math.PI);
console.log(degrees);30.000000000000004
История изменений
Функция Math.asin является частью стандарта ECMAScript 1 (1997 год) и с тех пор не претерпела значимых изменений в поведении или синтаксисе. Она поддерживается всеми современными браузерами и средой выполнения Node.js без особенностей.
Расширенные примеры применения
Вычисление угла при известном противолежащем катете и гипотенузе:
let opposite = 3;
let hypotenuse = 5;
let angle = Math.asin(opposite / hypotenuse);
console.log('Угол в радианах:', angle);
console.log('Угол в градусах:', angle * (180 / Math.PI));Угол в радианах: 0.6435011087932844 Угол в градусах: 36.86989764584402
Проверка корректности аргумента перед вычислением:
function safeAsin(x) {
if (x < -1 || x > 1 || isNaN(x)) {
return 'Некорректный аргумент';
}
return Math.asin(x);
}
console.log(safeAsin(0.7));
console.log(safeAsin(2));0.775397496610753 Некорректный аргумент
Использование в функции для нахождения всех решений уравнения sin(x) = a в пределах одного периода:
function solveSinEq(a) {
if (a < -1 || a > 1) return [];
let principal = Math.asin(a); // Главное решение
let secondary = Math.PI - principal; // Второе решение в [0, 2π)
return [principal, secondary];
}
console.log(solveSinEq(0.5));[0.5235987755982989, 2.6179938779914944]
Создание простого графика функции арксинус:
for (let x = -1; x <= 1; x += 0.2) {
let y = Math.asin(x);
console.log(`asin(${x.toFixed(1)}) = ${y.toFixed(4)}`);
}asin(-1.0) = -1.5708 asin(-0.8) = -0.9273 asin(-0.6) = -0.6435 asin(-0.4) = -0.4115 asin(-0.2) = -0.2014 asin(0.0) = 0.0000 asin(0.2) = 0.2014 asin(0.4) = 0.4115 asin(0.6) = 0.6435 asin(0.8) = 0.9273 asin(1.0) = 1.5708