Represents a generic vector interface.
T
: The type of the vector components.
Zero
: Gets the zero vector for the specified type.
Add(T v1, T v2)
: Adds two vectors of the specified type.Subtract(T v1, T v2)
: Subtracts the second vector from the first vector.Multiply(T v1, T v2)
: Multiplies two vectors component-wise.Divide(T v1, T v2)
: Divides the first vector by the second vector.
Inverted
: Gets a vector with components equal to the negation of the original vector.Normalized
: Gets a vector with the same direction as the original vector but with a length of 1.Length
: Gets the Euclidean length (magnitude) of the vector.
Add(T v)
: Adds the components of another vector to this vector.Subtract(T v)
: Subtracts the components of another vector from this vector.Divide(T v)
: Divides the vector components by the components of another vector.Multiply(T v)
: Multiplies the vector components by the components of another vector.Invert()
: Inverts the sign of each vector component.Normalize()
: Normalizes the vector to have a length of 1.
Represents a 3D vector with X, Y, and Z components.
X
: Gets or sets the X component of the vector.Y
: Gets or sets the Y component of the vector.Z
: Gets or sets the Z component of the vector.
Zero
: Gets a vector with all components set to zero.
Add(Vector3D v1, Vector3D v2)
: Adds two vectors.Subtract(Vector3D v1, Vector3D v2)
: Subtracts the second vector from the first vector.Divide(Vector3D v1, Vector3D v2)
: Divides the first vector by the second vector.Multiply(Vector3D v1, Vector3D v2)
: Multiplies two vectors component-wise.
Vector3D(double x = 0, double y = 0, double z = 0)
: Initializes a new instance of the Vector3D class with specified components.
Inverted
: Gets a vector with components equal to the negation of the original vector.Normalized
: Gets a vector with the same direction as the original vector but with a length of 1.Length
: Gets the Euclidean length (magnitude) of the vector.
Add(double x = 0, double y = 0, double z = 0)
: Adds the specified values to the vector components.Add(Vector3D v)
: Adds the components of another vector to this vector.Subtract(double x = 0, double y = 0, double z = 0)
: Subtracts the specified values from the vector components.Subtract(Vector3D v)
: Subtracts the components of another vector from this vector.Divide(double x = 0, double y = 0, double z = 0)
: Divides the vector components by the specified values.Divide(Vector3D v)
: Divides the vector components by the components of another vector.Multiply(double x = 0, double y = 0, double z = 0)
: Multiplies the vector components by the specified values.Multiply(Vector3D v)
: Multiplies the vector components by the components of another vector.Invert()
: Inverts the sign of each vector component.Normalize()
: Normalizes the vector to have a length of 1.
Represents a 2D vector with X and Y components.
X
: Gets or sets the X component of the vector.Y
: Gets or sets the Y component of the vector.
Zero
: Gets a vector with all components set to zero.
Add(Vector2D v1, Vector2D v2)
: Adds two vectors.Subtract(Vector2D v1, Vector2D v2)
: Subtracts the second vector from the first vector.Multiply(Vector2D v1, Vector2D v2)
: Multiplies two vectors component-wise.Divide(Vector2D v1, Vector2D v2)
: Divides the first vector by the second vector.
Vector2D(double x = 0, double y = 0)
: Initializes a new instance of the Vector2D class with specified components.
Inverted
: Gets a vector with components equal to the negation of the original vector.Normalized
: Gets a vector with the same direction as the original vector but with a length of 1.Length
: Gets the Euclidean length (magnitude) of the vector.
Add(double x = 0, double y = 0)
: Adds the specified values to the vector components.Add(Vector2D v)
: Adds the components of another vector to this vector.Subtract(double x = 0, double y = 0)
: Subtracts the specified values from the vector components.Subtract(Vector2D v)
: Subtracts the components of another vector from this vector.Divide(double x = 0, double y = 0)
: Divides the vector components by the specified values.Divide(Vector2D v)
: Divides the vector components by the components of another vector.Multiply(double x = 0, double y = 0)
: Multiplies the vector components by the specified values.Multiply(Vector2D v)
: Multiplies the vector components by the components of another vector.Invert()
: Inverts the sign of each vector component.Normalize()
: Normalizes the vector to have a length of 1.
Represents a 4D vector with X, Y, Z, and W components.
X
: Gets or sets the X component of the vector.Y
: Gets or sets the Y component of the vector.Z
: Gets or sets the Z component of the vector.W
: Gets or sets the W component of the vector.
Zero
: Gets a vector with all components set to zero.
Add(Vector4D v1, Vector4D v2)
: Adds two vectors.Subtract(Vector4D v1, Vector4D v2)
: Subtracts the second vector from the first vector.Divide(Vector4D v1, Vector4D v2)
: Divides the first vector by the second vector.Multiply(Vector4D v1, Vector4D v2)
: Multiplies two vectors component-wise.
Vector4D(double x = 0, double y = 0, double z = 0, double w = 0)
: Initializes a new instance of the Vector4D class with specified components.
Inverted
: Gets a vector with components equal to the negation of the original vector.Normalized
: Gets a vector with the same direction as the original vector but with a length of 1.Length
: Gets the Euclidean length (magnitude) of the vector.
Add(double x = 0, double y = 0, double z = 0, double w = 0)
: Adds the specified values to the vector components.Add(Vector4D v)
: Adds the components of another vector to this vector.Subtract(double x = 0, double y = 0, double z = 0, double w = 0)
: Subtracts the specified values from the vector components.Subtract(Vector4D v)
: Subtracts the components of another vector from this vector.Divide(double x = 0, double y = 0, double z = 0, double w = 0)
: Divides the vector components by the specified values.Divide(Vector4D v)
: Divides the vector components by the components of another vector.Multiply(double x = 0, double y = 0, double z = 0, double w = 0)
: Multiplies the vector components by the specified values.Multiply(Vector4D v)
: Multiplies the vector components by the components of another vector.Invert()
: Inverts the sign of each vector component.Normalize()
: Normalizes the vector to have a length of 1.
DotProduct(IVector v1, IVector v2)
: Computes the dot product of two vectors.CrossProduct(Vector3D v1, Vector3D v2)
: Computes the cross product of two 3D vectors.AngleBetween(IVector v1, IVector v2)
: Computes the angle (in radians) between two vectors.
The MathUnits
namespace provides a flexible and comprehensive set of classes and interfaces for working with vectors in both 2D and 3D space. The IVector<T>
interface defines common vector operations, and the Vector2D
, Vector3D
, and Vector4D
classes implement these operations for 2D, 3D, and 4D vectors, respectively.
For more detailed usage examples and guidelines, refer to the inline comments in the source code.