Euler - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать Euler в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

# Euler

Класс, определяющий углы Эйлера.

Углы Эйлера описывают вращательное преобразование, посредством вращения объекта на заданную величину вокруг каждой оси в определённом порядке.

Перечисление экземпляра Euler выдаёт его компоненты (x, y, z, order) в том же порядке.

## Пример

`const a = new v3d.Euler(0, 1, 1.57, 'XYZ'); const b = new v3d.Vector3(1, 0, 1); b.applyEuler(a);`

## Конструктор

### Euler(x : Float, y : Float, z : Float, order : String)

- x — (необ.) угол наклона оси x в радианах. По умолчанию `0`.
- y — (необ.) угол наклона оси y в радианах. По умолчанию `0`.
- z — (необ.) угол наклона оси z в радианах. По умолчанию `0`.
- order — (необ.) строка, представляющая порядок применения вращений, по умолчанию `'XYZ'` (должен быть в верхнем регистре).

## Свойства

### # .isEuler : Boolean

Флаг, указывающий что данный объект является экземпляром Euler.

### # .order : String

Порядок применения вращений. По умолчанию — `'XYZ'`, что означает, что сначала объект будет повернут вокруг оси X, затем вокруг оси Y и, наконец, вокруг оси Z. Другими вариантами являются: `'YZX'`, `'ZXY'`, `'XZY'`, `'YXZ'` и `'ZYX'`. Они должны быть в верхнем регистре.

«Вердж3Д» использует intrinsic (внутренние углы) Тайт-Брайана. Это означает, что вращение выполняется относительно локальной системы координат. То есть, для порядка `'XYZ'` вращение происходит сначала вокруг локальной оси X (которая совпадает с мировой осью X), затем вокруг локальной оси Y (которая теперь может отличаться от мировой оси Y), затем локальной оси Z (которая может отличаться от мировой оси Z).

### # .x : Float

Текущее значение компонента x.

### # .y : Float

Текущее значение компонента y.

### # .z : Float

Текущее значение компонента z.

## Методы

### # .copy(euler : Euler) → Euler

Копирует значение из euler в текущие углы Эйлера.

### # .clone() → Euler

Возвращает новые углы Эйлера с теми же параметрами, что и текущие.

### # .equals(euler : Euler) → Boolean

Проверяет строгое равенство данных углов Эйлера и euler.

### # .equalsEps(euler : Euler, eps : Float) → Boolean

Проверяет равенство данных углов Эйлера и заданного euler с учетом погрешности `eps`.

### # .fromArray(array : Array) → Euler

array длиной 3 или 4. Необязательный 4-й аргумент соответствует order.

Присваивает текущий Эйлеров угол x из элемента массива `array[0]`.
Присваивает текущий Эйлеров угол y из элемента массива `array[1]`.
Присваивает текущий Эйлеров угол z из элемента массива `array[2]`.
Также может присвоить параметр order из элемента массива `array[3]` (при наличии).

### # .makeAlternative() → Euler

Меняет текущие углы Эйлера на альтернативный набор вращений в диапазоне [-π, π), соответствующий той же ориентации (например: от `(0, 0, π)` до `(-π, -π, 0)`).

### # .reorder(newOrder : String) → Euler

Создаёт углы Эйлера с новым порядком. Выполняется посредством создания кватерниона из углов Эйлера и установки углов с новым порядком из кватерниона.

Метод сбрасывает информацию о количестве поворотов.

### # .set(x : Float, y : Float, z : Float, order : String) → Euler

- x — угол наклона оси x в радианах.
- y — угол наклона оси y в радианах.
- z — угол наклона оси z в радианах.
- order — (необ.) строка, представляющая порядок применения вращений.

Устанавливает углы Эйлера и, опционально, order.

### # .setFromRotationMatrix(m : Matrix4, order : String) → Euler

- m — матрица Matrix4 верхняя 3x3 часть которой является матрицей вращения (т.е. без масштабирования).
- order — (необ.) строка, представляющая порядок применения вращений.

Устанавливает углы Эйлера на основе матрицы вращения и указанного порядка.

### # .setFromQuaternion(q : Quaternion, order : String) → Euler

- q — нормализованный кватернион.
- order — (необ.) строка, представляющая порядок применения вращений.

Устанавливает углы Эйлера из нормализованного кватерниона на основе порядка, указанного в order.

### # .setFromVector3(vector : Vector3, order : String) → Euler

- vector — Vector3.
- order — (необ.) строка, представляющая порядок применения вращений.

Устанавливает параметры x, y и z и, по желанию, обновляет order.

### # .toArray(array : Array, offset : Integer) → Array

- array — (необ.) массив для хранения эйлера.
- offset (необ.) смещение в массиве.

Возвращает массив вида [x, y, z, order].

## Исходный файл

О том как получить исходный код этого модуля читайте тут.