# Point3D 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 an x-, y-, and z-coordinate point in 3-D space.

`public value class Point3D : IFormattable`

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

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

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

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

```
Public Structure Point3D
Implements IFormattable
```

- Inheritance

- Attributes

- Implements

## Examples

This example shows how to subtract Point3D structures and Vector3D structures using the overloaded subtraction (`-`

) operator and the Point3D static Subtract method.

The following code illustrates how to use the Point3D subtraction methods. First, the Point3D structures and the Vector3D structures are instantiated. The Point3D structures are subtracted using the overloaded subtraction (`-`

) operator and then they are subtracted using the static Subtract method. Next, the Vector3D structure is subtracted from the first Point3D structure using the static Subtract method, and finally the Point3D structure is subtract from the Vector3D using the overloaded subtraction (`-`

) operator.

```
// instantiate variables
Point3D point1 = new Point3D();
Point3D point2 = new Point3D(15, 40, 60);
Vector3D vector1 = new Vector3D(20, 30, 40);
Point3D pointResult1 = new Point3D();
Point3D pointResult2 = new Point3D();
Vector3D vectorResult1 = new Vector3D();
Vector3D vectorResult2 = new Vector3D();
// defining x,y,z of point1
point1.X = 10;
point1.Y = 5;
point1.Z = 1;
vectorResult1 = Point3D.Subtract(point1, point2);
// vectorResult1 is equal to (-5, -35, -59)
vectorResult2 = point2 - point1;
// vectorResult2 is equal to (5, 35, 59)
pointResult1 = Point3D.Subtract(point1, vector1);
// pointResult1 is equal to (-10, -25, -39)
pointResult2 = vector1 - point1;
// pointResult2 is equal to (10, 25, 39)
```

## Remarks

In XAML, the delimiter between the values of a Point3D can be either a comma or a space.

Some cultures might use the comma character as the decimal delimiter instead of the period character. XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. You should avoid using the comma character as the decimal delimiter if specifying a Point3D in XAML, because that will clash with the string type conversion of a Point3D attribute value into its components.

### XAML Attribute Usage

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

### XAML Values

*x*

The x-coordinate of this Point3D.

*y*

The y-coordinate of this Point3D.

*z*

The z-coordinate of this Point3D.

## Constructors

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

## Properties

X |
Gets or sets the x-coordinate of this Point3D structure. |

Y |
Gets or sets the y-coordinate of this Point3D structure. |

Z |
Gets or sets the z-coordinate of this Point3D structure. |

## Methods

Add(Point3D, Vector3D) |
Adds a Point3D structure to a Vector3D and returns the result as a Point3D structure. |

Equals(Object) |
Determines whether the specified object is a Point3D structure and if so, whether the X, Y, and Z properties of the specified Object are equal to the X, Y, and Z properties of this Point3D structure. |

Equals(Point3D) |
Compares two Point3D structures for equality. |

Equals(Point3D, Point3D) |
Compares two Point3D structures for equality. |

GetHashCode() |
Returns a hash code for this Point3D structure. |

Multiply(Point3D, Matrix3D) |
Transforms the specified Point3D structure by the specified Matrix3D structure. |

Offset(Double, Double, Double) |
Translates the Point3D structure by the specified amounts. |

Parse(String) |
Converts a String representation of a 3-D point into the equivalent Point3D structure. |

Subtract(Point3D, Point3D) |
Subtracts a Point3D structure from a Point3D structure and returns the result as a Vector3D structure. |

Subtract(Point3D, Vector3D) |
Subtracts a Vector3D structure from a Point3D structure and returns the result as a Point3D structure. |

ToString() | |

ToString(IFormatProvider) |

## Operators

Addition(Point3D, Vector3D) |
Adds a Point3D structure to a Vector3D and returns the result as a Point3D structure. |

Equality(Point3D, Point3D) |
Compares two Point3D structures for equality. |

Explicit(Point3D to Point4D) | |

Explicit(Point3D to Vector3D) | |

Inequality(Point3D, Point3D) |
Compares two Point3D structures for inequality. |

Multiply(Point3D, Matrix3D) |
Transforms the specified Point3D structure by the specified Matrix3D structure. |

Subtraction(Point3D, Point3D) |
Subtracts a Point3D structure from a Point3D structure and returns the result as a Vector3D structure. |

Subtraction(Point3D, Vector3D) |
Subtracts a Vector3D structure from a Point3D structure and returns the result as a Point3D structure. |

## Explicit Interface Implementations

IFormattable.ToString(String, IFormatProvider) |
This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. For a description of this member, see ToString(String, IFormatProvider). |

## Applies to

## Feedback

https://aka.ms/ContentUserFeedback.

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for