Vector4
Четыре компоненты float: X, Y, Z и W.
Структура с компонентами X, Y, Z и W; в установленной C# SDK они имеют тип float. Хранит четыре числовых значения. Смысл W задаёт использующий вектор API: сам тип не объявляет его альфа-каналом или готовым вращением. Присваивание копирует значение.
Для проективных вычислений проверяйте, ожидает ли операция однородные координаты и выполняет ли деление на W. Не считайте любой Vector4 готовой точкой Vector3 без такого контекста.
Vector4 не преобразуется в bool в C#. Точное сравнение с Vector4.Zero и проверка с допуском решают разные задачи; для данных с плавающей точкой также проверяйте конечность значений.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
Свойства4
InfСвойство
public static Vector4 Inf { get; }Вектор бесконечности, вектор со всеми компонентами @C#.INF.
ItemСвойство
public float this[int index] { get; set; }Доступ к компонентам вектора с использованием их индекса.
OneСвойство
public static Vector4 One { get; }Вектор-единица — вектор у которого все координаты равны 1.
ZeroСвойство
public static Vector4 Zero { get; }Нулевой вектор — вектор у которого все координаты равны 0.
Методы55
AbsVector4
CeilVector4
public Vector4 Ceil();Возвращает новый вектор, все компоненты которого округлены в большую сторону (в сторону положительной бесконечности).
Clamp2 перегрузки
public Vector4 Clamp(Vector4 min, Vector4 max);Возвращает новый вектор со всеми компонентами, зажатыми между компонентами Vector4.Min и Vector4.Max, путем запуска @GlobalScope.clamp для каждого компонента.
| Имя | Тип | По умолчанию |
|---|---|---|
min | Vector4 | — |
max | Vector4 | — |
minВектор с минимальными допустимыми значениями.
maxВектор с максимальными допустимыми значениями.
Vector4Вектор с зажимом всех компонентов.
public Vector4 Clamp(float min, float max);Возвращает новый вектор со всеми компонентами, зажатыми между компонентами Vector4.Min и Vector4.Max, путем запуска @GlobalScope.clamp для каждого компонента.
| Имя | Тип | По умолчанию |
|---|---|---|
min | float | — |
max | float | — |
minМинимальное допустимое значение.
maxМаксимально допустимое значение.
Vector4Вектор с зажимом всех компонентов.
CubicInterpolateVector4
public Vector4 CubicInterpolate(Vector4 b, Vector4 preA, Vector4 postB, float weight);Осуществляет кубическую интерполяцию между этим вектором и b использование pre_a и post_b как ручки, и возвращает результат в положение weight. weight находится в диапазоне: 0.0 в адрес 1.0, представляющее собой сумму интерполяции.
| Имя | Тип | По умолчанию |
|---|---|---|
b | Vector4 | — |
preA | Vector4 | — |
postB | Vector4 | — |
weight | float | — |
bВектор назначения.
preAВектор перед этим вектором.
postBВектор после b.
weightЗначение на диапазоне от 0,0 до 1,0, представляющее собой величину интерполяции.
Vector4Вектор интерполяции.
CubicInterpolateInTimeVector4
public Vector4 CubicInterpolateInTime(Vector4 b, Vector4 preA, Vector4 postB, float weight, float t, float preAT, float postBT);Осуществляет кубическую интерполяцию между этим вектором и b использование pre_a и post_b как ручки, и возвращает результат в положение weight. weight находится в диапазоне: 0.0 в адрес 1.0, представляющее собой сумму интерполяции.
Он может осуществлять более гладкую интерполяцию, чем Vector4.CubicInterpolate по временным значениям.
| Имя | Тип | По умолчанию |
|---|---|---|
b | Vector4 | — |
preA | Vector4 | — |
postB | Vector4 | — |
weight | float | — |
t | float | — |
preAT | float | — |
postBT | float | — |
bВектор назначения.
preAВектор перед этим вектором.
postBВектор после b.
weightЗначение на диапазоне от 0,0 до 1,0, представляющее собой величину интерполяции.
Vector4Вектор интерполяции.
Deconstructvoid
public void Deconstruct(out float x, out float y, out float z, out float w);Метод помощи для вывода из строя тюпля.
| Имя | Тип | По умолчанию |
|---|---|---|
x | float | — |
y | float | — |
z | float | — |
w | float | — |
DirectionToVector4
public Vector4 DirectionTo(Vector4 to);Возвращает нормализованный вектор, указывающий из этого вектора на to.
a.direction_to(b) эквивалентно (b - a).normalized(). См. также Vector4.Normalized.
| Имя | Тип | По умолчанию |
|---|---|---|
to | Vector4 | — |
toДругой вектор указывает в сторону.
Vector4Направление от этого вектора до to.
DistanceSquaredTofloat
public float DistanceSquaredTo(Vector4 to);Возвращает квадрат евклидова расстояния между этим вектором и to.
Этот метод работает быстрее, чем Vector4.DistanceTo, поэтому предпочитайте его, если вам нужно сравнить векторы или вам нужен квадрат расстояния для какой-либо формулы.
| Имя | Тип | По умолчанию |
|---|---|---|
to | Vector4 | — |
toДругой вектор для использования.
floatРасстояние в квадрате между двумя векторами.
DistanceTofloat
public float DistanceTo(Vector4 to);Возвращает евклидово расстояние между этим вектором и to.
| Имя | Тип | По умолчанию |
|---|---|---|
to | Vector4 | — |
toДругой вектор для использования.
floatРасстояние между двумя векторами.
Dotfloat
public float Dot(Vector4 with);Возвращает скалярное произведение данного вектора и with.
| Имя | Тип | По умолчанию |
|---|---|---|
with | Vector4 | — |
withДругой вектор для использования.
floatТочный продукт двух векторов.
Equals2 перегрузки
public bool Equals(Vector4 other);Returns (Возврат) true если векторы точно равны.
Примечание: Из-за ошибок в точности в плавающей точке рассмотреть вопрос об использовании
Vector4.IsEqualApprox вместо этого, что более надежно.
| Имя | Тип | По умолчанию |
|---|---|---|
other | Vector4 | — |
otherДругой вектор.
boolВекторы равны или нет.
public override bool Equals(object? obj);Returns (Возврат) true если вектор точно равен
к данному объектуobj).
Примечание: Из-за ошибок в точности в плавающей точке рассмотреть вопрос об использовании
Vector4.IsEqualApprox вместо этого, что более надежно.
| Имя | Тип | По умолчанию |
|---|---|---|
obj | object | — |
objОбъект, с которым можно сравниться.
boolРавно ли вектор и объект равны.
FloorVector4
public Vector4 Floor();Возвращает новый вектор, все компоненты которого округлены в меньшую сторону (в сторону отрицательной бесконечности).
GetHashCodeint
public override int GetHashCode();Выполняет функцию хеширования Vector4.
intКод хэша для этого вектора.
InverseVector4
public Vector4 Inverse();Возвращает обратный вектор. Это то же самое, что Vector4(1.0 / v.x, 1.0 / v.y, 1.0 / v.z, 1.0 / v.w).
###=равный_ примерно
Vector4Обратная сторона этого вектора.
IsEqualApproxbool
public bool IsEqualApprox(Vector4 other);Возвращает true, если этот вектор и to приблизительно равны, путем запуска @GlobalScope.is_equal_approx для каждого компонента.
| Имя | Тип | По умолчанию |
|---|---|---|
other | Vector4 | — |
otherДругой вектор для сравнения.
boolВекторы примерно равны.
IsFinitebool
public bool IsFinite();Возвращает true, если этот вектор конечен, вызывая @GlobalScope.is_finite для каждого компонента.
boolЯвляется ли этот вектор конечным или нет.
IsNormalizedbool
public bool IsNormalized();Возвращает true, если вектор нормализован, т.е. его длина приблизительно равна 1.
###=0_ примерно
boolA bool , указывающее, нормализован ли вектор.
IsZeroApproxbool
public bool IsZeroApprox();Возвращает true, если значения этого вектора приблизительно равны нулю, выполняя @GlobalScope.is_zero_approx для каждого компонента.
Этот метод быстрее, чем использование Vector4.IsEqualApprox с одним значением в качестве нулевого вектора.
boolЯвляется ли вектор примерно нулевым.
Lengthfloat
public float Length();Возвращает длину (величину) данного вектора.
floatДлина этого вектора.
LengthSquaredfloat
public float LengthSquared();Возвращает длину данного вектора в квадрате.
Этот метод выполняется быстрее, чем Vector4.Length, поэтому он предпочтительнее если вам нужно сравнить векторы или нужно расстояние в квадрате для какой-либо формулы.
floatДлина в квадрате этого вектора.
LerpVector4
public Vector4 Lerp(Vector4 to, float weight);Возвращает результат линейной интерполяции между данным вектором и to на величину weight. weight находится в диапазоне от 0.0 до 1.0, что представляет собой величину интерполяции.
| Имя | Тип | По умолчанию |
|---|---|---|
to | Vector4 | — |
weight | float | — |
toВектор назначения для интерполяции.
weightЗначение на диапазоне от 0,0 до 1,0, представляющее собой величину интерполяции.
Vector4Вектор интерполяции.
Max2 перегрузки
public Vector4 Max(Vector4 with);Возвращает покомпонентный максимум этого и with, что эквивалентно Vector4(maxf(x, with.x), maxf(y, with.y), maxf(z, with.z), maxf(w, with.w)).
| Имя | Тип | По умолчанию |
|---|---|---|
with | Vector4 | — |
withДругой вектор для использования.
Vector4Полученный максимальный вектор.
public Vector4 Max(float with);Возвращает покомпонентный максимум этого и with, что эквивалентно Vector4(maxf(x, with.x), maxf(y, with.y), maxf(z, with.z), maxf(w, with.w)).
| Имя | Тип | По умолчанию |
|---|---|---|
with | float | — |
withДругое значение для использования.
Vector4Полученный максимальный вектор.
MaxAxisIndexVector4.Axis
public Vector4.Axis MaxAxisIndex();Возвращает ось наибольшего значения вектора. См. константы AXIS_*. Если все компоненты равны, этот метод возвращает Vector4.Axis.X.
Vector4.AxisИндекс верхней оси.
Min2 перегрузки
public Vector4 Min(Vector4 with);Возвращает покомпонентный минимум этого и with, эквивалентный Vector4(minf(x, with.x), minf(y, with.y), minf(z, with.z), minf(w, with.w)).
| Имя | Тип | По умолчанию |
|---|---|---|
with | Vector4 | — |
withДругой вектор для использования.
Vector4Получаемый минимальный вектор.
public Vector4 Min(float with);Возвращает покомпонентный минимум этого и with, эквивалентный Vector4(minf(x, with.x), minf(y, with.y), minf(z, with.z), minf(w, with.w)).
| Имя | Тип | По умолчанию |
|---|---|---|
with | float | — |
withДругое значение для использования.
Vector4Получаемый минимальный вектор.
MinAxisIndexVector4.Axis
public Vector4.Axis MinAxisIndex();Возвращает ось наименьшего значения вектора. См. константы AXIS_*. Если все компоненты равны, этот метод возвращает Vector4.Axis.W.
Vector4.AxisУказатель нижней оси.
NormalizedVector4
public Vector4 Normalized();Возвращает результат масштабирования вектора до единичной длины. Эквивалентно v / v.length(). Возвращает (0, 0, 0, 0), если v.length() == 0. См. также Vector4.IsNormalized.
Примечание: Эта функция может возвращать неверные значения, если длина входного вектора близка к нулю.
Vector4Нормализованная версия вектора.
PosMod2 перегрузки
public Vector4 PosMod(Vector4 modv);Возвращает вектор, состоящий из @GlobalScope.fposmod компонентов этого вектора и mod.
| Имя | Тип | По умолчанию |
|---|---|---|
modv | Vector4 | — |
modvВектор, представляющий дивизоров операции.
public Vector4 PosMod(float mod);Возвращает вектор, состоящий из @GlobalScope.fposmod компонентов этого вектора и mod.
| Имя | Тип | По умолчанию |
|---|---|---|
mod | float | — |
modЗначение, представляющее счетчика операции.
RoundVector4
public Vector4 Round();Возвращает новый вектор, все компоненты которого округлены до ближайшего целого числа, а половинные значения округлены от нуля.
Vector4Закругленный вектор.
SignVector4
public Vector4 Sign();Возвращает новый вектор, в котором каждый компонент установлен на 1.0, если он положительный, -1.0, если он отрицательный, и 0.0, если он равен нулю. Результат идентичен вызову @GlobalScope.sign для каждого компонента.
Vector4Вектор со всеми компонентами в качестве либо 1, -1или 0.
Snapped2 перегрузки
public Vector4 Snapped(Vector4 step);Возвращает новый вектор, в котором каждый компонент привязан к ближайшему кратному соответствующего компонента в step. Это также можно использовать для округления компонентов до произвольного числа десятичных знаков.
| Имя | Тип | По умолчанию |
|---|---|---|
step | Vector4 | — |
stepВекторное значение, представляющее размер ступеньки.
Vector4Сломанный вектор.
public Vector4 Snapped(float step);Возвращает новый вектор, в котором каждый компонент привязан к ближайшему кратному соответствующего компонента в step. Это также можно использовать для округления компонентов до произвольного числа десятичных знаков.
| Имя | Тип | По умолчанию |
|---|---|---|
step | float | — |
stepРазмер шага, до которого можно дойти.
Vector4Сломанный вектор.
ToString2 перегрузки
public override string ToString();Преобразует это Vector4 к а string.
stringA string представление этого вектора.
public string ToString(string? format);Преобразует это Vector4 к а string с указанным format.
| Имя | Тип | По умолчанию |
|---|---|---|
format | string | — |
stringA string представление этого вектора.
op_AdditionVector4
public static Vector4 operator +(Vector4 left, Vector4 right);Добавить каждый компонент Vector4
с элементами данного Vector4.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
Vector4Добавленный вектор.
op_Division2 перегрузки
public static Vector4 operator /(Vector4 vec, Vector4 divisorv);Разделяет каждый компонент Vector4
элементами данной Vector4.
| Имя | Тип | По умолчанию |
|---|---|---|
vec | Vector4 | — |
divisorv | Vector4 | — |
vecВектор дивидендов.
divisorvВектор дивизора.
Vector4Разделенный вектор.
public static Vector4 operator /(Vector4 vec, float divisor);Разделяет каждый компонент Vector4
Клянусь данным System.Single.
| Имя | Тип | По умолчанию |
|---|---|---|
vec | Vector4 | — |
divisor | float | — |
vecВектор дивидендов.
divisorЗначимость дивизора.
Vector4Разделенный вектор.
op_Equalitybool
public static bool operator ==(Vector4 left, Vector4 right);Returns (Возврат) true если векторы точно равны.
Примечание: Из-за ошибок в точности в плавающей точке рассмотреть вопрос об использовании
Vector4.IsEqualApprox вместо этого, что более надежно.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
boolВекторы равны или нет.
op_GreaterThanbool
public static bool operator >(Vector4 left, Vector4 right);Сравнит два Vector4 Векторы по первой проверке
значение X left Вектор больше, чем
значение X right Вектор.
Если значения X в точности равны, то он повторяет эту проверку
с значениями Y, Z и, наконец, W двух векторов.
Этот оператор полезен для сортировки векторов.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
boolБудь то левый больше, чем правый.
op_GreaterThanOrEqualbool
public static bool operator >=(Vector4 left, Vector4 right);Сравнит два Vector4 Векторы по первой проверке
значение X left Вектор больше, чем
или равняется значению Х right Вектор.
Если значения X в точности равны, то он повторяет эту проверку
с значениями Y, Z и, наконец, W двух векторов.
Этот оператор полезен для сортировки векторов.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
boolНеважно, больше левого или нет.
op_Inequalitybool
public static bool operator !=(Vector4 left, Vector4 right);Returns (Возврат) true если векторы не равны.
Примечание: Из-за ошибок в точности в плавающей точке рассмотреть вопрос об использовании
Vector4.IsEqualApprox вместо этого, что более надежно.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
boolНе равны ли векторы.
op_LessThanbool
public static bool operator <(Vector4 left, Vector4 right);Сравнит два Vector4 Векторы по первой проверке
значение X left Вектор меньше
значение X right Вектор.
Если значения X в точности равны, то он повторяет эту проверку
с значениями Y, Z и, наконец, W двух векторов.
Этот оператор полезен для сортировки векторов.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
boolЛевый или нет меньше, чем правый.
op_LessThanOrEqualbool
public static bool operator <=(Vector4 left, Vector4 right);Сравнит два Vector4 Векторы по первой проверке
значение X left Вектор меньше
или равняется значению Х right Вектор.
Если значения X в точности равны, то он повторяет эту проверку
с значениями Y, Z и, наконец, W двух векторов.
Этот оператор полезен для сортировки векторов.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
boolНеважно, меньше левое или равно правому.
op_Modulus2 перегрузки
public static Vector4 operator %(Vector4 vec, Vector4 divisorv);Получает оставшуюся часть каждого компонента Vector4
с элементами данного Vector4.
В этой операции используется перерезанное деление, которое зачастую не является желательным
так как это не работает с отрицательными цифрами.
Рассмотреть вопрос об использовании Vector4.PosMod вместо этого
если вы хотите справиться с отрицательными числами.
| Имя | Тип | По умолчанию |
|---|---|---|
vec | Vector4 | — |
divisorv | Vector4 | — |
vecВектор дивидендов.
divisorvВектор дивизора.
Vector4Оставшийся вектор.
public static Vector4 operator %(Vector4 vec, float divisor);Получает оставшуюся часть каждого компонента Vector4
с элементами данного System.Single.
В этой операции используется перерезанное деление, которое зачастую не является желательным
так как это не работает с отрицательными цифрами.
Рассмотреть вопрос об использовании Vector4.PosMod вместо этого
если вы хотите справиться с отрицательными числами.
| Имя | Тип | По умолчанию |
|---|---|---|
vec | Vector4 | — |
divisor | float | — |
vecВектор дивидендов.
divisorЗначимость дивизора.
Vector4Оставшийся вектор.
op_Multiply3 перегрузки
public static Vector4 operator *(Vector4 left, Vector4 right);Множить каждый элемент Vector4
элементами данной Vector4.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
Vector4Множественный вектор.
public static Vector4 operator *(Vector4 vec, float scale);Множить каждый элемент Vector4
Клянусь данным System.Single.
| Имя | Тип | По умолчанию |
|---|---|---|
vec | Vector4 | — |
scale | float | — |
vecВектор умножения.
scaleМасштаб умножить на.
Vector4Множественный вектор.
public static Vector4 operator *(float scale, Vector4 vec);Множить каждый элемент Vector4
Клянусь данным System.Single.
| Имя | Тип | По умолчанию |
|---|---|---|
scale | float | — |
vec | Vector4 | — |
scaleМасштаб умножить на.
vecВектор умножения.
Vector4Множественный вектор.
op_SubtractionVector4
public static Vector4 operator -(Vector4 left, Vector4 right);Вычитает каждый элемент Vector4
элементами данной Vector4.
| Имя | Тип | По умолчанию |
|---|---|---|
left | Vector4 | — |
right | Vector4 | — |
leftЛевый вектор.
rightПравильный вектор.
Vector4Вычтенный вектор.
op_UnaryNegationVector4
public static Vector4 operator -(Vector4 vec);Возвращает отрицательную стоимость Vector4.
Это то же самое, что и написание new Vector4(-v.X, -v.Y, -v.Z, -v.W).
Эта операция искажает направление вектора,
Держать одну и ту же величину.
При поплавках число ноль может быть либо положительным, либо отрицательным.
| Имя | Тип | По умолчанию |
|---|---|---|
vec | Vector4 | — |
vecВектор отрицания/отклонения.
Vector4Отклоненный/отключенный вектор.
op_UnaryPlusVector4
public static Vector4 operator +(Vector4 vec);Возвращает то же значение, как если бы + не было. Унарный + ничего не делает, но иногда он может сделать ваш код более читаемым.
| Имя | Тип | По умолчанию |
|---|---|---|
vec | Vector4 | — |
vecВектор, который ничего не делает.
Vector4Изначальный вектор.
Поля и константы4
WПоле
public float W;Компонент вектора W. Также доступен с помощью индексной позиции [3].
XПоле
public float X;X компонент вектора. Может быть доступен через индекс [0].
YПоле
public float Y;Y компонент вектора. Может быть доступен через индекс [1].
ZПоле
public float Z;Z компонент вектора. Также может быть доступен по индексу [2].
Vector4.Axis
| Значение | Описание |
|---|---|
W = 3 | Перечисленное значение для оси W. Возвращается |
X = 0 | Перечисленное значение для оси X. Возвращается |
Y = 1 | Перечисленное значение для оси Y. Возвращается |
Z = 2 | Перечисленное значение для оси Z. Возвращается |