- Qt 5.15
- Qt GUI
- C++ Classes
- QVector2D
- Qt 5.15.19 Reference Documentation

# QVector2D Class

The QVector2D class represents a vector or vertex in 2D space. More...

Header: | #include <QVector2D>
qmake: | QT += gui
Since: | Qt 4.6

This class was introduced in Qt 4.6.

- List of all members, including inherited members

## Public Functions

| QVector2D(const QVector4D &vector)
| QVector2D(const QVector3D &vector)
| QVector2D(const QPointF &point)
| QVector2D(const QPoint &point)
| QVector2D(float xpos, float ypos)
| QVector2D()
float | distanceToLine(const QVector2D &point, const QVector2D &direction) const
float | distanceToPoint(const QVector2D &point) const
bool | isNull() const
float | length() const
float | lengthSquared() const
void | normalize()
QVector2D | normalized() const
void | setX(float x)
void | setY(float y)
QPoint | toPoint() const
QPointF | toPointF() const
QVector3D | toVector3D() const
QVector4D | toVector4D() const
float | x() const
float | y() const
QVariant | operator QVariant() const
QVector2D & | operator*=(float factor)
QVector2D & | operator*=(const QVector2D &vector)
QVector2D & | operator+=(const QVector2D &vector)
QVector2D & | operator-=(const QVector2D &vector)
QVector2D & | operator/=(float divisor)
QVector2D & | operator/=(const QVector2D &vector)
float & | operator[](int i)
float | operator[](int i) const

## Static Public Members

float | dotProduct(const QVector2D &v1, const QVector2D &v2)

## Related Non-Members

bool | qFuzzyCompare(const QVector2D &v1, const QVector2D &v2)
bool | operator!=(const QVector2D &v1, const QVector2D &v2)
const QVector2D | operator*(float factor, const QVector2D &vector)
const QVector2D | operator*(const QVector2D &vector, float factor)
const QVector2D | operator*(const QVector2D &v1, const QVector2D &v2)
const QVector2D | operator+(const QVector2D &v1, const QVector2D &v2)
const QVector2D | operator-(const QVector2D &v1, const QVector2D &v2)
const QVector2D | operator-(const QVector2D &vector)
const QVector2D | operator/(const QVector2D &vector, float divisor)
const QVector2D | operator/(const QVector2D &vector, const QVector2D &divisor)
QDataStream & | operator<<(QDataStream &stream, const QVector2D &vector)
bool | operator==(const QVector2D &v1, const QVector2D &v2)
QDataStream & | operator>>(QDataStream &stream, QVector2D &vector)

## Detailed Description

The QVector2D class can also be used to represent vertices in 2D space. We therefore do not need to provide a separate vertex class.

See also QVector3D, QVector4D, and QQuaternion.

## Member Function Documentation

### QVector2D::QVector2D(const QVector4D &vector)

Constructs a vector with x and y coordinates from a 3D vector. The z and w coordinates of vector are dropped.

See also toVector4D().

### QVector2D::QVector2D(const QVector3D &vector)

Constructs a vector with x and y coordinates from a 3D vector. The z coordinate of vector is dropped.

See also toVector3D().

### QVector2D::QVector2D(const QPointF &point)

Constructs a vector with x and y coordinates from a 2D point.

### QVector2D::QVector2D(const QPoint &point)

Constructs a vector with x and y coordinates from a 2D point.

### QVector2D::QVector2D(float xpos, float ypos)

Constructs a vector with coordinates (xpos, ypos).

### QVector2D::QVector2D()

Constructs a null vector, i.e. with coordinates (0, 0).

### float QVector2D::distanceToLine(const QVector2D &point, const QVector2D &direction) const

Returns the distance that this vertex is from a line defined by point and the unit vector direction.

If direction is a null vector, then it does not define a line. In that case, the distance from point to this vertex is returned.

This function was introduced in Qt 5.1.

See also distanceToPoint().

### float QVector2D::distanceToPoint(const QVector2D &point) const

Returns the distance from this vertex to a point defined by the vertex point.

This function was introduced in Qt 5.1.

See also distanceToLine().

### `[static]` float QVector2D::dotProduct(const QVector2D &v1, const QVector2D &v2)

Returns the dot product of v1 and v2.

### bool QVector2D::isNull() const

Returns `true` if the x and y coordinates are set to 0.0, otherwise returns `false`.

### float QVector2D::length() const

Returns the length of the vector from the origin.

See also lengthSquared() and normalized().

### float QVector2D::lengthSquared() const

Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.

See also length() and dotProduct().

### void QVector2D::normalize()

Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.

See also length() and normalized().

### QVector2D QVector2D::normalized() const

Returns the normalized unit vector form of this vector.

If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.

See also length() and normalize().

### void QVector2D::setX(float x)

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

See also x() and setY().

### void QVector2D::setY(float y)

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

See also y() and setX().

### QPoint QVector2D::toPoint() const

Returns the QPoint form of this 2D vector.

See also toPointF() and toVector3D().

### QPointF QVector2D::toPointF() const

Returns the QPointF form of this 2D vector.

See also toPoint() and toVector3D().

### QVector3D QVector2D::toVector3D() const

Returns the 3D form of this 2D vector, with the z coordinate set to zero.

See also toVector4D() and toPoint().

### QVector4D QVector2D::toVector4D() const

Returns the 4D form of this 2D vector, with the z and w coordinates set to zero.

See also toVector3D() and toPoint().

### float QVector2D::x() const

Returns the x coordinate of this point.

See also setX() and y().

### float QVector2D::y() const

Returns the y coordinate of this point.

See also setY() and x().

### QVariant QVector2D::operator QVariant() const

Returns the 2D vector as a QVariant.

### QVector2D &QVector2D::operator*=(float factor)

Multiplies this vector's coordinates by the given factor, and returns a reference to this vector.

See also operator/=().

### QVector2D &QVector2D::operator*=(const QVector2D &vector)

Multiplies the components of this vector by the corresponding components in vector.

### QVector2D &QVector2D::operator+=(const QVector2D &vector)

Adds the given vector to this vector and returns a reference to this vector.

See also operator-=().

### QVector2D &QVector2D::operator-=(const QVector2D &vector)

Subtracts the given vector from this vector and returns a reference to this vector.

See also operator+=().

### QVector2D &QVector2D::operator/=(float divisor)

Divides this vector's coordinates by the given divisor, and returns a reference to this vector.

See also operator*=().

### QVector2D &QVector2D::operator/=(const QVector2D &vector)

Divides the components of this vector by the corresponding components in vector.

This function was introduced in Qt 5.5.

See also operator*=().

### float &QVector2D::operator[](int i)

Returns the component of the vector at index position i as a modifiable reference.

i must be a valid index position in the vector (i.e., 0 <= i < 2).

This function was introduced in Qt 5.2.

### float QVector2D::operator[](int i) const

Returns the component of the vector at index position i.

i must be a valid index position in the vector (i.e., 0 <= i < 2).

This function was introduced in Qt 5.2.

## Related Non-Members

### bool qFuzzyCompare(const QVector2D &v1, const QVector2D &v2)

Returns `true` if v1 and v2 are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.

### bool operator!=(const QVector2D &v1, const QVector2D &v2)

Returns `true` if v1 is not equal to v2; otherwise returns `false`. This operator uses an exact floating-point comparison.

### const QVector2D operator*(float factor, const QVector2D &vector)

Returns a copy of the given vector, multiplied by the given factor.

See also QVector2D::operator*=().

### const QVector2D operator*(const QVector2D &vector, float factor)

Returns a copy of the given vector, multiplied by the given factor.

See also QVector2D::operator*=().

### const QVector2D operator*(const QVector2D &v1, const QVector2D &v2)

Multiplies the components of v1 by the corresponding components in v2.

### const QVector2D operator+(const QVector2D &v1, const QVector2D &v2)

Returns a QVector2D object that is the sum of the given vectors, v1 and v2; each component is added separately.

See also QVector2D::operator+=().

### const QVector2D operator-(const QVector2D &v1, const QVector2D &v2)

Returns a QVector2D object that is formed by subtracting v2 from v1; each component is subtracted separately.

See also QVector2D::operator-=().

### const QVector2D operator-(const QVector2D &vector)

This is an overloaded function.

Returns a QVector2D object that is formed by changing the sign of the components of the given vector.

Equivalent to `QVector2D(0,0) - vector`.

### const QVector2D operator/(const QVector2D &vector, float divisor)

Returns the QVector2D object formed by dividing all three components of the given vector by the given divisor.

See also QVector2D::operator/=().

### const QVector2D operator/(const QVector2D &vector, const QVector2D &divisor)

Returns the QVector2D object formed by dividing components of the given vector by a respective components of the given divisor.

This function was introduced in Qt 5.5.

See also QVector2D::operator/=().

### QDataStream &operator<<(QDataStream &stream, const QVector2D &vector)

Writes the given vector to the given stream and returns a reference to the stream.

See also Serializing Qt Data Types.

### bool operator==(const QVector2D &v1, const QVector2D &v2)

Returns `true` if v1 is equal to v2; otherwise returns `false`. This operator uses an exact floating-point comparison.

### QDataStream &operator>>(QDataStream &stream, QVector2D &vector)

Reads a 2D vector from the given stream into the given vector and returns a reference to the stream.

See also Serializing Qt Data Types.