QCPVector2D Class Reference
Author: Emanuel Eichhammer

· · · ·
Public Functions | Related Non-Members
QCPVector2D Class Reference

Represents two doubles as a mathematical 2D vector. More...

## Public Functions
| QCPVector2D ()
| QCPVector2D (double x, double y)
| QCPVector2D (const QPoint &point)
| QCPVector2D (const QPointF &point)
double | x () const
double | y () const
double & | rx ()
double & | ry ()
void | setX (double x)
void | setY (double y)
double | length () const
double | lengthSquared () const
double | angle () const
QPoint | toPoint () const
QPointF | toPointF () const
bool | isNull () const
void | normalize ()
QCPVector2D | normalized () const
QCPVector2D | perpendicular () const
double | dot (const QCPVector2D &vec) const
double | distanceSquaredToLine (const QCPVector2D &start, const QCPVector2D &end) const
double | distanceSquaredToLine (const QLineF &line) const
double | distanceToStraightLine (const QCPVector2D &base, const QCPVector2D &direction) const
QCPVector2D & | operator*= (double factor)
QCPVector2D & | operator/= (double divisor)
QCPVector2D & | operator+= (const QCPVector2D &vector)
QCPVector2D & | operator-= (const QCPVector2D &vector)

## Related Non-Members
(Note that these are not member functions.)
QDebug | operator<< (QDebug d, const QCPVector2D &vec)

## Detailed Description

Represents two doubles as a mathematical 2D vector.

This class acts as a replacement for QVector2D with the advantage of double precision instead of single, and some convenience methods tailored for the QCustomPlot library.

## Constructor & Destructor Documentation

## ◆ QCPVector2D() [1/4]

QCPVector2D::QCPVector2D | ( |  | ) |

Creates a QCPVector2D object and initializes the x and y coordinates to 0.

## ◆ QCPVector2D() [2/4]

QCPVector2D::QCPVector2D | ( | double | x,
|  | double | y
| ) |  |

Creates a QCPVector2D object and initializes the x and y coordinates with the specified values.

## ◆ QCPVector2D() [3/4]

QCPVector2D::QCPVector2D | ( | const QPoint & | point | ) |

Creates a QCPVector2D object and initializes the x and y coordinates respective coordinates of the specified point.

## ◆ QCPVector2D() [4/4]

QCPVector2D::QCPVector2D | ( | const QPointF & | point | ) |

Creates a QCPVector2D object and initializes the x and y coordinates respective coordinates of the specified point.

## Member Function Documentation

## ◆ setX()

void QCPVector2D::setX | ( | double | x | ) |
| inline

Sets the x coordinate of this vector to x.

See also
  setY

## ◆ setY()

void QCPVector2D::setY | ( | double | y | ) |
| inline

Sets the y coordinate of this vector to y.

See also
  setX

## ◆ length()

double QCPVector2D::length | ( |  | ) | const
| inline

Returns the length of this vector.

See also
  lengthSquared

## ◆ lengthSquared()

double QCPVector2D::lengthSquared | ( |  | ) | const
| inline

Returns the squared length of this vector. In some situations, e.g. when just trying to find the shortest vector of a group, this is faster than calculating length, because it avoids calculation of a square root.

See also
  length

## ◆ angle()

double QCPVector2D::angle | ( |  | ) | const
| inline

Returns the angle of the vector in radians. The angle is measured between the positive x line and the vector, counter-clockwise in a mathematical coordinate system (y axis upwards positive). In screen/widget coordinates where the y axis is inverted, the angle appears clockwise.

## ◆ toPoint()

QPoint QCPVector2D::toPoint | ( |  | ) | const
| inline

Returns a QPoint which has the x and y coordinates of this vector, truncating any floating point information.

See also
  toPointF

## ◆ toPointF()

QPointF QCPVector2D::toPointF | ( |  | ) | const
| inline

Returns a QPointF which has the x and y coordinates of this vector.

See also
  toPoint

## ◆ isNull()

bool QCPVector2D::isNull | ( |  | ) | const
| inline

Returns whether this vector is null. A vector is null if `qIsNull` returns true for both x and y coordinates, i.e. if both are binary equal to 0.

## ◆ normalize()

void QCPVector2D::normalize | ( |  | ) |

Normalizes this vector. After this operation, the length of the vector is equal to 1.

If the vector has both entries set to zero, this method does nothing.

See also
  normalized, length, lengthSquared

## ◆ normalized()

QCPVector2D QCPVector2D::normalized | ( |  | ) | const

Returns a normalized version of this vector. The length of the returned vector is equal to 1.

If the vector has both entries set to zero, this method returns the vector unmodified.

See also
  normalize, length, lengthSquared

## ◆ perpendicular()

QCPVector2D QCPVector2D::perpendicular | ( |  | ) | const
| inline

Returns a vector perpendicular to this vector, with the same length.

## ◆ dot()

double QCPVector2D::dot | ( | const QCPVector2D & | vec | ) | const
| inline

Returns the dot/scalar product of this vector with the specified vector vec.

## ◆ distanceSquaredToLine() [1/2]

double QCPVector2D::distanceSquaredToLine | ( | const QCPVector2D & | start,
|  | const QCPVector2D & | end
| ) |  | const

This is an overloaded function.
Returns the squared shortest distance of this vector (interpreted as a point) to the finite line segment given by start and end.

See also
  distanceToStraightLine

## ◆ distanceSquaredToLine() [2/2]

double QCPVector2D::distanceSquaredToLine | ( | const QLineF & | line | ) | const

This is an overloaded function.
Returns the squared shortest distance of this vector (interpreted as a point) to the finite line segment given by line.

See also
  distanceToStraightLine

## ◆ distanceToStraightLine()

double QCPVector2D::distanceToStraightLine | ( | const QCPVector2D & | base,
|  | const QCPVector2D & | direction
| ) |  | const

Returns the shortest distance of this vector (interpreted as a point) to the infinite straight line given by a base point and a direction vector.

See also
  distanceSquaredToLine

## ◆ operator*=()

QCPVector2D & QCPVector2D::operator*= | ( | double | factor | ) |

Scales this vector by the given factor, i.e. the x and y components are multiplied by factor.

## ◆ operator/=()

QCPVector2D & QCPVector2D::operator/= | ( | double | divisor | ) |

Scales this vector by the given divisor, i.e. the x and y components are divided by divisor.

## ◆ operator+=()

QCPVector2D & QCPVector2D::operator+= | ( | const QCPVector2D & | vector | ) |

Adds the given vector to this vector component-wise.

## ◆ operator-=()

QCPVector2D & QCPVector2D::operator-= | ( | const QCPVector2D & | vector | ) |

subtracts the given vector from this vector component-wise.

## Friends And Related Function Documentation

## ◆ operator<<()

QDebug operator<< | ( | QDebug | d,
|  | const QCPVector2D & | vec
| ) |  |
| related

Prints vec in a human readable format to the qDebug output.

The documentation for this class was generated from the following files:

- src/vector2d.h
- src/vector2d.cpp