Vector2

Класс, определяющий двумерный вектор. Двумерный вектор — это упорядоченная пара чисел (обозначенных x и y), которая может быть использована для представления ряда вещей, например:

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

Пример

const a = new v3d.Vector2(0, 1); // в отсутствии аргументов станет (0, 0) const b = new v3d.Vector2(); const d = a.distanceTo(b);

Конструктор

Vector2(x : Float, y : Float)

Создает новый Vector2.

Свойства

.height : Float

Псевдоним для y.

.isVector2 : Boolean

Read-only flag to check if a given object is of type Vector2.

.width : Float

Псевдоним для x.

.x : Float

.y : Float

Методы

.add(v : Vector2) → this

Добавляет v к текущему вектору.

.addScalar(s : Float) → this

Добавляет скалярное значение s к значениям x и y текущего вектора.

.addScaledVector(v : Vector2, s : Float) → this

Добавляет умножение v и s к текущему вектору.

.addVectors(a : Vector2, b : Vector2) → this

Устанавливает текущий вектор в a + b.

.angle() → Float

Вычисляет угол в радианах текущего вектора по отношению к положительному направлению оси X.

.applyMatrix3(m : Matrix3) → this

Умножает текущий вектор (с неявной 1 в качестве третьего компонента) на m.

.ceil() → this

Компоненты x и y текущего вектора округляются вверх до ближайшего целого значения.

.clamp(min : Vector2, max : Vector2) → this

Если значение x или y этого вектора больше, чем значение x или y вектора max, оно заменяется соответствующим значением. Если значение x или y этого вектора меньше значения x или y вектора min, оно заменяется соответствующим значением.

.clampLength(min : Float, max : Float) → this

Если длина текущего вектора больше значения max, то она становится max. Если длина текущего вектора меньше значения min, она она становится min.

.clampScalar(min : Float, max : Float) → this

Если значения x или y текущего вектора больше максимального значения, они заменяются максимальным значением. Если значения x или y текущего вектора меньше минимального значения, они заменяются минимальным значением.

.clone() → Vector2

Возвращает новый Vector2 с теми же значениями x и y, что и текущий.

.copy(v : Vector2) → this

Копирует значения свойств x и y из переданного вектора в текущий.

.distanceTo(v : Vector2) → Float

Вычисляет расстояние от текущего вектора до v.

.manhattanDistanceTo(v : Vector2) → Float

Вычисляет расстояние городских кварталов от текущего вектора до v.

.distanceToSquared(v : Vector2) → Float

Вычисляет квадрат расстояния от данного вектора до v. Если вы просто сравниваете расстояние с другим расстоянием, то вместо него следует сравнивать расстояние в квадрате, так как оно вычисляется немного эффективнее.

.divide(v : Vector2) → this

Делит текущий вектор на v.

.divideScalar(s : Float) → this

Делит текущий вектор на скаляр s.

.dot(v : Vector2) → Float

Вычисляет скалярное произведение данного вектора и v.

.cross(v : Vector2) → Float

Вычисляет векторное произведение данного вектора и v. Обратите внимание, что векторное произведение в двумерном пространстве не имеет четкого определения. Этот метод вычисляет геометрическое векторное произведение, часто используемое в двумерной графике.

.equals(v : Vector2) → Boolean

Проверяет строгое равенство данного вектора и v.

.floor() → this

Компоненты текущего вектора округляются вниз до ближайшего целого значения.

.fromArray(array : Array, offset : Integer) → this

Устанавливает значение x текущего вектора в array[offset] и y в array[offset + 1].

.fromBufferAttribute(attribute : BufferAttribute, index : Integer) → this

Устанавливает x и y вектора из указанного атрибута.

.getComponent(index : Integer) → Float

index0 или 1.

Если индекс равен 0, возвращает x вектора. Если индекс равен 1, возвращает y вектора.

.length() → Float

Вычисляет Евклидову длину (длину прямой линии) от (0, 0) до (x, y).

.manhattanLength() → Float

Вычисляет расстояние городских кварталов для текущего вектора.

.lengthSq() → Float

Вычисляет квадрат Евклидовой длины (длины прямой) от (0, 0) до (x, y). Если вы сравниваете длины векторов, то вместо этого следует сравнивать квадрат длины, так как он вычисляется немного эффективнее.

.lerp(v : Vector2, alpha : Float) → this

Линейно интерполирует между текущим вектором и v, где alpha — процентное расстояние вдоль линии: alpha = 0 оставит текущий вектор, а alpha = 1 установит в v.

.lerpVectors(v1 : Vector2, v2 : Vector2, alpha : Float) → this

Устанавливает текущий вектор как вектор, линейно интерполированный между v1 и v2, где alpha - процентное расстояние вдоль линии, соединяющей два вектора: alpha = 0 установит в v1, а alpha = 1 установит в v2.

.negate() → this

Инвертирует текущий вектор - т.е. устанавливает x = -x и y = -y.

.normalize() → this

Преобразует текущий вектор в единичный вектор — то есть устанавливает его равным вектору с тем же направлением, что и этот, но с длиной равной 1.

.max(v : Vector2) → this

Если значение x или y текущего вектора меньше значения x или y v, заменяет данное значение соответствующим значением max.

.min(v : Vector2) → this

Если значение x или y текущего вектора больше значения x или y v, заменяет данное значение соответствующим значением min.

.multiply(v : Vector2) → this

Умножает текущий вектор на v.

.multiplyScalar(s : Float) → this

Умножает текущий вектор на скаляр s.

.rotateAround(center : Vector2, angle : Float) → this

Вращает текущий вектор вокруг center на angle радиан.

.round() → this

Компоненты текущего вектора округляются до ближайшего целого значения.

.roundToZero() → this

Компоненты текущего вектора округляются в сторону нуля (вверх, если отрицательные, вниз, если положительные) до целого значения.

.set(x : Float, y : Float) → this

Устанавливает компоненты x и y текущего вектора.

.setComponent(index : Integer, value : Float) → null

  • value — значение компонента.

    Если индекс равен 0, устанавливает x в значение value. Если индекс равен 1, установливает y в значение value.

    .setLength(l : Float) → this

    Устанавливает текущий вектор в вектор с тем же направлением, но с длиной равной l.

    .setScalar(scalar : Float) → this

    Устанавливает значения x и y текущего вектора равными scalar.

    .setX(x : Float) → this

    Заменяет значение x текущего вектора на x.

    .setY(y : Float) → this

    Заменяет значение y текущего вектора на y.

    .sub(v : Vector2) → this

    Вычитает v из данного вектора.

    .subScalar(s : Float) → this

    Вычитает s из компонент x и y данного вектора.

    .subVectors(a : Vector2, b : Vector2) → this

    Устанавливает текущий вектор в a - b.

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

    Возвращает массив [x, y], или копирует x и y в предоставленный array.

    .random() → this

    Устанавливает каждый компонент текущего вектора в псевдослучайное значение между 0 и 1, исключая 1.

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

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