# PointF 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(PointFConverterInternal)]
public struct PointF : IEquatable<PointF>
```

A struct representing X and Y co-ordinates as floating point values

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

## Constructors

- [PointF](https://eto.picoe.ca/api/type/eto.drawing.pointf/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.pointf/empty.md): (static) Gets an empty point with an X and Y value of zero

## Properties

- [Angle](https://eto.picoe.ca/api/type/eto.drawing.pointf/angle.md): Gets the angle of the point as a vector from origin 0,0.
- [IsZero](https://eto.picoe.ca/api/type/eto.drawing.pointf/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.pointf/length.md): Gets the length of the point as a vector from origin 0,0
- [LengthSquared](https://eto.picoe.ca/api/type/eto.drawing.pointf/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.pointf/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.pointf/unitvector.md): Gets the current point as a unit vector (a point with a [PointF.Length](https://eto.picoe.ca/api/type/eto.drawing.pointf/length.md) of 1.0 from origin 0,0)
- [X](https://eto.picoe.ca/api/type/eto.drawing.pointf/x.md): Gets or sets the X co-ordinate of this point
- [Y](https://eto.picoe.ca/api/type/eto.drawing.pointf/y.md): Gets or sets the Y co-ordinate of this point

## Methods

- [Abs](https://eto.picoe.ca/api/type/eto.drawing.pointf/abs.md): (static) Returns the absolute X and Y components of the specified `point`
- [AngleTo](https://eto.picoe.ca/api/type/eto.drawing.pointf/angleto.md): Gets the angle of the width/height as a vector from the specified `destination`.
- [Distance](https://eto.picoe.ca/api/type/eto.drawing.pointf/distance.md): (2 overloads) Gets the distance between this point and the specified `point`
- [DotProduct](https://eto.picoe.ca/api/type/eto.drawing.pointf/dotproduct.md): (2 overloads) Gets the dot product of this instance and the specified `point`
- [Equals](https://eto.picoe.ca/api/type/eto.drawing.pointf/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.pointf/gethashcode.md): Gets the hash code of this point
- [LengthTo](https://eto.picoe.ca/api/type/eto.drawing.pointf/lengthto.md): Gets the length between this point and the `destination` point.
- [Max](https://eto.picoe.ca/api/type/eto.drawing.pointf/max.md): (static) Returns the maximum X and Y components of two points
- [Min](https://eto.picoe.ca/api/type/eto.drawing.pointf/min.md): (static) Returns the minimum X and Y components of two points
- [Offset](https://eto.picoe.ca/api/type/eto.drawing.pointf/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.pointf/restrict.md): (2 overloads) Restricts the X and Y co-ordinates of the specified `point` within the `rectangle`
- [Rotate](https://eto.picoe.ca/api/type/eto.drawing.pointf/rotate.md): (2 overloads) Treats the `point` as a vector and rotates it around the origin (0,0) by the specified `angle`.
- [ToString](https://eto.picoe.ca/api/type/eto.drawing.pointf/tostring.md): Converts this point to a string
- [UnitVectorAtAngle](https://eto.picoe.ca/api/type/eto.drawing.pointf/unitvectoratangle.md): (static) Creates a unit vector PointF (a point with a [PointF.Length](https://eto.picoe.ca/api/type/eto.drawing.pointf/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.pointf/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.pointf/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.pointf/op-equality.md): (static) Determines equality between two points
- [operator !=](https://eto.picoe.ca/api/type/eto.drawing.pointf/op-inequality.md): (static) Determines the inequality between two points
- [operator *](https://eto.picoe.ca/api/type/eto.drawing.pointf/op-multiply.md): (4 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.pointf/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.pointf/op-unarynegation.md): (static) Returns a new PointF with negative x and y values of the specified `point`

## Convertors

- [operator explicit](https://eto.picoe.ca/api/type/eto.drawing.pointf/op-explicit.md): (static) Explicit conversion from a `size` to a PointF with a X and Y of the Width and Height values of the size, respectively
- [operator implicit](https://eto.picoe.ca/api/type/eto.drawing.pointf/op-implicit.md): (static) Implicit conversion from a [Point](https://eto.picoe.ca/api/type/eto.drawing.point.md) to a [PointF](https://eto.picoe.ca/api/type/eto.drawing.pointf.md)
