Перейти к содержанию

Обзор объекта 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, если абсолютное значение argeps.
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