# Vector2 Struct

## Definition

Important

Some information relates to prerelease product that may be substantially modified before itâ€™s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Represents a vector with two single-precision floating-point values.

`public value class Vector2 : IEquatable<System::Numerics::Vector2>, IFormattable`

`public struct Vector2 : IEquatable<System.Numerics.Vector2>, IFormattable`

```
type Vector2 = struct
interface IFormattable
```

```
Public Structure Vector2
Implements IEquatable(Of Vector2), IFormattable
```

- Inheritance

- Implements

## Remarks

The Vector2 structure provides support for hardware acceleration.

For matrix transformations, the Vector2, Vector3, and Vector4 instances are represented as rows: a vector *v* is transformed by a matrix *M* with *vM* multiplication.

## Constructors

Vector2(ReadOnlySpan<Single>) |
Constructs a vector from the given ReadOnlySpan<T>. The span must contain at least two elements. |

Vector2(Single, Single) |
Creates a vector whose elements have the specified values. |

Vector2(Single) |
Creates a new Vector2 object whose two elements have the same value. |

## Fields

X |
The X component of the vector. |

Y |
The Y component of the vector. |

## Properties

E |
Gets a vector whose elements are equal to E. |

Epsilon |
Gets a vector whose elements are equal to Epsilon. |

Item[Int32] |
Gets or sets the element at the specified index. |

NaN |
Gets a vector whose elements are equal to NaN. |

NegativeInfinity |
Gets a vector whose elements are equal to NegativeInfinity. |

NegativeZero |
Gets a vector whose elements are equal to NegativeZero. |

One |
Gets a vector whose 2 elements are equal to one. |

Pi |
Gets a vector whose elements are equal to Pi. |

PositiveInfinity |
Gets a vector whose elements are equal to PositiveInfinity. |

Tau |
Gets a vector whose elements are equal to Tau. |

UnitX |
Gets the vector (1,0). |

UnitY |
Gets the vector (0,1). |

Zero |
Returns a vector whose 2 elements are equal to zero. |

## Methods

Abs(Vector2) |
Returns a vector whose elements are the absolute values of each of the specified vector's elements. |

Add(Vector2, Vector2) |
Adds two vectors together. |

Clamp(Vector2, Vector2, Vector2) |
Restricts a vector between a minimum and a maximum value. |

ClampNative(Vector2, Vector2, Vector2) |
Restricts a vector between a minimum and a maximum value using platform specific behavior for |

CopySign(Vector2, Vector2) |
Copies the per-element sign of a vector to the per-element sign of another vector. |

CopyTo(Single[], Int32) |
Copies the elements of the vector to a specified array starting at a specified index position. |

CopyTo(Single[]) |
Copies the elements of the vector to a specified array. |

CopyTo(Span<Single>) |
Copies the vector to the given Span<T>.The length of the destination span must be at least 2. |

Cos(Vector2) | |

Create(ReadOnlySpan<Single>) |
Constructs a vector from the given ReadOnlySpan<T>. The span must contain at least 2 elements. |

Create(Single, Single) |
Creates a vector whose elements have the specified values. |

Create(Single) |
Creates a new Vector2 object whose two elements have the same value. |

DegreesToRadians(Vector2) | |

Distance(Vector2, Vector2) |
Computes the Euclidean distance between the two given points. |

DistanceSquared(Vector2, Vector2) |
Returns the Euclidean distance squared between two specified points. |

Divide(Vector2, Single) |
Divides the specified vector by a specified scalar value. |

Divide(Vector2, Vector2) |
Divides the first vector by the second. |

Dot(Vector2, Vector2) |
Returns the dot product of two vectors. |

Equals(Object) |
Returns a value that indicates whether this instance and a specified object are equal. |

Equals(Vector2) |
Returns a value that indicates whether this instance and another vector are equal. |

Exp(Vector2) | |

FusedMultiplyAdd(Vector2, Vector2, Vector2) | |

GetHashCode() |
Returns the hash code for this instance. |

Hypot(Vector2, Vector2) | |

Length() |
Returns the length of the vector. |

LengthSquared() |
Returns the length of the vector squared. |

Lerp(Vector2, Vector2, Single) |
Performs a linear interpolation between two vectors based on the given weighting. |

Lerp(Vector2, Vector2, Vector2) | |

Log(Vector2) | |

Log2(Vector2) | |

Max(Vector2, Vector2) |
Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. |

MaxMagnitude(Vector2, Vector2) |
Compares two vectors to compute which has the greater magnitude on a per-element basis. |

MaxMagnitudeNumber(Vector2, Vector2) |
Compares two vectors, on a per-element basis, to compute which has the greater magnitude and returning the other value if an input is |

MaxNative(Vector2, Vector2) |
Compare two vectors to determine which is greater on a per-element basis using platform specific behavior for |

MaxNumber(Vector2, Vector2) |
Compares two vectors, on a per-element basis, to compute which is greater and returning the other value if an element is |

Min(Vector2, Vector2) |
Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. |

MinMagnitude(Vector2, Vector2) |
Compares two vectors to compute which has the lesser magnitude on a per-element basis. |

MinMagnitudeNumber(Vector2, Vector2) |
Compares two vectors, on a per-element basis, to compute which has the lesser magnitude and returning the other value if an input is |

MinNative(Vector2, Vector2) |
Compare two vectors to determine which is lesser on a per-element basis using platform specific behavior for |

MinNumber(Vector2, Vector2) |
Compares two vectors, on a per-element basis, to compute which is lesser and returning the other value if an element is |

Multiply(Single, Vector2) |
Multiplies a scalar value by a specified vector. |

Multiply(Vector2, Single) |
Multiplies a vector by a specified scalar. |

Multiply(Vector2, Vector2) |
Returns a new vector whose values are the product of each pair of elements in two specified vectors. |

MultiplyAddEstimate(Vector2, Vector2, Vector2) | |

Negate(Vector2) |
Negates a specified vector. |

Normalize(Vector2) |
Returns a vector with the same direction as the specified vector, but with a length of one. |

RadiansToDegrees(Vector2) | |

Reflect(Vector2, Vector2) |
Returns the reflection of a vector off a surface that has the specified normal. |

Round(Vector2, MidpointRounding) | |

Round(Vector2) | |

Sin(Vector2) | |

SinCos(Vector2) | |

SquareRoot(Vector2) |
Returns a vector whose elements are the square root of each of a specified vector's elements. |

Subtract(Vector2, Vector2) |
Subtracts the second vector from the first. |

ToString() |
Returns the string representation of the current instance using default formatting. |

ToString(String, IFormatProvider) |
Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. |

ToString(String) |
Returns the string representation of the current instance using the specified format string to format individual elements. |

Transform(Vector2, Matrix3x2) |
Transforms a vector by a specified 3x2 matrix. |

Transform(Vector2, Matrix4x4) |
Transforms a vector by a specified 4x4 matrix. |

Transform(Vector2, Quaternion) |
Transforms a vector by the specified Quaternion rotation value. |

TransformNormal(Vector2, Matrix3x2) |
Transforms a vector normal by the given 3x2 matrix. |

TransformNormal(Vector2, Matrix4x4) |
Transforms a vector normal by the given 4x4 matrix. |

Truncate(Vector2) | |

TryCopyTo(Span<Single>) |
Attempts to copy the vector to the given Span<T>. The length of the destination span must be at least 2. |

## Operators

Addition(Vector2, Vector2) |
Adds two vectors together. |

Division(Vector2, Single) |
Divides the specified vector by a specified scalar value. |

Division(Vector2, Vector2) |
Divides the first vector by the second. |

Equality(Vector2, Vector2) |
Returns a value that indicates whether each pair of elements in two specified vectors is equal. |

Inequality(Vector2, Vector2) |
Returns a value that indicates whether two specified vectors are not equal. |

Multiply(Single, Vector2) |
Multiples the scalar value by the specified vector. |

Multiply(Vector2, Single) |
Multiples the specified vector by the specified scalar value. |

Multiply(Vector2, Vector2) |
Returns a new vector whose values are the product of each pair of elements in two specified vectors. |

Subtraction(Vector2, Vector2) |
Subtracts the second vector from the first. |

UnaryNegation(Vector2) |
Negates the specified vector. |

## Extension Methods

AsVector4(Vector2) |
Reinterprets a Vector2 to a new Vector4 with the new elements zeroed. |

AsVector4Unsafe(Vector2) |
Reinterprets a Vector2 to a new Vector4 with the new elements undefined. |

ToPoint(Vector2) | |

ToSize(Vector2) | |

AsVector128(Vector2) |
Reinterprets a Vector2 as a new Vector128<T>. |

AsVector128Unsafe(Vector2) |
Reinterprets a |