Auf dieser Seite

QLineF Class

Die Klasse „QLineF“ stellt einen zweidimensionalen Vektor mit Gleitkommagenauigkeit bereit. Mehr...

Header: #include <QLineF>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

QLineF-Vergleiche

KategorieVergleichbare Typen
GleichheitQLineF
GleichheitQLine.

Öffentliche Typen

enum IntersectionType { NoIntersection, UnboundedIntersection, BoundedIntersection }

Öffentliche Funktionen

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

Statische öffentliche Mitglieder

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)

Ausführliche Beschreibung

Ein QLineF beschreibt eine Linie (oder ein Liniensegment) endlicher Länge auf einer zweidimensionalen Fläche. QLineF definiert den Start- und Endpunkt der Linie unter Verwendung von Gleitkommagenauigkeit für die Koordinaten. Verwenden Sie die Funktion „ toLine()“, um eine auf Ganzzahlen basierende Kopie dieser Linie abzurufen.

Gerade mit den Beschriftungen p1, p2, dx, dyGerade mit den Koordinaten x1, y1, x2, y2, dx, dy beschriftet

Die Positionen des Start- und Endpunkts der Linie können mithilfe der Funktionen „ p1()“, „ x1()“, „ y1()“, „ p2()“, „ x2()“ und „ y2()“ abgerufen werden. Die Funktionen „ dx()“ und „ dy()“ geben jeweils die horizontale und vertikale Komponente der Linie zurück.

Die Länge der Linie kann mit der Funktion „ length()“ abgerufen und mit der Funktion „ setLength()“ geändert werden. Analog dazu dienen die Funktionen „ angle()“ und „ setAngle()“ zum Abrufen bzw. Ändern des Winkels der Linie. Verwenden Sie die Funktion „ isNull()“, um festzustellen, ob die QLineF eine gültige Linie oder eine Null-Linie darstellt.

Die Funktion „ intersects()“ ermittelt die „ IntersectionType “ für diese Linie und eine angegebene Linie, während die Funktion „ angleTo()“ den Winkel zwischen den Linien zurückgibt. Darüber hinaus gibt die Funktion „ unitVector()“ eine Linie zurück, die denselben Startpunkt wie diese Linie hat, jedoch nur eine Länge von 1 aufweist, während die Funktion „ normalVector()“ eine Linie zurückgibt, die senkrecht zu dieser Linie steht und denselben Startpunkt sowie dieselbe Länge aufweist.

Schließlich kann die Gerade mit der Funktion „ translate()“ um einen bestimmten Versatz verschoben und mit der Funktion „ pointAt()“ durchlaufen werden.

Einschränkungen

QLine ist auf die Minimal- und Maximalwerte des Typs „ int “ beschränkt. Operationen auf einem „ QLine “, die möglicherweise zu Werten außerhalb dieses Bereichs führen könnten, haben ein undefiniertes Verhalten zur Folge.

Siehe auch „ QLine “, „ QPolygonF “ und „ QRectF “.

Dokumentation zu Mitgliedstypen

enum QLineF::IntersectionType

Beschreibt den Schnittpunkt zweier Geraden.

Zwei Geraden mit Verlängerungen, die sich schneidenZwei sich innerhalb eines Bereichs schneidende Geraden
QLineF::UnboundedIntersectionQLineF::BoundedIntersection
KonstanteWertBeschreibung
QLineF::NoIntersection0Gibt an, dass sich die Geraden nicht schneiden, d. h., sie verlaufen parallel.
QLineF::UnboundedIntersection2Die beiden Geraden schneiden sich, jedoch nicht innerhalb des durch ihre Längen definierten Bereichs. Dies ist der Fall, wenn die Geraden nicht parallel sind. Die Funktion `intersect()` gibt diesen Wert auch zurück, wenn der Schnittpunkt nur innerhalb des Start- und Endpunkts einer der Geraden liegt.
QLineF::BoundedIntersection1Die beiden Geraden schneiden sich innerhalb der Start- und Endpunkte jeder Geraden.

Siehe auch ` intersects()`.

Dokumentation zu den Member-Funktionen

[constexpr] QLineF::QLineF()

Erzeugt eine Nullgerade.

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

Erstelle ein QLineF-Objekt aus der angegebenen ganzzahlbasierten „ line “.

Siehe auch ` toLine()` und ` QLine::toLineF()`.

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

Erstellt ein Linienobjekt, das die Linie zwischen p1 und p2 darstellt.

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

Erstellt ein Linienobjekt, das die Linie zwischen (x1, y1) und (x2, y2) darstellt.

[constexpr] QPointF QLineF::p1() const

Gibt den Startpunkt der Zeile zurück.

Siehe auch setP1(), x1(), y1() und p2().

[constexpr] QPointF QLineF::p2() const

Gibt den Endpunkt der Linie zurück.

Siehe auch „ setP2()“, „ x2()“, „ y2()“ und „ p1()“.

[constexpr] qreal QLineF::x1() const

Gibt die x-Koordinate des Startpunkts der Linie zurück.

Siehe auch „ p1()“.

[constexpr] qreal QLineF::x2() const

Gibt die x-Koordinate des Endpunkts der Linie zurück.

Siehe auch „ p2()“.

[constexpr] qreal QLineF::y1() const

Gibt die y-Koordinate des Startpunkts der Linie zurück.

Siehe auch „ p1()“.

[constexpr] qreal QLineF::y2() const

Gibt die y-Koordinate des Endpunkts der Linie zurück.

Siehe auch „ p2()“.

qreal QLineF::angle() const

Gibt den Winkel der Geraden in Grad zurück.

Der Rückgabewert liegt im Bereich von 0,0 bis 360,0 (360,0 nicht eingeschlossen). Die Winkel werden gegen den Uhrzeigersinn von einem Punkt auf der x-Achse rechts vom Ursprung gemessen (x > 0).

Siehe auch „ setAngle()“.

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

Gibt den Winkel (in Grad) zwischen dieser Linie und der angegebenen Linie line unter Berücksichtigung der Richtungen der Linien zurück. Wenn die Linien nicht intersect innerhalb ihres Bereichs liegen, dient der Schnittpunkt der verlängerten Linien als Ursprung (siehe QLineF::UnboundedIntersection).

Der zurückgegebene Wert gibt die Anzahl der Grad an, um die diese Linie verdreht werden muss, damit sie denselben Winkel wie die angegebene „ line “ aufweist (gegen den Uhrzeigersinn).

Siehe auch intersects().

[constexpr] QPointF QLineF::center() const

Gibt den Mittelpunkt dieser Linie zurück. Dies entspricht 0,5 * p1() + 0,5 * p2().

[constexpr] qreal QLineF::dx() const

Gibt die horizontale Komponente des Linienvektors zurück.

Siehe auch „ dy()“ und „ pointAt()“.

[constexpr] qreal QLineF::dy() const

Gibt die vertikale Komponente des Linienvektors zurück.

Siehe auch „ dx()“ und „ pointAt()“.

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

Gibt ein ` QLineF ` mit den angegebenen Werten ` length ` und ` angle` zurück.

Der erste Punkt der Linie liegt am Ursprung.

Positive Winkelwerte bedeuten eine Drehung gegen den Uhrzeigersinn, negative Werte eine Drehung im Uhrzeigersinn. Null Grad entspricht der 3-Uhr-Position.

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

Gibt einen Wert zurück, der angibt, ob sich diese Gerade mit der angegebenen line schneidet oder nicht.

Der tatsächliche Schnittpunkt wird in ` intersectionPoint ` gespeichert (sofern der Zeiger gültig ist). Sind die Linien parallel, ist der Schnittpunkt undefiniert.

[constexpr] bool QLineF::isNull() const

Gibt „ true “ zurück, wenn die Linie keinen eindeutigen Start- und Endpunkt hat; andernfalls wird „ false “ zurückgegeben. Die Start- und Endpunkte gelten als eindeutig, wenn „ qFuzzyCompare()“ sie in mindestens einer Koordinate unterscheiden kann.

Hinweis: Aufgrund der Verwendung eines unscharfen Vergleichs kann isNull() für Linien, deren length() nicht Null ist, den Wert „ true “ zurückgeben.

Siehe auch qFuzzyCompare() und length().

qreal QLineF::length() const

Gibt die Länge der Zeile zurück.

Siehe auch setLength() und isNull().

[constexpr] QLineF QLineF::normalVector() const

Gibt eine Gerade zurück, die senkrecht zu dieser Geraden steht und denselben Startpunkt sowie dieselbe Länge hat.

Diagramm, das zwei Vektoren mit demselben Startpunkt zeigt: (v_x, v_y) und (v_y, -v_x).

Siehe auch „ unitVector()“.

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

Gibt den Punkt an der durch den endlichen Parameter t angegebenen Position zurück. Die Funktion gibt den Startpunkt der Linie zurück, wenn t = 0 ist, und deren Endpunkt, wenn t = 1 ist.

Siehe auch „ dx()“ und „ dy()“.

void QLineF::setP1(const QPointF &p1)

Legt den Startpunkt dieser Linie auf p1 fest.

Siehe auch setP2() und p1().

void QLineF::setP2(const QPointF &p2)

Setzt den Endpunkt dieser Linie auf p2.

Siehe auch setP1() und p2().

void QLineF::setAngle(qreal angle)

Stellt den Winkel der Linie auf den angegebenen Wert „ angle “ (in Grad) ein. Dadurch wird die Position des zweiten Punktes der Linie so verändert, dass die Linie den angegebenen Winkel aufweist.

Positive Winkelwerte bedeuten eine Drehung gegen den Uhrzeigersinn, negative Werte eine Drehung im Uhrzeigersinn. Null Grad entspricht der 3-Uhr-Position.

Siehe auch ` angle()`.

void QLineF::setLength(qreal length)

Legt die Länge der Linie auf den angegebenen endlichen Wert „ length “ fest. „ QLineF “ verschiebt den Endpunkt – „ p2()“ – der Linie, um ihr die neue Länge zu geben, es sei denn, „ length()“ war zuvor Null; in diesem Fall wird keine Skalierung versucht.

Siehe auch length() und unitVector().

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

Setzt diese Zeile in x1 und y1 auf den Anfang und in x2 und y2 auf das Ende.

Siehe auch setP1(), setP2(), p1() und p2().

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

Legt den Startpunkt dieser Zeile auf p1 und den Endpunkt dieser Zeile auf p2 fest.

Siehe auch setP1(), setP2(), p1() und p2().

[constexpr] QLine QLineF::toLine() const

Gibt eine auf Ganzzahlen basierende Kopie dieser Zeile zurück.

Beachten Sie, dass der Start- und Endpunkt der zurückgegebenen Zeile auf die nächste ganze Zahl gerundet werden.

Siehe auch QLineF() und QLine::toLineF().

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

Übersetzt diese Zeile mit dem angegebenen „ offset “.

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

Verschiebt diese Zeile um die in dx und dy angegebene Entfernung.

Dies ist eine überladene Funktion.

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

Gibt diese Zeile zurück, übersetzt mit der angegebenen „ offset “.

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

Gibt diese Zeile um die in dx und dy angegebene Entfernung verschoben zurück.

Dies ist eine überladene Funktion.

QLineF QLineF::unitVector() const

Gibt den Einheitsvektor für diese Gerade zurück, d. h. eine Gerade, die am selben Punkt wie diese Gerade beginnt und eine Länge von 1,0 hat, vorausgesetzt, die Gerade ist nicht null.

Siehe auch normalVector() und setLength().

Verwandte Nicht-Mitglieder

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

Gibt „ true “ zurück, wenn die Zeile „ lhs “ annähernd gleich der Zeile „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Die Linien gelten als annähernd gleich, wenn ihre Start- und Endpunkte annähernd gleich sind.

Diese Funktion wurde in Qt 6.8 eingeführt.

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

Gibt „ true “ zurück, wenn der Startpunkt der Linie „ line “ annähernd gleich ihrem Endpunkt ist; andernfalls wird „ false “ zurückgegeben.

Diese Funktion wurde in Qt 6.8 eingeführt.

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

Gibt „ true “ zurück, wenn die Linie „ lhs “ nicht mit der Linie „ rhs “ übereinstimmt.

Zwei Linien unterscheiden sich voneinander, wenn sich ihre Start- oder Endpunkte unterscheiden oder die interne Reihenfolge der Punkte unterschiedlich ist.

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

Schreibt den angegebenen „ line “ in den angegebenen „ stream “ und gibt eine Referenz auf den Stream zurück.

Siehe auch „Serialisierung vonQt-Datentypen“.

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

Gibt „ true “ zurück, wenn die Linie lhs mit der Linie rhs übereinstimmt.

Zwei Linien sind identisch, wenn Start- und Endpunkt identisch sind und die interne Reihenfolge der Punkte dieselbe ist.

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

Liest eine Zeile aus dem angegebenen „ stream “ in den angegebenen „ line “ ein und gibt eine Referenz auf den Stream zurück.

Siehe auch „Serialisierung vonQt-Datentypen“.

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