Qt Reference Documentation

# QVector2D Class Reference

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

     #include <QVector2D>

This class was introduced in Qt 4.6.

- List of all members, including inherited members

## Public Functions

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

## Static Public Members

qreal | 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* ( qreal factor, const QVector2D & vector )
const QVector2D | operator* ( const QVector2D & vector, qreal 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, qreal 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 represents a vector or vertex in 2D space.

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

Note: By design values in the QVector2D instance are stored as `float`. This means that on platforms where the `qreal` arguments to QVector2D functions are represented by `double` values, it is possible to lose precision.

See also QVector3D, QVector4D, and QQuaternion.

## Member Function Documentation

### QVector2D::QVector2D ()

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

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

Constructs a vector with coordinates (xpos, ypos).

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

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

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

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

### 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 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().

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

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.

### qreal QVector2D::length () const

Returns the length of the vector from the origin.

See also lengthSquared() and normalized().

### qreal 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 ( qreal x )

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

See also x() and setY().

### void QVector2D::setY ( qreal 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().

### qreal QVector2D::x () const

Returns the x coordinate of this point.

See also setX() and y().

### qreal QVector2D::y () const

Returns the y coordinate of this point.

See also setY() and x().

### QVector2D::operator QVariant () const

Returns the 2D vector as a QVariant.

### QVector2D & QVector2D::operator*= ( qreal 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/= ( qreal divisor )

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

See also operator*=().

## 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* ( qreal 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, qreal 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, qreal divisor )

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

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.