Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Vector3i
Трехмерный вектор, использующий целочисленные координаты.
Описание
Структура из 3 элементов, которая может использоваться для представления координат сетки 3D или любого другого триплета целых чисел.
Она использует целочисленные координаты и поэтому предпочтительнее Vector3, когда требуется точная точность. Обратите внимание, что значения ограничены 32 битами, и в отличие от Vector3 это нельзя настроить с помощью опции сборки движка. Используйте int или PackedInt64Array, если требуются 64-битные значения.
Примечание: В булевом контексте Vector3i будет оцениваться как false, если он равен Vector3i(0, 0, 0). В противном случае Vector3i всегда будет оцениваться как true.
Обучающие материалы
Свойства
|
||
|
||
|
Конструкторы
Vector3i() |
|
Методы
abs() const |
|
distance_squared_to(to: Vector3i) const |
|
distance_to(to: Vector3i) const |
|
length() const |
|
length_squared() const |
|
max_axis_index() const |
|
min_axis_index() const |
|
sign() const |
|
Операторы
operator !=(right: Vector3i) |
|
operator %(right: Vector3i) |
|
operator %(right: int) |
|
operator *(right: Vector3i) |
|
operator *(right: float) |
|
operator *(right: int) |
|
operator +(right: Vector3i) |
|
operator -(right: Vector3i) |
|
operator /(right: Vector3i) |
|
operator /(right: float) |
|
operator /(right: int) |
|
operator <(right: Vector3i) |
|
operator <=(right: Vector3i) |
|
operator ==(right: Vector3i) |
|
operator >(right: Vector3i) |
|
operator >=(right: Vector3i) |
|
operator [](index: int) |
|
Перечисления
enum Axis: 🔗
Axis AXIS_X = 0
Перечисленное значение для оси X. Возвращается max_axis_index() и min_axis_index().
Axis AXIS_Y = 1
Перечисленное значение для оси Y. Возвращается max_axis_index() и min_axis_index().
Axis AXIS_Z = 2
Перечисленное значение для оси Z. Возвращается max_axis_index() и min_axis_index().
Константы
ZERO = Vector3i(0, 0, 0) 🔗
Нулевой вектор — вектор у которого все координаты равны 0.
ONE = Vector3i(1, 1, 1) 🔗
Вектор-единица — вектор у которого все координаты равны 1.
MIN = Vector3i(-2147483648, -2147483648, -2147483648) 🔗
Вектор Min - вектор, все компоненты которого равны INT32_MIN. Может использоваться как отрицательный целочисленный эквивалент Vector3.INF.
MAX = Vector3i(2147483647, 2147483647, 2147483647) 🔗
Вектор Max - вектор, все компоненты которого равны INT32_MAX. Может использоваться как целочисленный эквивалент Vector3.INF.
LEFT = Vector3i(-1, 0, 0) 🔗
Левый единичный вектор. Представляет локальное направление налево и глобальное направление запад.
RIGHT = Vector3i(1, 0, 0) 🔗
Правый единичный вектор. Представляет локальное направление вправо и глобальное направление на восток.
UP = Vector3i(0, 1, 0) 🔗
Верхний единичный вектор.
DOWN = Vector3i(0, -1, 0) 🔗
Нижний единичный вектор.
FORWARD = Vector3i(0, 0, -1) 🔗
Прямой единичный вектор. Представляет локальное направление вперед и глобальное направление на север.
BACK = Vector3i(0, 0, 1) 🔗
Вектор единицы назад. Представляет локальное направление назад и глобальное направление юг.
Описания свойств
X компонент вектора. Может быть доступен через индекс [0].
Y компонент вектора. Может быть доступен через индекс [1].
Z компонент вектора. Также может быть доступен по индексу [2].
Описания конструктора
Создает инициализированный по умолчанию Vector3i со всеми компонентами, установленными в 0.
Vector3i Vector3i(from: Vector3i)
Создает Vector3i как копию заданного Vector3i.
Vector3i Vector3i(from: Vector3)
Создает новый Vector3i из заданного Vector3 путем усечения дробных частей компонентов (округление в сторону нуля). Для другого поведения рассмотрите возможность передачи результата Vector3.ceil(), Vector3.floor() или Vector3.round() этому конструктору.
Vector3i Vector3i(x: int, y: int, z: int)
Возвращает Vector3i с заданными компонентами.
Описания метода
Возвращает новый вектор в котором все компоненты будут абсолютными значениями (т.е положительными).
Vector3i clamp(min: Vector3i, max: Vector3i) const 🔗
Возвращает новый вектор со всеми компонентами, зажатыми между компонентами min и max, путем запуска @GlobalScope.clamp() для каждого компонента.
Vector3i clampi(min: int, max: int) const 🔗
Возвращает новый вектор со всеми компонентами, зажатыми между min и max, путем запуска @GlobalScope.clamp() для каждого компонента.
int distance_squared_to(to: Vector3i) const 🔗
Returns the squared Euclidean distance between this vector and to.
This method runs faster than distance_to(), so prefer it if you need to compare vectors or need the squared distance for some formula.
float distance_to(to: Vector3i) const 🔗
Returns the Euclidean distance between this vector and to.
Возвращает длину (величину) данного вектора.
Возвращает длину данного вектора в квадрате.
Этот метод выполняется быстрее, чем length(), поэтому он предпочтительнее если вам нужно сравнить векторы или нужно расстояние в квадрате для какой-либо формулы.
Vector3i max(with: Vector3i) const 🔗
Возвращает покомпонентный максимум этого и with, эквивалентно Vector3i(maxi(x, with.x), maxi(y, with.y), maxi(z, with.z)).
Возвращает ось наибольшего значения вектора. См. константы AXIS_*. Если все компоненты равны, этот метод возвращает AXIS_X.
Vector3i maxi(with: int) const 🔗
Возвращает покомпонентный максимум этого и with, что эквивалентно Vector3i(maxi(x, with), maxi(y, with), maxi(z, with)).
Vector3i min(with: Vector3i) const 🔗
Возвращает покомпонентный минимум этого и with, эквивалентно Vector3i(mini(x, with.x), mini(y, with.y), mini(z, with.z)).
Возвращает ось наименьшего значения вектора. См. константы AXIS_*. Если все компоненты равны, этот метод возвращает AXIS_Z.
Vector3i mini(with: int) const 🔗
Возвращает покомпонентный минимум этого и with, эквивалентно Vector3i(mini(x, with), mini(y, with), mini(z, with)).
Возвращает новый вектор, в котором каждый компонент установлен на 1, если он положительный, -1, если он отрицательный, и 0, если он равен нулю. Результат идентичен вызову @GlobalScope.sign() для каждого компонента.
Vector3i snapped(step: Vector3i) const 🔗
Возвращает новый вектор, в котором каждый компонент привязан к ближайшему кратному соответствующего компонента в step.
Vector3i snappedi(step: int) const 🔗
Возвращает новый вектор, в котором каждый компонент привязан к ближайшему кратному step.
Описания оператора
bool operator !=(right: Vector3i) 🔗
Возвращает true, если векторы не равны.
Vector3i operator %(right: Vector3i) 🔗
Получает остаток каждого компонента Vector3i с компонентами заданного Vector3i. Эта операция использует усеченное деление, которое часто нежелательно, так как оно плохо работает с отрицательными числами. Рассмотрите возможность использования @GlobalScope.posmod() вместо этого, если вы хотите обрабатывать отрицательные числа.
print(Vector3i(10, -20, 30) % Vector3i(7, 8, 9)) # Prints (3, -4, 3)
Vector3i operator %(right: int) 🔗
Получает остаток каждого компонента Vector3i с заданным int. Эта операция использует усеченное деление, которое часто нежелательно, поскольку оно плохо работает с отрицательными числами. Рассмотрите возможность использования @GlobalScope.posmod() вместо этого, если вы хотите обрабатывать отрицательные числа.
print(Vector3i(10, -20, 30) % 7) # Prints (3, -6, 2)
Vector3i operator *(right: Vector3i) 🔗
Умножает каждый компонент Vector3i на компоненты заданного Vector3i.
print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # Выводит (30, 80, 150)
Vector3 operator *(right: float) 🔗
Умножает каждый компонент Vector3i на заданный float. Возвращает Vector3.
print(Vector3i(10, 15, 20) * 0.9) # Выводит (9.0, 13.5, 18.0)
Vector3i operator *(right: int) 🔗
Умножает каждый компонент Vector3i на заданное int.
Vector3i operator +(right: Vector3i) 🔗
Добавляет каждый компонент Vector3i к компонентам указанного Vector3i.
print(Vector3i(10, 20, 30) + Vector3i(3, 4, 5)) # Prints (13, 24, 35)
Vector3i operator -(right: Vector3i) 🔗
Вычитает каждый компонент Vector3i из компонентов заданного Vector3i.
print(Vector3i(10, 20, 30) - Vector3i(3, 4, 5)) # Prints (7, 16, 25)
Vector3i operator /(right: Vector3i) 🔗
Делит каждый компонент Vector3i на компоненты заданного Vector3i.
print(Vector3i(10, 20, 30) / Vector3i(2, 5, 3)) # Prints (5, 4, 10)
Vector3 operator /(right: float) 🔗
Делит каждый компонент Vector3i на заданное значение float. Возвращает Vector3.
print(Vector3i(1, 2, 3) / 2.5) # Выводит (0.4, 0.8, 1.2)
Vector3i operator /(right: int) 🔗
Делит каждый компонент Vector3i на заданное int.
bool operator <(right: Vector3i) 🔗
Сравнивает два вектора Vector3i, сначала проверяя, меньше ли значение X левого вектора, чем значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов, а затем со значениями Z. Этот оператор полезен для сортировки векторов.
bool operator <=(right: Vector3i) 🔗
Сравнивает два вектора Vector3i, сначала проверяя, меньше ли значение X левого вектора или равно ли ему значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов, а затем со значениями Z. Этот оператор полезен для сортировки векторов.
bool operator ==(right: Vector3i) 🔗
Возвращает true если векторы равны.
bool operator >(right: Vector3i) 🔗
Сравнивает два вектора Vector3i, сначала проверяя, больше ли значение X левого вектора, чем значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов, а затем со значениями Z. Этот оператор полезен для сортировки векторов.
bool operator >=(right: Vector3i) 🔗
Сравнивает два вектора Vector3i, сначала проверяя, больше ли значение X левого вектора или равно ли ему значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов, а затем со значениями Z. Этот оператор полезен для сортировки векторов.
Доступ к компонентам вектора осуществляется с помощью их index. v[0] эквивалентно v.x, v[1] эквивалентно v.y, а v[2] эквивалентно v.z.
Возвращает то же значение, как если бы + не было. Унарный + ничего не делает, но иногда он может сделать ваш код более читаемым.
Возвращает отрицательное значение Vector3i. Это то же самое, что и запись Vector3i(-v.x, -v.y, -v.z). Эта операция меняет направление вектора, сохраняя ту же величину.