QCPVector2D Class Reference
Author: Emanuel Eichhammer

· · · ·
Public Functions | Friends | 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
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)

## Friends
const QCPVector2D | operator* (double factor, const QCPVector2D &vec)
const QCPVector2D | operator* (const QCPVector2D &vec, double factor)
const QCPVector2D | operator/ (const QCPVector2D &vec, double divisor)
const QCPVector2D | operator+ (const QCPVector2D &vec1, const QCPVector2D &vec2)
const QCPVector2D | operator- (const QCPVector2D &vec1, const QCPVector2D &vec2)
const QCPVector2D | operator- (const QCPVector2D &vec)

## 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

## § 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.

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.

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