Vector4 结构

定义

表示具有四个单精度浮点值的向量。

public value class Vector4 : IEquatable<System::Numerics::Vector4>, IFormattable
public struct Vector4 : IEquatable<System.Numerics.Vector4>, IFormattable
type Vector4 = struct
    interface IFormattable
Public Structure Vector4
Implements IEquatable(Of Vector4), IFormattable
继承
Vector4
实现

注解

Vector4 结构为硬件加速提供支持。

对于矩阵转换,Vector2Vector3Vector4实例表示为行:矢量 v 由具有 vM 乘法的矩阵 M 转换。

构造函数

名称 说明
Vector4(ReadOnlySpan<Single>)

从给定 ReadOnlySpan<T>的向量构造一个向量。 范围必须至少包含 4 个元素。

Vector4(Single, Single, Single, Single)

创建其元素具有指定值的向量。

Vector4(Single)

创建一个新 Vector4 对象,其四个元素具有相同的值。

Vector4(Vector2, Single, Single)

从指定Vector4对象和 Z 和 W 组件创建新Vector2对象。

Vector4(Vector3, Single)

从指定的Vector4对象和 W 组件构造一个新Vector3对象。

字段

名称 说明
W

矢量的 W 组件。

X

矢量的 X 分量。

Y

矢量的 Y 分量。

Z

矢量的 Z 分量。

属性

名称 说明
AllBitsSet

获取所有位都设置为 1的向量。

E

获取其元素等于 E的向量。

Epsilon

获取其元素等于 Epsilon的向量。

Item[Int32]

获取或设置指定索引处的元素。

NaN

获取其元素等于 NaN的向量。

NegativeInfinity

获取其元素等于 NegativeInfinity的向量。

NegativeZero

获取其元素等于 NegativeZero的向量。

One

获取一个向量,其 4 个元素等于 1。

Pi

获取其元素等于 Pi的向量。

PositiveInfinity

获取其元素等于 PositiveInfinity的向量。

Tau

获取其元素等于 Tau的向量。

UnitW

获取向量(0,0,0,1)。

UnitX

获取向量(1,0,0,0)。

UnitY

获取向量(0,1,0,0)。

UnitZ

获取向量(0,0,1,0)。

Zero

获取一个向量,其 4 个元素等于零。

方法

名称 说明
Abs(Vector4)

返回一个向量,其元素是每个指定向量元素的绝对值。

Add(Vector4, Vector4)

将两个向量相加。

All(Vector4, Single)

确定向量的所有元素是否都等于给定值。

AllWhereAllBitsSet(Vector4)

确定向量的所有元素是否都设置了其所有位。

AndNot(Vector4, Vector4)

计算给定向量和给定向量与另一向量相补的按位计算。

Any(Vector4, Single)

确定向量的任何元素是否等于给定值。

AnyWhereAllBitsSet(Vector4)

确定向量的任何元素是否都设置了其所有位。

BitwiseAnd(Vector4, Vector4)

计算两个向量的按位和两个向量。

BitwiseOr(Vector4, Vector4)

计算两个向量的按位或两个向量。

Clamp(Vector4, Vector4, Vector4)

限制最小值和最大值之间的向量。

ClampNative(Vector4, Vector4, Vector4)

使用特定于平台的行为 NaN 和 .来限制最小值和 NegativeZero最大值之间的向量。

ConditionalSelect(Vector4, Vector4, Vector4)

按条件从两个向量中按位选择一个值。

CopySign(Vector4, Vector4)

将向量的 per-element 符号复制到另一个向量的 per-element 符号。

CopyTo(Single[], Int32)

将矢量的元素复制到从指定索引位置开始的指定数组。

CopyTo(Single[])

将矢量的元素复制到指定的数组。

CopyTo(Span<Single>)

将向量复制到给定 Span<T>的 。 目标范围长度必须至少为 4。

Cos(Vector4)

计算向量中每个元素的余弦值。

Count(Vector4, Single)

确定向量中等于给定值的元素数。

CountWhereAllBitsSet(Vector4)

确定已设置所有位的向量中的元素数。

Create(ReadOnlySpan<Single>)

从给定 ReadOnlySpan<T>的向量构造一个向量。 范围必须至少包含 4 个元素。

Create(Single, Single, Single, Single)

创建其元素具有指定值的向量。

Create(Single)

创建一个新 Vector4 对象,其四个元素具有相同的值。

Create(Vector2, Single, Single)

从指定Vector4对象和 Z 和 W 组件创建新Vector2对象。

Create(Vector3, Single)

从指定的Vector4对象和 W 组件构造一个新Vector3对象。

CreateScalar(Single)

创建初始化 X 为指定值的向量,并将其余元素初始化为零。

CreateScalarUnsafe(Single)

创建初始化 X 为指定值且剩余元素未初始化的向量。

Cross(Vector4, Vector4)

计算两个向量的交叉乘积。 对于同质坐标,权重的乘积是结果产品的新权重。

DegreesToRadians(Vector4)

将给定向量从度转换为弧度。

Distance(Vector4, Vector4)

计算两个给定点之间的 Euclidean 距离。

DistanceSquared(Vector4, Vector4)

返回两个指定点之间的 Euclidean 距离平方。

Divide(Vector4, Single)

将指定的向量除以指定的标量值。

Divide(Vector4, Vector4)

将第一个向量除以第二个。

Dot(Vector4, Vector4)

返回两个向量的点积。

Equals(Object)

返回一个值,该值指示此实例和指定对象是否相等。

Equals(Vector4, Vector4)

比较两个向量,以确定它们是否基于每个元素相等。

Equals(Vector4)

返回一个值,该值指示此实例和另一个向量是否相等。

EqualsAll(Vector4, Vector4)

比较两个向量以确定所有元素是否相等。

EqualsAny(Vector4, Vector4)

比较两个向量,以确定任何元素是否相等。

Exp(Vector4)

计算向量中每个元素的指数。

FusedMultiplyAdd(Vector4, Vector4, Vector4)

计算 (left * right) + addend,舍入为一个三元运算。

GetHashCode()

返回此实例的哈希代码。

GreaterThan(Vector4, Vector4)

比较两个向量,以确定每个元素的哪一个矢量更大。

GreaterThanAll(Vector4, Vector4)

比较两个向量,以确定所有元素是否都更大。

GreaterThanAny(Vector4, Vector4)

比较两个向量,以确定任何元素是否更大。

GreaterThanOrEqual(Vector4, Vector4)

比较两个向量,以确定每个元素的更大或相等。

GreaterThanOrEqualAll(Vector4, Vector4)

比较两个向量,以确定所有元素是否都更大或相等。

GreaterThanOrEqualAny(Vector4, Vector4)

比较两个向量,以确定任何元素是否更大或相等。

Hypot(Vector4, Vector4)

计算给定的两个向量(表示右角三角形中较短边的长度)的虚构。

IndexOf(Vector4, Single)

确定向量中与给定值相等的第一个元素的索引。

IndexOfWhereAllBitsSet(Vector4)

确定已设置所有位的向量中第一个元素的索引。

IsEvenInteger(Vector4)

确定向量中的哪些元素甚至是整型值。

IsFinite(Vector4)

确定向量中的哪些元素是有限的。

IsInfinity(Vector4)

确定向量中的哪些元素是无穷大。

IsInteger(Vector4)

确定向量中的哪些元素是整型值。

IsNaN(Vector4)

确定向量中的哪些元素为 NaN。

IsNegative(Vector4)

确定向量中的哪些元素表示负实数。

IsNegativeInfinity(Vector4)

确定向量中的哪些元素是负无穷大。

IsNormal(Vector4)

确定向量中的哪些元素是正常的。

IsOddInteger(Vector4)

确定向量中的哪些元素是奇数整数值。

IsPositive(Vector4)

确定向量中的哪些元素表示正实数。

IsPositiveInfinity(Vector4)

确定向量中的哪些元素是正无穷大。

IsSubnormal(Vector4)

确定向量中的哪些元素是非正常元素。

IsZero(Vector4)

确定向量中的哪些元素为零。

LastIndexOf(Vector4, Single)

确定向量中最后一个与给定值相等的元素的索引。

LastIndexOfWhereAllBitsSet(Vector4)

确定已设置所有位的向量中最后一个元素的索引。

Length()

返回此向量对象的长度。

LengthSquared()

返回向量平方的长度。

Lerp(Vector4, Vector4, Single)

根据给定权重在两个向量之间执行线性内插。

Lerp(Vector4, Vector4, Vector4)

根据给定权重在两个向量之间执行线性内插。

LessThan(Vector4, Vector4)

比较两个向量,以确定每个元素的相对较少。

LessThanAll(Vector4, Vector4)

比较两个向量,以确定所有元素是否更少。

LessThanAny(Vector4, Vector4)

比较两个向量,以确定任何元素是否更少。

LessThanOrEqual(Vector4, Vector4)

比较两个向量,以确定每个元素上的哪一个矢量小于或等于。

LessThanOrEqualAll(Vector4, Vector4)

比较两个向量,以确定所有元素是否小于或相等。

LessThanOrEqualAny(Vector4, Vector4)

比较两个向量,以确定任何元素是否小于或相等。

Load(Single*)

从给定源加载向量。

LoadAligned(Single*)

从给定的对齐源加载向量。

LoadAlignedNonTemporal(Single*)

从给定的对齐源加载向量。

LoadUnsafe(Single, UIntPtr)

从给定的源和元素偏移量加载向量。

LoadUnsafe(Single)

从给定源加载向量。

Log(Vector4)

计算向量中每个元素的日志。

Log2(Vector4)

计算向量中每个元素的 log2。

Max(Vector4, Vector4)

返回一个向量,其元素是两个指定向量中每个元素对的最大值。

MaxMagnitude(Vector4, Vector4)

将两个向量与计算进行比较,每个元素具有更大的数量级。

MaxMagnitudeNumber(Vector4, Vector4)

将两个向量(基于每个元素)与具有更大数量级的计算进行比较,并在输入为 NaN时返回另一个值。

MaxNative(Vector4, Vector4)

比较两个向量,以确定每个元素使用特定于平台的行为 NaNNegativeZero

MaxNumber(Vector4, Vector4)

将两个向量(基于每个元素)与计算结果进行比较,如果元素 NaN是,则返回另一个值。

Min(Vector4, Vector4)

返回一个向量,其元素是两个指定向量中每个元素对的最小值。

MinMagnitude(Vector4, Vector4)

将两个向量与计算进行比较,每个元素的量级较小。

MinMagnitudeNumber(Vector4, Vector4)

将两个向量(基于每个元素)与计算(如果输入 NaN为)相比较,其数量级较小,并返回另一个值。

MinNative(Vector4, Vector4)

比较两个向量,以确定每个元素使用特定于平台的行为 NaNNegativeZero

MinNumber(Vector4, Vector4)

将两个向量(基于每个元素)与计算结果进行比较,如果元素 NaN是,则返回另一个值。

Multiply(Single, Vector4)

将标量值乘以指定的向量。

Multiply(Vector4, Single)

将矢量乘以指定的标量。

Multiply(Vector4, Vector4)

返回一个新向量,其值是两个指定向量中每个元素对的乘积。

MultiplyAddEstimate(Vector4, Vector4, Vector4)

计算估计值 (left * right) + 。 addend

Negate(Vector4)

否定指定的向量。

None(Vector4, Single)

确定向量中没有元素是否等于给定值。

NoneWhereAllBitsSet(Vector4)

确定矢量的元素是否设置了所有位。

Normalize(Vector4)

返回与指定向量相同的方向但长度为 1 的向量。

OnesComplement(Vector4)

计算矢量的补数。

RadiansToDegrees(Vector4)

将给定向量从弧度转换为度。

Round(Vector4, MidpointRounding)

使用指定的舍入模式将向量中的每个元素舍入到最接近的整数。

Round(Vector4)

使用默认舍入模式将向量中的每个元素舍入到最接近的整数(ToEven)。

Shuffle(Vector4, Byte, Byte, Byte, Byte)

通过使用一组索引从输入向量中选择值来创建一个新向量。

Sin(Vector4)

计算向量中每个元素的正弦值。

SinCos(Vector4)

计算向量中每个元素的正弦值和余弦值。

SquareRoot(Vector4)

返回一个矢量,其元素是每个指定向量元素的平方根。

Subtract(Vector4, Vector4)

从第一个向量中减去第二个向量。

Sum(Vector4)

计算向量中所有元素的总和。

ToString()

使用默认格式返回当前实例的字符串表示形式。

ToString(String, IFormatProvider)

返回当前实例的字符串表示形式,使用指定的格式字符串设置单个元素的格式,以及用于定义区域性特定格式的指定格式提供程序。

ToString(String)

返回当前实例的字符串表示形式,使用指定的格式字符串设置单个元素的格式。

Transform(Vector2, Matrix4x4)

通过指定的 4x4 矩阵转换二维矢量。

Transform(Vector2, Quaternion)

按指定的四元数旋转值转换二维向量。

Transform(Vector3, Matrix4x4)

通过指定的 4x4 矩阵转换三维矢量。

Transform(Vector3, Quaternion)

通过指定的四元数旋转值转换三维向量。

Transform(Vector4, Matrix4x4)

通过指定的 4x4 矩阵转换四维向量。

Transform(Vector4, Quaternion)

按指定的四维旋转值转换四维向量。

Truncate(Vector4)

截断向量中的每个元素。

TryCopyTo(Span<Single>)

尝试将向量复制到给定 Span<T>的 。 目标范围长度必须至少为 4。

Xor(Vector4, Vector4)

计算两个向量的独占或两个向量。

运营商

名称 说明
Addition(Vector4, Vector4)

将两个向量相加。

BitwiseAnd(Vector4, Vector4)

计算两个向量的按位和两个向量。

BitwiseOr(Vector4, Vector4)

计算两个向量的按位或两个向量。

Division(Vector4, Single)

将指定的向量除以指定的标量值。

Division(Vector4, Vector4)

将第一个向量除以第二个。

Equality(Vector4, Vector4)

返回一个值,该值指示两个指定向量中的每个元素对是否相等。

ExclusiveOr(Vector4, Vector4)

计算两个向量的独占或两个向量。

Inequality(Vector4, Vector4)

返回一个值,该值指示两个指定的向量是否不相等。

LeftShift(Vector4, Int32)

将向量的每个元素左移指定量。

Multiply(Single, Vector4)

将标量值乘以指定的向量。

Multiply(Vector4, Single)

按指定的标量值对指定向量进行倍数。

Multiply(Vector4, Vector4)

返回一个新向量,其值是两个指定向量中每个元素对的乘积。

OnesComplement(Vector4)

计算矢量的补数。

RightShift(Vector4, Int32)

按指定量向量向右移动 (signed) 的每个元素。

Subtraction(Vector4, Vector4)

从第一个向量中减去第二个向量。

UnaryNegation(Vector4)

否定指定的向量。

UnaryPlus(Vector4)

返回给定向量不变。

UnsignedRightShift(Vector4, Int32)

按指定量向量向右移动(无符号)的每个元素。

扩展方法

名称 说明
AsPlane(Vector4)

重新解释 Vector4 为新的 Plane

AsQuaternion(Vector4)

重新解释 Vector4 为新的 Quaternion

AsVector128(Vector4)

重新解释 Vector4 为新的 Vector128<T>

AsVector2(Vector4)

重新解释 Vector4 为新的 Vector2

AsVector3(Vector4)

重新解释 Vector4 为新的 Vector3

ExtractMostSignificantBits(Vector4)

从向量中的每个元素中提取最重要的位。

GetElement(Vector4, Int32)

获取指定索引处的元素。

Store(Vector4, Single*)

将向量存储在给定的目标处。

StoreAligned(Vector4, Single*)

将矢量存储在给定的 16 字节对齐目标处。

StoreAlignedNonTemporal(Vector4, Single*)

将矢量存储在给定的 16 字节对齐目标处。

StoreUnsafe(Vector4, Single, UIntPtr)

将向量存储在给定的目标处。

StoreUnsafe(Vector4, Single)

将向量存储在给定的目标处。

ToScalar(Vector4)

将给定向量转换为包含第一个元素值的标量。

WithElement(Vector4, Int32, Single)

Vector128<T>使用指定索引处的元素设置为指定值,其余元素设置为与给定向量中的元素相同的值。

适用于