Обзор объекта Math¶
Встроенный объект Math является расширением стандартного объекта Math языка программирования JavaScript и предоставляет ряд полезных математических функций.
Основные возможности Math¶
- Сравнение чисел с плавающей запятой с заданной точностью (
isEpsilon,isEqual,isLessEqual,isGreatEqual). - Преобразование полярных координат в декартовые координаты (
fromPolar). - Функции для работы с угловыми значениями (
rad,deg,normAngle,middleAngle,spanAngle).
Совет
Используйте функции cравнения чисел с плавающей запятой вместо прямого сравнения ==, чтобы избежать проблем с точностью.
Константы Math¶
| Константа | Описание | Значение |
|---|---|---|
Math.EPSILON |
Минимальное положительное число, такое что 1 + Math.EPSILON= 1 при работе с числами с плавающей точкой |
1e-7 |
Методы объекта Math¶
Ниже приведен список доступных методов, предоставляемых объектом Math. Щелкните имя метода, чтобы увидеть его подробное описание и примеры.
| Метод | Описание |
|---|---|
| Math.deg() | Перевод радиан в градусы. |
| Math.rad() | Перевод градусов в радианы. |
| Math.fromPolar() | Перевод координат точки из полярных координат (radius, angle) в декартовые (x, y). |
| Math.normAngle() | Нормализует значение угла, возвращает значение в диапазоне от 0° до 360°. |
| Math.normAngleAt180() | Нормализует значение угла, возвращает значение в диапазоне от -180° до +180°. |
| Math.spanAngle() | Расстояние между углами a₁ и a₂. |
| Math.normSpanAngle() | Нормализует значение расстояния между углами, возвращает значение в диапазоне от 0° до 360°. |
| Math.middleAngle() | Расчет среднего угла между углами a₁ и a₂ с учетом направления. |
| Math.isEpsilon() | Возвращает true, если абсолютное значение arg ≤ eps. |
| Math.isEqual() | Возвращает true, если разница между arg₁ и arg₂ ≤ eps. |
| Math.isLessEqual() | Возвращает true, если arg₁ ≤ arg₂ с учетом точности eps. |
| Math.isGreatEqual() | Возвращает true, если arg₁ ≥ arg₂ с учетом точности eps. |
| round() | Округлить число до заданой точности. |
Общая структура объекта Math¶
graph LR
Parent[JS-Math] --> A[Math]
A[Math] --> B[Сравнение чисел]
A --> C[Преобразование координат]
A --> D[Работа с углами]
B --> B1["isEpsilon()"]
B --> B2["isEqual()"]
B --> B3["isLessEqual()"]
B --> B4["isGreatEqual()"]
C --> C1["fromPolar()"]
D --> D1["rad()"]
D --> D2["deg()"]
D --> D3["normAngle()"]
D --> D4["middleAngle()"]
D --> D5["spanAngle()"]
%% === Стили === %%
%%classDef math fill:#f0f8ff,stroke:#3366cc,stroke-width:2px;
%%classDef compare fill:#fff5e6,stroke:#cc6600,stroke-width:2px;
%%classDef coords fill:#e6ffe6,stroke:#009933,stroke-width:2px;
%%classDef angles fill:#ffe6e6,stroke:#cc0052,stroke-width:2px;
%%classDef func fill:#ffffff,stroke:#aaaaaa,stroke-width:1px;
%%=== Применяем стили к узлам === %%
%%class Parent,A math
%%class B compare
%%class C coords
%%class D angles
%%class B1,B2,B3,B4,C1,D1,D2,D3,D4 func
Last update: 7 августа 2025, 10:42