# Vector3 Structure

Defines a vector with three components.

Namespace:  Microsoft.Xna.Framework
Assembly:  Microsoft.Xna.Framework.Math (in Microsoft.Xna.Framework.Math.dll)

## Syntax

```public struct Vector3
```

The Vector3 type exposes the following members.

## Constructors

NameDescription
Vector3(Single)Creates a new instance of Vector3.
Vector3(Vector2, Single)Initializes a new instance of Vector3.
Vector3(Single, Single, Single)Initializes a new instance of Vector3.
Top

## Properties

NameDescription
BackwardReturns a unit Vector3 designating backward in a right-handed coordinate system (0, 0, 1).
DownReturns a unit Vector3 designating down (0, −1, 0).
ForwardReturns a unit Vector3 designating forward in a right-handed coordinate system(0, 0, −1).
LeftReturns a unit Vector3 designating left (−1, 0, 0).
OneReturns a Vector3 with ones in all of its components.
RightReturns a unit Vector3 pointing to the right (1, 0, 0).
UnitXReturns the x unit Vector3 (1, 0, 0).
UnitYReturns the y unit Vector3 (0, 1, 0).
UnitZReturns the z unit Vector3 (0, 0, 1).
UpReturns a unit vector designating up (0, 1, 0).
ZeroReturns a Vector3 with all of its components set to zero.
Top

## Methods

NameDescription
Barycentric(Vector3, Vector3, Vector3, Single, Single)Returns a Vector3 containing the 3D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 3D triangle.
Barycentric(Vector3, Vector3, Vector3, Single, Single, Vector3)Returns a Vector3 containing the 3D Cartesian coordinates of a point specified in barycentric (areal) coordinates relative to a 3D triangle.
CatmullRom(Vector3, Vector3, Vector3, Vector3, Single)Performs a Catmull-Rom interpolation using the specified positions.
CatmullRom(Vector3, Vector3, Vector3, Vector3, Single, Vector3)Performs a Catmull-Rom interpolation using the specified positions.
Clamp(Vector3, Vector3, Vector3)Restricts a value to be within a specified range.
Clamp(Vector3, Vector3, Vector3, Vector3)Restricts a value to be within a specified range.
Cross(Vector3, Vector3)Calculates the cross product of two vectors.
Cross(Vector3, Vector3, Vector3)Calculates the cross product of two vectors.
Distance(Vector3, Vector3)Calculates the distance between two vectors.
Distance(Vector3, Vector3, Single)Calculates the distance between two vectors.
DistanceSquared(Vector3, Vector3)Calculates the distance between two vectors squared.
DistanceSquared(Vector3, Vector3, Single)Calculates the distance between two vectors squared.
Divide(Vector3, Vector3)Divides the components of a vector by the components of another vector.
Divide(Vector3, Single)Divides a vector by a scalar value.
Divide(Vector3, Vector3, Vector3)Divides the components of a vector by the components of another vector.
Divide(Vector3, Single, Vector3)Divides a vector by a scalar value.
Dot(Vector3, Vector3)Calculates the dot product of two vectors. If the two vectors are unit vectors, the dot product returns a floating point value between -1 and 1 that can be used to determine some properties of the angle between two vectors. For example, it can show whether the vectors are orthogonal, parallel, or have an acute or obtuse angle between them.
Dot(Vector3, Vector3, Single)Calculates the dot product of two vectors and writes the result to a user-specified variable. If the two vectors are unit vectors, the dot product returns a floating point value between -1 and 1 that can be used to determine some properties of the angle between two vectors. For example, it can show whether the vectors are orthogonal, parallel, or have an acute or obtuse angle between them.
Equals(Object)Returns a value that indicates whether the current instance is equal to a specified object. (Overrides ValueType.Equals(Object).)
Equals(Vector3)Determines whether the specified Object is equal to the Vector3.
GetHashCodeGets the hash code of the vector object. (Overrides ValueType.GetHashCode().)
Hermite(Vector3, Vector3, Vector3, Vector3, Single)Performs a Hermite spline interpolation.
Hermite(Vector3, Vector3, Vector3, Vector3, Single, Vector3)Performs a Hermite spline interpolation.
LengthCalculates the length of the vector.
LengthSquaredCalculates the length of the vector squared.
Lerp(Vector3, Vector3, Single)Performs a linear interpolation between two vectors.
Lerp(Vector3, Vector3, Single, Vector3)Performs a linear interpolation between two vectors.
Max(Vector3, Vector3)Returns a vector that contains the highest value from each matching pair of components.
Max(Vector3, Vector3, Vector3)Returns a vector that contains the highest value from each matching pair of components.
Min(Vector3, Vector3)Returns a vector that contains the lowest value from each matching pair of components.
Min(Vector3, Vector3, Vector3)Returns a vector that contains the lowest value from each matching pair of components.
Multiply(Vector3, Vector3)Multiplies the components of two vectors by each other.
Multiply(Vector3, Single)Multiplies a vector by a scalar value.
Multiply(Vector3, Vector3, Vector3)Multiplies the components of two vectors by each other.
Multiply(Vector3, Single, Vector3)Multiplies a vector by a scalar value.
Negate(Vector3)Returns a vector pointing in the opposite direction.
Negate(Vector3, Vector3)Returns a vector pointing in the opposite direction.
Normalize()Turns the current vector into a unit vector. The result is a vector one unit in length pointing in the same direction as the original vector.
Normalize(Vector3)Creates a unit vector from the specified vector. The result is a vector one unit in length pointing in the same direction as the original vector.
Normalize(Vector3, Vector3)Creates a unit vector from the specified vector, writing the result to a user-specified variable. The result is a vector one unit in length pointing in the same direction as the original vector.
Reflect(Vector3, Vector3)Returns the reflection of a vector off a surface that has the specified normal.
Reflect(Vector3, Vector3, Vector3)Returns the reflection of a vector off a surface that has the specified normal.
SmoothStep(Vector3, Vector3, Single)Interpolates between two values using a cubic equation.
SmoothStep(Vector3, Vector3, Single, Vector3)Interpolates between two values using a cubic equation.
Subtract(Vector3, Vector3)Subtracts a vector from a vector.
Subtract(Vector3, Vector3, Vector3)Subtracts a vector from a vector.
ToStringRetrieves a string representation of the current object. (Overrides ValueType.ToString().)
Transform(Vector3, Matrix)Transforms a 3D vector by the given matrix.
Transform(Vector3, Quaternion)Transforms a Vector3 by a specified Quaternion rotation.
Transform(Vector3, Matrix, Vector3)Transforms a Vector3 by the given Matrix.
Transform(Vector3, Quaternion, Vector3)Transforms a Vector3 by a specified Quaternion rotation.
Transform(Vector3[], Matrix, Vector3[])Transforms a source array of Vector3s by a specified Matrix and writes the results to an existing destination array.
Transform(Vector3[], Quaternion, Vector3[])Transforms a source array of Vector3s by a specified Quaternion rotation and writes the results to an existing destination array.
Transform(Vector3[], Int32, Matrix, Vector3[], Int32, Int32)Applies a specified transform Matrix to a specified range of an array of Vector3s and writes the results into a specified range of a destination array.
Transform(Vector3[], Int32, Quaternion, Vector3[], Int32, Int32)Applies a specified Quaternion rotation to a specified range of an array of Vector3s and writes the results into a specified range of a destination array.
TransformNormal(Vector3, Matrix)Transforms a 3D vector normal by a matrix.
TransformNormal(Vector3, Matrix, Vector3)Transforms a vector normal by a matrix.
TransformNormal(Vector3[], Matrix, Vector3[])Transforms an array of 3D vector normals by a specified Matrix.
TransformNormal(Vector3[], Int32, Matrix, Vector3[], Int32, Int32)Transforms a specified range in an array of 3D vector normals by a specified Matrix and writes the results to a specified range in a destination array.
Top

## Operators

NameDescription
Division(Vector3, Vector3)Divides the components of a vector by the components of another vector.
Division(Vector3, Single)Divides a vector by a scalar value.
EqualityTests vectors for equality.
InequalityTests vectors for inequality.
Multiply(Single, Vector3)Multiplies a vector by a scalar value.
Multiply(Vector3, Vector3)Multiplies the components of two vectors by each other.
Multiply(Vector3, Single)Multiplies a vector by a scalar value.
SubtractionSubtracts a vector from a vector.
UnaryNegationReturns a vector pointing in the opposite direction.
Top

## Fields

NameDescription
XGets or sets the x-component of the vector.
YGets or sets the y-component of the vector.
ZGets or sets the z-component of the vector.
Top

Supported in: 5

## Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.