Sur cette page

QLineF Class

La classe QLineF fournit un vecteur bidimensionnel utilisant la précision de la virgule flottante. Plus d'informations...

En-tête : #include <QLineF>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Cette classe est comparable à l 'égalité.

Cette classe est comparable à QLine.

Types publics

enum IntersectionType { NoIntersection, UnboundedIntersection, BoundedIntersection }

Fonctions publiques

QLineF()
QLineF(const QLine &line)
QLineF(const QPointF &p1, const QPointF &p2)
QLineF(qreal x1, qreal y1, qreal x2, qreal y2)
QPointF p1() const
QPointF p2() const
qreal x1() const
qreal x2() const
qreal y1() const
qreal y2() const
qreal angle() const
qreal angleTo(const QLineF &line) const
QPointF center() const
qreal dx() const
qreal dy() const
QLineF::IntersectionType intersects(const QLineF &line, QPointF *intersectionPoint = nullptr) const
bool isNull() const
qreal length() const
QLineF normalVector() const
QPointF pointAt(qreal t) const
void setP1(const QPointF &p1)
void setP2(const QPointF &p2)
void setAngle(qreal angle)
void setLength(qreal length)
void setLine(qreal x1, qreal y1, qreal x2, qreal y2)
void setPoints(const QPointF &p1, const QPointF &p2)
QLine toLine() const
void translate(const QPointF &offset)
void translate(qreal dx, qreal dy)
QLineF translated(const QPointF &offset) const
QLineF translated(qreal dx, qreal dy) const
QLineF unitVector() const

Membres publics statiques

QLineF fromPolar(qreal length, qreal angle)
(since 6.8) bool qFuzzyCompare(const QLineF &lhs, const QLineF &rhs)
(since 6.8) bool qFuzzyIsNull(const QLineF &line)
bool operator!=(const QLineF &lhs, const QLineF &rhs)
QDataStream &operator<<(QDataStream &stream, const QLineF &line)
bool operator==(const QLineF &lhs, const QLineF &rhs)
QDataStream &operator>>(QDataStream &stream, QLineF &line)

Description détaillée

Une QLineF décrit une ligne (ou un segment de ligne) de longueur finie sur une surface bidimensionnelle. QLineF définit les points de départ et d'arrivée de la ligne en utilisant des coordonnées en virgule flottante. La fonction toLine() permet de récupérer une copie de cette ligne basée sur des nombres entiers.

Les positions des points de départ et d'arrivée de la ligne peuvent être récupérées à l'aide des fonctions p1(), x1(), y1(), p2(), x2() et y2(). Les fonctions dx() et dy() renvoient respectivement les composantes horizontale et verticale de la ligne.

La longueur de la ligne peut être récupérée à l'aide de la fonction length() et modifiée à l'aide de la fonction setLength(). De même, les fonctions angle() et setAngle() sont respectivement utilisées pour récupérer et modifier l'angle de la ligne. La fonction isNull() permet de déterminer si la QLineF représente une ligne valide ou une ligne nulle.

La fonction intersects() détermine la valeur de IntersectionType pour cette ligne et une ligne donnée, tandis que la fonction angleTo() renvoie l'angle entre les lignes. En outre, la fonction unitVector() renvoie une ligne ayant le même point de départ que cette ligne, mais avec une longueur de 1 seulement, tandis que la fonction normalVector() renvoie une ligne perpendiculaire à cette ligne avec le même point de départ et la même longueur.

Enfin, la ligne peut être translatée d'un décalage donné à l'aide de la fonction translate(), et peut être parcourue à l'aide de la fonction pointAt().

Contraintes

QLine est limitée aux valeurs minimales et maximales du type int. Les opérations sur QLine qui pourraient potentiellement donner lieu à des valeurs en dehors de cette plage se traduiront par un comportement non défini.

Voir également QLine, QPolygonF, et QRectF.

Documentation sur les types de membres

enum QLineF::IntersectionType

Décrit l'intersection entre deux lignes.

QLineF::UnboundedIntersectionQLineF::BoundedIntersection
ConstanteValeurDescription de la constante
QLineF::NoIntersection0Indique que les lignes ne se croisent pas, c'est-à-dire qu'elles sont parallèles.
QLineF::UnboundedIntersection2Les deux lignes se croisent, mais pas dans l'intervalle défini par leurs longueurs, ce qui est le cas si les lignes ne sont pas parallèles. Ce sera le cas si les lignes ne sont pas parallèles. intersect() renverra également cette valeur si le point d'intersection se trouve à l'intérieur des points de départ et d'arrivée d'une seule des lignes.
QLineF::BoundedIntersection1Les deux lignes se croisent à l'intérieur des points de départ et d'arrivée de chaque ligne.

Voir également intersects().

Documentation des fonctions membres

[constexpr] QLineF::QLineF()

Construit une ligne nulle.

[constexpr] QLineF::QLineF(const QLine &line)

Construit un objet QLineF à partir de la base d'entiers donnée line.

Voir aussi toLine() et QLine::toLineF().

[constexpr] QLineF::QLineF(const QPointF &p1, const QPointF &p2)

Construit un objet ligne qui représente la ligne entre p1 et p2.

[constexpr] QLineF::QLineF(qreal x1, qreal y1, qreal x2, qreal y2)

Construit un objet ligne qui représente la ligne entre (x1, y1) et (x2, y2).

[constexpr] QPointF QLineF::p1() const

Renvoie le point de départ de la ligne.

Voir aussi setP1(), x1(), y1() et p2().

[constexpr] QPointF QLineF::p2() const

Renvoie le point final de la ligne.

Voir aussi setP2(), x2(), y2() et p1().

[constexpr] qreal QLineF::x1() const

Renvoie la coordonnée x du point de départ de la ligne.

Voir également p1().

[constexpr] qreal QLineF::x2() const

Renvoie la coordonnée x du point d'arrivée de la ligne.

Voir également p2().

[constexpr] qreal QLineF::y1() const

Renvoie la coordonnée y du point de départ de la ligne.

Voir également p1().

[constexpr] qreal QLineF::y2() const

Renvoie la coordonnée y du point d'arrivée de la ligne.

Voir également p2().

qreal QLineF::angle() const

Renvoie l'angle de la ligne en degrés.

La valeur renvoyée sera comprise entre 0,0 et 360,0. Les angles sont mesurés dans le sens inverse des aiguilles d'une montre à partir d'un point de l'axe des x à droite de l'origine (x > 0).

Voir également setAngle().

qreal QLineF::angleTo(const QLineF &line) const

Renvoie l'angle (en degrés) entre cette ligne et l'adresse line, en tenant compte de la direction des lignes. Si les lignes ne sont pas intersect dans leur rayon d'action, c'est le point d'intersection des lignes prolongées qui sert d'origine (voir QLineF::UnboundedIntersection).

La valeur renvoyée représente le nombre de degrés que vous devez ajouter à cette ligne pour qu'elle ait le même angle que la ligne donnée line, dans le sens inverse des aiguilles d'une montre.

Voir également intersects().

[constexpr] QPointF QLineF::center() const

Renvoie le point central de cette ligne. Cela équivaut à 0,5 * p1() + 0,5 * p2().

[constexpr] qreal QLineF::dx() const

Renvoie la composante horizontale du vecteur de la ligne.

Voir aussi dy() et pointAt().

[constexpr] qreal QLineF::dy() const

Renvoie la composante verticale du vecteur de la ligne.

Voir aussi dx() et pointAt().

[static] QLineF QLineF::fromPolar(qreal length, qreal angle)

Renvoie une ligne QLineF avec les données length et angle.

Le premier point de la ligne sera sur l'origine.

Les valeurs positives des angles signifient le sens inverse des aiguilles d'une montre, tandis que les valeurs négatives signifient le sens des aiguilles d'une montre. Le zéro degré se trouve à la position 3 heures.

QLineF::IntersectionType QLineF::intersects(const QLineF &line, QPointF *intersectionPoint = nullptr) const

Renvoie une valeur indiquant si cette ligne coupe ou non la ligne donnée line.

Le point d'intersection réel est extrait vers intersectionPoint (si le pointeur est valide). Si les lignes sont parallèles, le point d'intersection est indéfini.

[constexpr] bool QLineF::isNull() const

Renvoie true si la ligne n'a pas de points de départ et d'arrivée distincts ; sinon, renvoie false. Les points de départ et d'arrivée sont considérés comme distincts si qFuzzyCompare() peut les distinguer dans au moins une coordonnée.

Remarque : en raison de l'utilisation d'une comparaison floue, isNull() peut renvoyer true pour les lignes dont length() est différent de zéro.

Voir également qFuzzyCompare() et length().

qreal QLineF::length() const

Renvoie la longueur de la ligne.

Voir aussi setLength() et isNull().

[constexpr] QLineF QLineF::normalVector() const

Renvoie une ligne perpendiculaire à cette ligne avec le même point de départ et la même longueur.

Diagramme représentant deux vecteurs ayant le même point de départ : (v_x, v_y) et (vy, -vx).

Voir aussi unitVector().

[constexpr] QPointF QLineF::pointAt(qreal t) const

Renvoie le point à la position spécifiée par le paramètre fini t. La fonction renvoie le point de départ de la ligne si t = 0, et son point d'arrivée si t = 1.

Voir également dx() et dy().

void QLineF::setP1(const QPointF &p1)

Fixe le point de départ de cette ligne à p1.

Voir aussi setP2() et p1().

void QLineF::setP2(const QPointF &p2)

Fixe le point final de cette ligne à p2.

Voir aussi setP1() et p2().

void QLineF::setAngle(qreal angle)

Définit l'angle de la ligne à l'adresse angle (en degrés). Cela modifiera la position du deuxième point de la ligne de manière à ce que la ligne ait l'angle donné.

Les valeurs positives des angles signifient le sens inverse des aiguilles d'une montre, tandis que les valeurs négatives signifient le sens des aiguilles d'une montre. L'angle zéro se situe à la position 3 heures.

Voir également angle().

void QLineF::setLength(qreal length)

Fixe la longueur de la ligne à la valeur finie donnée length. QLineF déplacera le point final - p2() - de la ligne pour lui donner sa nouvelle longueur, à moins que length() n'ait été précédemment égal à zéro, auquel cas aucune mise à l'échelle n'est tentée.

Voir également length() et unitVector().

void QLineF::setLine(qreal x1, qreal y1, qreal x2, qreal y2)

Place cette ligne au début de x1, y1 et à la fin de x2, y2.

Voir aussi setP1(), setP2(), p1() et p2().

void QLineF::setPoints(const QPointF &p1, const QPointF &p2)

Définit le point de départ de cette ligne à p1 et le point d'arrivée de cette ligne à p2.

Voir aussi setP1(), setP2(), p1() et p2().

[constexpr] QLine QLineF::toLine() const

Renvoie une copie de cette ligne basée sur un nombre entier.

Notez que les points de départ et d'arrivée de la ligne retournée sont arrondis à l'entier le plus proche.

Voir aussi QLineF() et QLine::toLineF().

[constexpr] void QLineF::translate(const QPointF &offset)

Traduit cette ligne par la valeur donnée offset.

[constexpr] void QLineF::translate(qreal dx, qreal dy)

Traduit cette ligne à la distance spécifiée par dx et dy.

Il s'agit d'une fonction surchargée.

[constexpr] QLineF QLineF::translated(const QPointF &offset) const

Retourne cette ligne traduite par la valeur donnée offset.

[constexpr] QLineF QLineF::translated(qreal dx, qreal dy) const

Renvoie cette ligne traduite à la distance spécifiée par dx et dy.

Il s'agit d'une fonction surchargée.

QLineF QLineF::unitVector() const

Renvoie le vecteur unitaire de cette ligne, c'est-à-dire une ligne commençant au même point que cette ligne avec une longueur de 1,0, à condition que la ligne ne soit pas nulle.

Voir aussi normalVector() et setLength().

Non-membres apparentés

[constexpr noexcept, since 6.8] bool qFuzzyCompare(const QLineF &lhs, const QLineF &rhs)

Renvoie true si la ligne lhs est approximativement égale à la ligne rhs; sinon, renvoie false.

Les lignes sont considérées comme approximativement égales si leurs points de départ et d'arrivée sont approximativement égaux.

Cette fonction a été introduite dans Qt 6.8.

[constexpr noexcept, since 6.8] bool qFuzzyIsNull(const QLineF &line)

Renvoie true si le point de départ de la ligne line est approximativement égal à son point d'arrivée ; sinon, renvoie false.

Cette fonction a été introduite dans Qt 6.8.

[constexpr noexcept] bool operator!=(const QLineF &lhs, const QLineF &rhs)

Renvoie true si la ligne lhs n'est pas la même que la ligne rhs.

Une ligne est différente d'une autre ligne si leurs points de départ ou d'arrivée sont différents, ou si l'ordre interne des points est différent.

QDataStream &operator<<(QDataStream &stream, const QLineF &line)

Écrit la donnée line dans la donnée stream et renvoie une référence au flux.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

[constexpr noexcept] bool operator==(const QLineF &lhs, const QLineF &rhs)

Renvoie true si la ligne lhs est identique à la ligne rhs.

Une ligne est identique à une autre ligne si les points de départ et d'arrivée sont identiques et si l'ordre interne des points est le même.

QDataStream &operator>>(QDataStream &stream, QLineF &line)

Lit une ligne de l'adresse stream donnée dans l'adresse line donnée et renvoie une référence au flux.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

© 2026 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.