# Vector3D Structure

.NET Framework (current version)

Represents a displacement in 3-D space.

Namespace:   System.Windows.Media.Media3D
Assembly:  PresentationCore (in PresentationCore.dll)

## Syntax

```[SerializableAttribute]
[TypeConverterAttribute(typeof(Vector3DConverter))]
public struct Vector3D : IFormattable
```

## Constructors

NameDescription
Vector3D(Double, Double, Double)

Initializes a new instance of a Vector3D structure.

## Properties

NameDescription
Length

Gets the length of this Vector3D structure.

LengthSquared

Gets the square of the length of this Vector3D structure.

X

Gets or sets the X component of this Vector3D structure.

Y

Gets or sets the Y component of this Vector3D structure.

Z

Gets or sets the Z component of this Vector3D structure.

## Methods

NameDescription
Add(Vector3D, Point3D)

Translates the specified Point3D structure by the specified Vector3D structure and returns the result as a Point3D structure.

Add(Vector3D, Vector3D)

Adds two Vector3D structures and returns the result as a Vector3D structure.

AngleBetween(Vector3D, Vector3D)

Retrieves the angle required to rotate the first specified Vector3D structure into the second specified Vector3D structure.

CrossProduct(Vector3D, Vector3D)

Calculates the cross product of two Vector3D structures.

Divide(Vector3D, Double)

Divides the specified Vector3D structure by the specified scalar and returns the result as a Vector3D.

DotProduct(Vector3D, Vector3D)

Calculates the dot product of two Vector3D structures.

Equals(Object)

Determines whether the specified object is a Vector3D structure and whether the X, Y, and Z properties of the specified Object are equal to the X, Y, and Z properties of this Vector3D structure.(Overrides ValueType.Equals(Object).)

Equals(Vector3D)

Compares two Vector3D structures for equality.

Equals(Vector3D, Vector3D)

Compares two Vector3D structures for equality.

GetHashCode()

Gets a hash code for this Vector3D structure. (Overrides ValueType.GetHashCode().)

GetType()

Gets the Type of the current instance.(Inherited from Object.)

Multiply(Double, Vector3D)

Multiplies the specified scalar by the specified Vector3D structure and returns the result as a Vector3D.

Multiply(Vector3D, Double)

Multiplies the specified Vector3D structure by the specified scalar and returns the result as a Vector3D.

Multiply(Vector3D, Matrix3D)

Transforms the coordinate space of the specified Vector3D structure using the specified Matrix3D structure.

Negate()

Negates a Vector3D structure.

Normalize()

Normalizes the specified Vector3D structure.

Parse(String)

Converts a String representation of a 3-D vector into the equivalent Vector3D structure.

Subtract(Vector3D, Point3D)

Subtracts a Point3D structure from a Vector3D structure.

Subtract(Vector3D, Vector3D)

Subtracts a Vector3D structure from a Vector3D structure.

ToString()

Creates a String representation of this Vector3D structure. (Overrides ValueType.ToString().)

ToString(IFormatProvider)

Creates a String representation of this Vector3D structure.

## Operators

NameDescription
Addition(Vector3D, Point3D)

Translates the specified Point3D structure by the specified Vector3D structure and returns the result as a Point3D structure.

Addition(Vector3D, Vector3D)

Adds two Vector3D structures and returns the result as a Vector3D structure.

Division(Vector3D, Double)

Divides the specified Vector3D structure by the specified scalar and returns the result as a Vector3D.

Equality(Vector3D, Vector3D)

Compares two Vector3D structures for equality.

Explicit(Vector3D to Point3D)

Converts a Vector3D structure into a Point3D structure.

Explicit(Vector3D to Size3D)

Converts a Vector3D structure into a Size3D.

Inequality(Vector3D, Vector3D)

Compares two Vector3D structures for inequality.

Multiply(Double, Vector3D)

Multiplies the specified scalar by the specified Vector3D structure and returns the result as a Vector3D.

Multiply(Vector3D, Double)

Multiplies the specified Vector3D structure by the specified scalar and returns the result as a Vector3D.

Multiply(Vector3D, Matrix3D)

Transforms the coordinate space of the specified Vector3D structure using the specified Matrix3D structure.

Subtraction(Vector3D, Point3D)

Subtracts a Point3D structure from a Vector3D structure.

Subtraction(Vector3D, Vector3D)

Subtracts a Vector3D structure from a Vector3D structure.

UnaryNegation(Vector3D)

Negates a Vector3D structure.

## Explicit Interface Implementations

NameDescription
IFormattable.ToString(String, IFormatProvider)

This member is part of the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly by your code. For a description of this member, see ToString.

## Remarks

### XAML Attribute Usage

```<object property="x,y,z"/>
-or
<object property="x y z"/>
```

### XAML Values

x

The X component of this Vector3D structure.

y

The Y component of this Vector3D structure.

z

The Z component of this Vector3D structure.

## Examples

This example shows how to subtract Vector3D structures using the overloaded subtraction (-) operator and the Vector3D static Subtract method.

The following code shows how to use the Vector3D subtraction methods. First, the Vector3D structures are instantiated. The Vector3D structures are subtracted using the overloaded (-) operator, and then they are subtracted using the static Subtract method.

```// Subtracts two 3-D Vectors using the Subtract method and -

// Declaring vector1 and initializing x,y,z values
Vector3D vector1 = new Vector3D(20, 30, 40);

// Declaring vector2 without initializing x,y,z values
Vector3D vector2 = new Vector3D();

// Assigning values to vector2
vector2.X = 45;
vector2.Y = 70;
vector2.Z = 80;

// Subtracting vectors using overload - operator
Vector3D vectorResult1 = new Vector3D();
vectorResult1 = vector1 - vector2;
// vectorResult1 is equal to (-25, -40, -40)

// Subtracting vectors using static Subtract method
Vector3D vectorResult2 = new Vector3D();
vectorResult2 = Vector3D.Subtract(vector1, vector2);
// vector2 is equal to (-25, -40, -40)
```

## Version Information

.NET Framework
Available since 3.0

## Thread Safety

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

Return to top
Show: