# QPointF Class

The QPointF class defines a point in the plane using floating point precision. More...

Header: | #include <QPointF> |

qmake: | QT += core |

**Note:** All functions in this class are reentrant.

## Public Functions

QPointF() | |

QPointF(const QPoint &point) | |

QPointF(qreal xpos, qreal ypos) | |

bool | isNull() const |

qreal | manhattanLength() const |

qreal & | rx() |

qreal & | ry() |

void | setX(qreal x) |

void | setY(qreal y) |

QPoint | toPoint() const |

qreal | x() const |

qreal | y() const |

QPointF & | operator*=(qreal factor) |

QPointF & | operator+=(const QPointF &point) |

QPointF & | operator-=(const QPointF &point) |

QPointF & | operator/=(qreal divisor) |

## Static Public Members

qreal | dotProduct(const QPointF &p1, const QPointF &p2) |

## Related Non-Members

bool | operator!=(const QPointF &p1, const QPointF &p2) |

const QPointF | operator*(const QPointF &point, qreal factor) |

const QPointF | operator*(qreal factor, const QPointF &point) |

const QPointF | operator+(const QPointF &p1, const QPointF &p2) |

const QPointF | operator+(const QPointF &point) |

const QPointF | operator-(const QPointF &p1, const QPointF &p2) |

const QPointF | operator-(const QPointF &point) |

const QPointF | operator/(const QPointF &point, qreal divisor) |

QDataStream & | operator<<(QDataStream &stream, const QPointF &point) |

bool | operator==(const QPointF &p1, const QPointF &p2) |

QDataStream & | operator>>(QDataStream &stream, QPointF &point) |

## Detailed Description

The QPointF class defines a point in the plane using floating point precision.

A point is specified by a x coordinate and an y coordinate which can be accessed using the x() and y() functions. The coordinates of the point are specified using floating point numbers for accuracy. The isNull() function returns `true`

if both x and y are set to 0.0. The coordinates can be set (or altered) using the setX() and setY() functions, or alternatively the rx() and ry() functions which return references to the coordinates (allowing direct manipulation).

Given a point *p*, the following statements are all equivalent:

QPointF p; p.setX(p.x() + 1.0); p += QPointF(1.0, 0.0); p.rx()++;

A QPointF object can also be used as a vector: Addition and subtraction are defined as for vectors (each component is added separately). A QPointF object can also be divided or multiplied by an `int`

or a `qreal`

.

In addition, the QPointF class provides a constructor converting a QPoint object into a QPointF object, and a corresponding toPoint() function which returns a QPoint copy of *this* point. Finally, QPointF objects can be streamed as well as compared.

**See also **QPoint and QPolygonF.

## Member Function Documentation

### QPointF::QPointF()

Constructs a null point, i.e. with coordinates (0.0, 0.0)

**See also **isNull().

### QPointF::QPointF(const QPoint &*point*)

Constructs a copy of the given *point*.

**See also **toPoint().

### QPointF::QPointF(qreal *xpos*, qreal *ypos*)

Constructs a point with the given coordinates (*xpos*, *ypos*).

`[static] `

qreal QPointF::dotProduct(const QPointF &*p1*, const QPointF &*p2*)

QPointF p( 3.1, 7.1); QPointF q(-1.0, 4.1); int lengthSquared = QPointF::dotProduct(p, q); // lengthSquared becomes 26.01

Returns the dot product of *p1* and *p2*.

This function was introduced in Qt 5.1.

### bool QPointF::isNull() const

Returns `true`

if both the x and y coordinates are set to 0.0 (ignoring the sign); otherwise returns `false`

.

### qreal QPointF::manhattanLength() const

Returns the sum of the absolute values of x() and y(), traditionally known as the "Manhattan length" of the vector from the origin to the point.

This function was introduced in Qt 4.6.

**See also **QPoint::manhattanLength().

### qreal &QPointF::rx()

Returns a reference to the x coordinate of this point.

Using a reference makes it possible to directly manipulate x. For example:

QPointF p(1.1, 2.5); p.rx()--; // p becomes (0.1, 2.5)

### qreal &QPointF::ry()

Returns a reference to the y coordinate of this point.

Using a reference makes it possible to directly manipulate y. For example:

QPointF p(1.1, 2.5); p.ry()++; // p becomes (1.1, 3.5)

### void QPointF::setX(qreal *x*)

Sets the x coordinate of this point to the given *x* coordinate.

### void QPointF::setY(qreal *y*)

Sets the y coordinate of this point to the given *y* coordinate.

### QPoint QPointF::toPoint() const

Rounds the coordinates of this point to the nearest integer, and returns a QPoint object with the rounded coordinates.

**See also **QPointF().

### qreal QPointF::x() const

Returns the x coordinate of this point.

### qreal QPointF::y() const

Returns the y coordinate of this point.

### QPointF &QPointF::operator*=(qreal *factor*)

Multiplies this point's coordinates by the given *factor*, and returns a reference to this point. For example:

QPointF p(-1.1, 4.1); p *= 2.5; // p becomes (-2.75, 10.25)

**See also **operator/=().

### QPointF &QPointF::operator+=(const QPointF &*point*)

Adds the given *point* to this point and returns a reference to this point. For example:

QPointF p( 3.1, 7.1); QPointF q(-1.0, 4.1); p += q; // p becomes (2.1, 11.2)

**See also **operator-=().

### QPointF &QPointF::operator-=(const QPointF &*point*)

Subtracts the given *point* from this point and returns a reference to this point. For example:

QPointF p( 3.1, 7.1); QPointF q(-1.0, 4.1); p -= q; // p becomes (4.1, 3.0)

**See also **operator+=().

### QPointF &QPointF::operator/=(qreal *divisor*)

Divides both x and y by the given *divisor*, and returns a reference to this point. For example:

QPointF p(-2.75, 10.25); p /= 2.5; // p becomes (-1.1, 4.1)

**See also **operator*=().

## Related Non-Members

### bool operator!=(const QPointF &*p1*, const QPointF &*p2*)

Returns `true`

if *p1* is not equal to *p2*; otherwise returns `false`

.

### const QPointF operator*(const QPointF &*point*, qreal *factor*)

Returns a copy of the given *point*, multiplied by the given *factor*.

**See also **QPointF::operator*=().

### const QPointF operator*(qreal *factor*, const QPointF &*point*)

This is an overloaded function.

Returns a copy of the given *point*, multiplied by the given *factor*.

### const QPointF operator+(const QPointF &*p1*, const QPointF &*p2*)

Returns a QPointF object that is the sum of the given points, *p1* and *p2*; each component is added separately.

**See also **QPointF::operator+=().

### const QPointF operator+(const QPointF &*point*)

Returns *point* unmodified.

This function was introduced in Qt 5.0.

### const QPointF operator-(const QPointF &*p1*, const QPointF &*p2*)

Returns a QPointF object that is formed by subtracting *p2* from *p1*; each component is subtracted separately.

**See also **QPointF::operator-=().

### const QPointF operator-(const QPointF &*point*)

This is an overloaded function.

Returns a QPointF object that is formed by changing the sign of both components of the given *point*.

Equivalent to `QPointF(0,0) - point`

.

### const QPointF operator/(const QPointF &*point*, qreal *divisor*)

Returns the QPointF object formed by dividing both components of the given *point* by the given *divisor*.

**See also **QPointF::operator/=().

### QDataStream &operator<<(QDataStream &*stream*, const QPointF &*point*)

Writes the given *point* to the given *stream* and returns a reference to the stream.

**See also **Serializing Qt Data Types.

### bool operator==(const QPointF &*p1*, const QPointF &*p2*)

Returns `true`

if *p1* is equal to *p2*; otherwise returns `false`

.

### QDataStream &operator>>(QDataStream &*stream*, QPointF &*point*)

Reads a point from the given *stream* into the given *point* and returns a reference to the stream.

**See also **Serializing Qt Data Types.

© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.