# Vector3D Struct

## Definition

Represents a displacement in 3-D space.

`public value class Vector3D : IFormattable`

```
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.Vector3DConverter))]
public struct Vector3D : IFormattable
```

```
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.Vector3DConverter))]
[System.Serializable]
public struct Vector3D : IFormattable
```

```
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.Vector3DConverter))>]
type Vector3D = struct
interface IFormattable
```

```
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.Vector3DConverter))>]
[<System.Serializable>]
type Vector3D = struct
interface IFormattable
```

```
Public Structure Vector3D
Implements IFormattable
```

- Inheritance

- Attributes

- Implements

## 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)
```

## 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.

## Constructors

Vector3D(Double, Double, Double) |
Initializes a new instance of a Vector3D structure. |

## Properties

Length |
Gets the length of this Vector3D structure. |

LengthSquared |
Gets the square of the length of this Vector3D structure. |

X | |

Y | |

Z |

## Methods

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. |

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. |

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) | |

Subtract(Vector3D, Vector3D) | |

ToString() | |

ToString(IFormatProvider) |

## Operators

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) | |

Explicit(Vector3D to 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) | |

Subtraction(Vector3D, Vector3D) | |

UnaryNegation(Vector3D) |
Negates a Vector3D structure. |

## Explicit Interface Implementations

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(String, IFormatProvider). |