Обзор объекта 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