Vector3
Представляет трехмерный вектор с использованием трех чисел двойной точности с плавающей запятой.
Реализует: IEquatable<Vector3>
Конструкторы
public Vector3(double x, double y, double z)
vector3 = Vector3(x, y, z)
Построен новый Vector3.
- x
- Компонент x Vector3.
- y
- Компонент y вектора 3.
- z
- Компонент z Vector3.
public Vector3(Vector2 v, double z)
vector3 = Vector3(v, z)
Создает новый экземпляр из данного Vector2d.
- v
- Vector2d для копирования компонентов.
- z
public Vector3(Vector3 v)
vector3 = Vector3(v)
Создает новый экземпляр из данного Vector3d.
- v
- Vector3d для копирования компонентов.
public Vector3(Vector4 v)
vector3 = Vector3(v)
Создает новый экземпляр из данного Vector4d.
- v
- Vector4d для копирования компонентов.
Свойства
public double LengthFast { get; }
value = vector3.LengthFast
Получает приближение длины вектора (величины).
public double LengthSquared { get; }
value = vector3.LengthSquared
Получает квадрат длины вектора (величины).
public Vector2 Xy { get; set; }
value = vector3.Xy
vector3.Xy = value
Получает или устанавливает OpenTK.Vector2d с компонентами X и Y этого экземпляра.
Методы
public static void Add(Vector3 a, Vector3 b, Vector3 result)
Vector3.Add(a, b, result)
Добавляет два вектора.
- a
- Левый операнд.
- b
- Правый операнд.
- result
- Результат операции.
public static Vector3 Add(Vector3 a, Vector3 b)
result = Vector3.Add(a, b)
Добавляет два вектора.
- a
- Левый операнд.
- b
- Правый операнд.
Возвращает: Результат операции.
public static void BaryCentric(Vector3 a, Vector3 b, Vector3 c, double u, double v, Vector3 result)
Vector3.BaryCentric(a, b, c, u, v, result)
Интерполируйте 3 вектора, используя барицентрические координаты
- a
- Первый входной вектор.
- b
- Второй входной вектор.
- c
- Третий входной вектор.
- u
- Первая Барицентрическая Координата.
- v
- Вторая Барицентрическая Координата.
- result
- Выход вектора. a когда u=v=0, b когда u=1,v=0, c когда u=0,v=1 и линейная комбинация a,b,c в противном случае
public static Vector3 BaryCentric(Vector3 a, Vector3 b, Vector3 c, double u, double v)
result = Vector3.BaryCentric(a, b, c, u, v)
Интерполируйте 3 вектора, используя барицентрические координаты
- a
- Первый входной вектор
- b
- Второй входной вектор
- c
- Третий входной вектор
- u
- Первая барицентрическая координата
- v
- Вторая барицентрическая координата
Возвращает: a когда u=v=0, b когда u=1,v=0, c когда u=0,v=1 и линейная комбинация a,b,c иначе
public static void CalculateAngle(Vector3 first, Vector3 second, double result)
Vector3.CalculateAngle(first, second, result)
Рассчитывается угол (в радианах) между двумя векторами.
- first
- Первый вектор.
- second
- Второй вектор.
- result
- Угол (в радианах) между векторами.
public static double CalculateAngle(Vector3 first, Vector3 second)
result = Vector3.CalculateAngle(first, second)
Рассчитывается угол (в радианах) между двумя векторами.
- first
- Первый вектор.
- second
- Второй вектор.
Возвращает: Угол (в радианах) между векторами.
public static void Clamp(Vector3 vec, Vector3 min, Vector3 max, Vector3 result)
Vector3.Clamp(vec, min, max, result)
Закрепить вектор на заданные минимальные и максимальные векторы
- vec
- Входящий вектор
- min
- Минимальный вектор
- max
- Максимальный вектор
- result
- Зажатый вектор
public static Vector3 Clamp(Vector3 vec, Vector3 min, Vector3 max)
result = Vector3.Clamp(vec, min, max)
Закрепить вектор на заданные минимальные и максимальные векторы
- vec
- Входящий вектор
- min
- Минимальный вектор
- max
- Максимальный вектор
Возвращает: Зажатый вектор
public static Vector3 ComponentMax(Vector3 a, Vector3 b)
result = Vector3.ComponentMax(a, b)
Вычислите компонентный максимум из двух векторов
- a
- Первый операнд
- b
- Второй операнд
Возвращает: Компонентно-мудрый максимум
public static void ComponentMax(Vector3 a, Vector3 b, Vector3 result)
Vector3.ComponentMax(a, b, result)
Вычислите компонентный максимум из двух векторов
- a
- Первый операнд
- b
- Второй операнд
- result
- Компонентно-мудрый максимум
public static Vector3 ComponentMin(Vector3 a, Vector3 b)
result = Vector3.ComponentMin(a, b)
Вычислить компонентный минимум из двух векторов
- a
- Первый операнд
- b
- Второй операнд
Возвращает: Компонентный минимум
public static void ComponentMin(Vector3 a, Vector3 b, Vector3 result)
Vector3.ComponentMin(a, b, result)
Вычислить компонентный минимум из двух векторов
- a
- Первый операнд
- b
- Второй операнд
- result
- Компонентный минимум
public static void Cross(Vector3 left, Vector3 right, Vector3 result)
Vector3.Cross(left, right, result)
Вычислить крест (вектор) из двух векторов
- left
- Первый операнд
- right
- Второй операнд
- result
- Крестовое произведение двух входов
Возвращает: Крестовое произведение двух входов
public static Vector3 Cross(Vector3 left, Vector3 right)
result = Vector3.Cross(left, right)
Вычислить крест (вектор) из двух векторов
- left
- Первый операнд
- right
- Второй операнд
Возвращает: Крестовое произведение двух входов
public static Vector3 Divide(Vector3 vector, Vector3 scale)
result = Vector3.Divide(vector, scale)
Разделяет вектор на компоненты вектора (шкалы).
- vector
- Левый операнд.
- scale
- Правый операнд.
Возвращает: Результат операции.
public static void Divide(Vector3 vector, double scale, Vector3 result)
Vector3.Divide(vector, scale, result)
Разделяет вектор на скаляр.
- vector
- Левый операнд.
- scale
- Правый операнд.
- result
- Результат операции.
public static Vector3 Divide(Vector3 vector, double scale)
result = Vector3.Divide(vector, scale)
Разделяет вектор на скаляр.
- vector
- Левый операнд.
- scale
- Правый операнд.
Возвращает: Результат операции.
public static void Divide(Vector3 vector, Vector3 scale, Vector3 result)
Vector3.Divide(vector, scale, result)
Разделите вектор на компоненты вектора (шкалы).
- vector
- Левый операнд.
- scale
- Правый операнд.
- result
- Результат операции.
public static void Dot(Vector3 left, Vector3 right, double result)
Vector3.Dot(left, right, result)
Вычислите точечный (скалярный) продукт двух векторов
- left
- Первый операнд
- right
- Второй операнд
- result
- Точечный продукт двух входов
public static double Dot(Vector3 left, Vector3 right)
result = Vector3.Dot(left, right)
Вычислите точечный (скалярный) продукт двух векторов
- left
- Первый операнд
- right
- Второй операнд
Возвращает: Точечный продукт двух входов
public bool Equals(Vector3 OtherVector, double ErrorValue)
result = vector3.Equals(OtherVector, ErrorValue)
Указывает, равны ли данный экземпляр и заданный объект в пределах диапазона ошибок.
- OtherVector
- ErrorValue
Возвращает: Истинно, если примеры равны; ложно иное.
public bool Equals(Vector3 other)
result = vector3.Equals(other)
Указывает, равен ли текущий вектор другому вектору.
- other
- Вектор для сравнения с этим вектором.
Возвращает: истинно, если текущий вектор равен векторному параметру; в противном случае ложно.
public override bool Equals(object obj)
result = vector3.Equals(obj)
Указывает, равны ли данный экземпляр и заданный объект.
- obj
- Объект для сравнения.
Возвращает: Истинно, если примеры равны; ложно иное.
public override int GetHashCode()
result = vector3.GetHashCode()
Возвращает хеш-код для этого случая.
Возвращает: A System.Int32, содержащий уникальный хеш-код для этого случая.
public Vector3 GetNormal()
result = vector3.GetNormal()
Возвращает нормализованный вектор этого.
public static Vector3 Lerp(Vector3 a, Vector3 b, double blend)
result = Vector3.Lerp(a, b, blend)
Возвращает новый вектор, который является линейной смесью 2 заданных векторов.
- a
- Первый входной вектор
- b
- Второй входной вектор
- blend
- Смешанный фактор. a когда смесь = 0, b когда смесь = 1.
Возвращает: a когда смесь = 0, b когда смесь = 1 и линейная комбинация иначе
public static void Lerp(Vector3 a, Vector3 b, double blend, Vector3 result)
Vector3.Lerp(a, b, blend, result)
Возвращает новый вектор, который является линейной смесью 2 заданных векторов.
- a
- Первый входной вектор
- b
- Второй входной вектор
- blend
- Смешанный фактор. a когда смесь = 0, b когда смесь = 1.
- result
- a когда смесь = 0, b когда смесь = 1 и линейная комбинация иначе
public static Vector3 Max(Vector3 left, Vector3 right)
result = Vector3.Max(left, right)
Возвращает Vector3d с минимальной величиной
- left
- Левый операнд
- right
- Правый операнд
Возвращает: Минимальный вектор3
public static Vector3 Min(Vector3 left, Vector3 right)
result = Vector3.Min(left, right)
Возвращает Vector3d с минимальной величиной
- left
- Левый операнд
- right
- Правый операнд
Возвращает: Минимальный вектор3
public static Vector3 Multiply(Vector3 vector, double scale)
result = Vector3.Multiply(vector, scale)
Умножает вектор на скаляр.
- vector
- Левый операнд.
- scale
- Правый операнд.
Возвращает: Результат операции.
public static void Multiply(Vector3 vector, double scale, Vector3 result)
Vector3.Multiply(vector, scale, result)
Умножает вектор на скаляр.
- vector
- Левый операнд.
- scale
- Правый операнд.
- result
- Результат операции.
public static Vector3 Multiply(Vector3 vector, Vector3 scale)
result = Vector3.Multiply(vector, scale)
Умножает вектор на компоненты вектора (масштаб).
- vector
- Левый операнд.
- scale
- Правый операнд.
Возвращает: Результат операции.
public static void Multiply(Vector3 vector, Vector3 scale, Vector3 result)
Vector3.Multiply(vector, scale, result)
Умножает вектор на компоненты вектора (шкалы).
- vector
- Левый операнд.
- scale
- Правый операнд.
- result
- Результат операции.
public static void Normalize(Vector3 vec, Vector3 result)
Vector3.Normalize(vec, result)
Шкала вектора до длины единицы
- vec
- Входящий вектор
- result
- Нормализованный вектор
public static Vector3 Normalize(Vector3 vec)
result = Vector3.Normalize(vec)
Шкала вектора до длины единицы
- vec
- Входящий вектор
Возвращает: Нормализованный вектор
public static void NormalizeFast(Vector3 vec, Vector3 result)
Vector3.NormalizeFast(vec, result)
Масштабировать вектор приблизительно до единицы длины
- vec
- Входящий вектор
- result
- Нормализованный вектор
public static Vector3 NormalizeFast(Vector3 vec)
result = Vector3.NormalizeFast(vec)
Масштабировать вектор приблизительно до единицы длины
- vec
- Входящий вектор
Возвращает: Нормализованный вектор
public void NormalizeFast()
vector3.NormalizeFast()
Весит Vector3d примерно до единицы длины.
public static Vector3 op_Addition(Vector3 left, Vector3 right)
result = Vector3.op_Addition(left, right)
Добавляет два экземпляра.
- left
- Первый случай.
- right
- Второй случай.
Возвращает: Результат расчета.
public static Vector3 op_Division(double numerator, Vector3 vec)
result = Vector3.op_Division(numerator, vec)
Создает новый вектор, который является числителем, выделенным каждым компонентом вектора.
- numerator
- vec
Возвращает: Результат расчета.
public static Vector3 op_Division(Vector3 vec, double scale)
result = Vector3.op_Division(vec, scale)
Разделяет экземпляр на скаляр.
- vec
- Экземпляр.
- scale
- Скаляр.
Возвращает: Результат расчета.
public static bool op_Equality(Vector3 left, Vector3 right)
result = Vector3.op_Equality(left, right)
Сравните два примера равенства.
- left
- Первый случай.
- right
- Второй случай.
Возвращает: Верно, если левое равно правому; ложно иначе.
public static bool op_Inequality(Vector3 left, Vector3 right)
result = Vector3.op_Inequality(left, right)
Сравните два примера неравенства.
- left
- Первый случай.
- right
- Второй случай.
Возвращает: Истинно, если левое не равно правому; ложно иначе.
public static Vector3 op_Multiply(double scale, Vector3 vec)
result = Vector3.op_Multiply(scale, vec)
Умножает экземпляр на скаляр.
- scale
- Скаляр.
- vec
- Экземпляр.
Возвращает: Результат расчета.
public static Vector3 op_Multiply(Vector3 vec, double scale)
result = Vector3.op_Multiply(vec, scale)
Умножает экземпляр на скаляр.
- vec
- Экземпляр.
- scale
- Скаляр.
Возвращает: Результат расчета.
public static Vector3 op_Multiply(Vector3 vecA, Vector3 vecB)
result = Vector3.op_Multiply(vecA, vecB)
Компонент мудро умножает два вектора вместе, x*x, y*y, z*z.
- vecA
- vecB
public static Vector3 op_Subtraction(Vector3 left, Vector3 right)
result = Vector3.op_Subtraction(left, right)
Вычтите два примера.
- left
- Первый случай.
- right
- Второй случай.
Возвращает: Результат расчета.
public static Vector3 op_UnaryNegation(Vector3 vec)
result = Vector3.op_UnaryNegation(vec)
Отрицает случай.
- vec
- Экземпляр.
Возвращает: Результат расчета.
public static Vector3 Subtract(Vector3 a, Vector3 b)
result = Vector3.Subtract(a, b)
Вычтите один вектор из другого
- a
- Первый операнд
- b
- Второй операнд
Возвращает: Результат вычитания
public static void Subtract(Vector3 a, Vector3 b, Vector3 result)
Vector3.Subtract(a, b, result)
Вычтите один вектор из другого
- a
- Первый операнд
- b
- Второй операнд
- result
- Результат вычитания
public override string ToString()
result = vector3.ToString()
Возвращает System.String, который представляет текущий Vector3.
public static void Transform(Vector3[] vecArray, Quaternion rotationQuaternion)
Vector3.Transform(vecArray, rotationQuaternion)
Преобразуйте все векторы в массиве с помощью вращения кватерниона.
- vecArray
- rotationQuaternion
public static void Transform(Vector3 vec, Quaternion quat, Vector3 result)
Vector3.Transform(vec, quat, result)
Преобразует вектор с помощью вращения кватерниона.
- vec
- Вектор для трансформации.
- quat
- Кватернион для вращения вектора.
- result
- Результат операции.
public static void Transform(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.Transform(vec, mat, result)
Преобразовать вектор по данной матрице
- vec
- Вектор для преобразования
- mat
- Желаемая трансформация
- result
- Трансформированный вектор
public static Vector3 Transform(Vector3 vec, Quaternion quat)
result = Vector3.Transform(vec, quat)
Преобразует вектор с помощью вращения кватерниона.
- vec
- Вектор для трансформации.
- quat
- Кватернион для вращения вектора.
Возвращает: Результат операции.
public static void Transform(Vector3[] vecArray, Matrix4X4 mat)
Vector3.Transform(vecArray, mat)
Преобразуйте все векторы в массиве с помощью данной матрицы.
public static Vector3 Transform(Vector3 vec, Matrix4X4 mat)
result = Vector3.Transform(vec, mat)
Преобразовать вектор по данной матрице
- vec
- Вектор для преобразования
- mat
- Желаемая трансформация
Возвращает: Трансформированный вектор
public static void TransformNormal(Vector3 norm, Matrix4X4 mat, Vector3 result)
Vector3.TransformNormal(norm, mat, result)
Преобразование нормального по данной матрице
- norm
- Нормальный для трансформации
- mat
- Желаемая трансформация
- result
- Преобразованная норма
public static Vector3 TransformNormal(Vector3 norm, Matrix4X4 mat)
result = Vector3.TransformNormal(norm, mat)
Преобразование нормального по данной матрице
- norm
- Нормальный для трансформации
- mat
- Желаемая трансформация
Возвращает: Преобразованная норма
public static void TransformNormalInverse(Vector3 norm, Matrix4X4 invMat, Vector3 result)
Vector3.TransformNormalInverse(norm, invMat, result)
Преобразование нормального посредством (переноса) данной матрицы
- norm
- Нормальный для трансформации
- invMat
- Обратная сторона желаемой трансформации
- result
- Преобразованная норма
public static Vector3 TransformNormalInverse(Vector3 norm, Matrix4X4 invMat)
result = Vector3.TransformNormalInverse(norm, invMat)
Преобразование нормального посредством (переноса) данной матрицы
- norm
- Нормальный для трансформации
- invMat
- Обратная сторона желаемой трансформации
Возвращает: Преобразованная норма
public static Vector3 TransformPerspective(Vector3 vec, Matrix4X4 mat)
result = Vector3.TransformPerspective(vec, mat)
Преобразуйте вектор 3d по заданной матрице и проецируйте полученный вектор 4 обратно на вектор 3.
- vec
- Вектор для преобразования
- mat
- Желаемая трансформация
Возвращает: Трансформированный вектор
public static void TransformPerspective(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.TransformPerspective(vec, mat, result)
Преобразуйте вектор 3d по заданной матрице и проецируйте полученный вектор 4d обратно на вектор 3d.
- vec
- Вектор для преобразования
- mat
- Желаемая трансформация
- result
- Трансформированный вектор
public static void TransformPosition(Vector3 pos, Matrix4X4 mat, Vector3 result)
Vector3.TransformPosition(pos, mat, result)
Преобразование позиции по данной матрице
- pos
- Позиция для преобразования
- mat
- Желаемая трансформация
- result
- Преобразованная позиция
public static Vector3 TransformPosition(Vector3 pos, Matrix4X4 mat)
result = Vector3.TransformPosition(pos, mat)
Преобразование позиции по данной матрице
- pos
- Позиция для преобразования
- mat
- Желаемая трансформация
Возвращает: Преобразованная позиция
public static void TransformVector(Vector3 vec, Matrix4X4 mat, Vector3 result)
Vector3.TransformVector(vec, mat, result)
Преобразование вектора направления по заданной матрице Предполагает, что матрица имеет нижнюю строку (0,0,0,1), то есть часть перевода игнорируется.
- vec
- Вектор для преобразования
- mat
- Желаемая трансформация
- result
- Трансформированный вектор
public static Vector3 TransformVector(Vector3 vec, Matrix4X4 mat)
result = Vector3.TransformVector(vec, mat)
Преобразование вектора направления по заданной матрице Предполагает, что матрица имеет нижнюю строку (0,0,0,1), то есть часть перевода игнорируется.
- vec
- Вектор для преобразования
- mat
- Желаемая трансформация
Возвращает: Трансформированный вектор
Поля
public static readonly Vector3 NegativeInfinity
value = Vector3.NegativeInfinity
Определяет экземпляр, в котором для всех компонентов установлено значение отрицательной бесконечности.
public static readonly Vector3 One
value = Vector3.One
Определяет экземпляр, для всех компонентов которого установлено значение 1.
public static readonly Vector3 PositiveInfinity
value = Vector3.PositiveInfinity
Определяет экземпляр, для всех компонентов которого установлено значение положительной бесконечности.
public static readonly int SizeInBytes
value = Vector3.SizeInBytes
Определяет размер структуры Vector3d в байтах.
public static readonly Vector3 UnitX
value = Vector3.UnitX
Определяет Vector3d единичной длины, указывающий на ось X.
public static readonly Vector3 UnitY
value = Vector3.UnitY
Определяет Vector3d единичной длины, указывающий на ось Y.
public static readonly Vector3 UnitZ
value = Vector3.UnitZ
/// Определяет Vector3d единичной длины, указывающий на ось Z.