# Point struct

Namespace: [Eto.Drawing](https://eto.picoe.ca/api/namespace/eto.drawing.md) · Assembly: [Eto](https://eto.picoe.ca/api/assembly/eto.md)

```cs
[TypeConverter(PointConverterInternal)]
public struct Point : IEquatable<Point>
```

A struct representing X and Y co-ordinates as integer values

**Remarks:** The point struct is used for drawing and positioning of elements and widgets

## Constructors

- [Point](https://eto.picoe.ca/api/type/eto.drawing.point/ctor.md): (3 overloads) Initializes a new instance of a Point class with specified `x` and `y` values

## Fields

- [Empty](https://eto.picoe.ca/api/type/eto.drawing.point/empty.md): (static) Gets an empty point with an X and Y value of zero

## Properties

- [IsZero](https://eto.picoe.ca/api/type/eto.drawing.point/iszero.md): Gets a value indicating that both the X and Y co-ordinates of this point are zero
- [Length](https://eto.picoe.ca/api/type/eto.drawing.point/length.md): Gets the length of the point as a vector from origin 0,0
- [LengthSquared](https://eto.picoe.ca/api/type/eto.drawing.point/lengthsquared.md): Gets the squared length of the point as a vector from origin 0,0.
- [Normal](https://eto.picoe.ca/api/type/eto.drawing.point/normal.md): Gets the point as a normal vector (perpendicular) to the current point from the origin
- [UnitVector](https://eto.picoe.ca/api/type/eto.drawing.point/unitvector.md): Gets the current point as a unit vector (a point with a [Point.Length](https://eto.picoe.ca/api/type/eto.drawing.point/length.md) of 1.0 from origin 0,0)
- [X](https://eto.picoe.ca/api/type/eto.drawing.point/x.md): Gets or sets the X co-ordinate of this point
- [Y](https://eto.picoe.ca/api/type/eto.drawing.point/y.md): Gets or sets the Y co-ordinate of this point

## Methods

- [Abs](https://eto.picoe.ca/api/type/eto.drawing.point/abs.md): (static) Returns the absolute X and Y components of the specified `point`
- [Distance](https://eto.picoe.ca/api/type/eto.drawing.point/distance.md): (2 overloads) Gets the distance between this point and the specified `point`
- [DotProduct](https://eto.picoe.ca/api/type/eto.drawing.point/dotproduct.md): (2 overloads) Gets the dot product of this instance and the specified `point`
- [Equals](https://eto.picoe.ca/api/type/eto.drawing.point/equals.md): (2 overloads) Returns a value indicating that the specified `obj` is equal to this point
- [GetHashCode](https://eto.picoe.ca/api/type/eto.drawing.point/gethashcode.md): Gets the hash code of this point
- [Max](https://eto.picoe.ca/api/type/eto.drawing.point/max.md): (static) Returns the maximum X and Y components of two points
- [Min](https://eto.picoe.ca/api/type/eto.drawing.point/min.md): (static) Returns the minimum X and Y components of two points
- [Offset](https://eto.picoe.ca/api/type/eto.drawing.point/offset.md): (4 overloads) Offsets the X and Y co-ordinates of the `point` by the specified `x` and `y` values
- [Restrict](https://eto.picoe.ca/api/type/eto.drawing.point/restrict.md): (2 overloads) Restricts the X and Y co-ordinates of the specified `point` within the `rectangle`
- [Round](https://eto.picoe.ca/api/type/eto.drawing.point/round.md): (static) Rounds the X and Y components of the specified `point` to a [Point](https://eto.picoe.ca/api/type/eto.drawing.point.md)
- [ToString](https://eto.picoe.ca/api/type/eto.drawing.point/tostring.md): Converts this point to a string
- [Truncate](https://eto.picoe.ca/api/type/eto.drawing.point/truncate.md): (static) Truncates the X and Y components of the specified `point` to a [Point](https://eto.picoe.ca/api/type/eto.drawing.point.md)
- [UnitVectorAtAngle](https://eto.picoe.ca/api/type/eto.drawing.point/unitvectoratangle.md): (static) Creates a unit vector PointF (a point with a [Point.Length](https://eto.picoe.ca/api/type/eto.drawing.point/length.md) of 1.0 from origin 0,0) with the specified angle, in degrees

## Operators

- [operator +](https://eto.picoe.ca/api/type/eto.drawing.point/op-addition.md): (3 overloads, static) Operator to add a `value` to both the X and Y co-ordinates of a point
- [operator /](https://eto.picoe.ca/api/type/eto.drawing.point/op-division.md): (2 overloads, static) Divides the X and Y co-ordinates of the specified `point` with a given `value`
- [operator ==](https://eto.picoe.ca/api/type/eto.drawing.point/op-equality.md): (static) Determines equality between two points
- [operator !=](https://eto.picoe.ca/api/type/eto.drawing.point/op-inequality.md): (static) Determines the inequality between two points
- [operator *](https://eto.picoe.ca/api/type/eto.drawing.point/op-multiply.md): (5 overloads, static) Multiplies the X and Y co-ordinates of the specified `point` with a given `factor`
- [operator -](https://eto.picoe.ca/api/type/eto.drawing.point/op-subtraction.md): (3 overloads, static) Operator to subtract a `value` from both the X and Y co-ordinates of a point
- [operator -](https://eto.picoe.ca/api/type/eto.drawing.point/op-unarynegation.md): (static) Returns a new Point with negative x and y values of the specified `point`

## Convertors

- [operator explicit](https://eto.picoe.ca/api/type/eto.drawing.point/op-explicit.md): (2 overloads, static) Explicit conversion from a [PointF](https://eto.picoe.ca/api/type/eto.drawing.pointf.md) to a [Point](https://eto.picoe.ca/api/type/eto.drawing.point.md) by truncating values
