QLineF Class
Die Klasse QLineF liefert einen zweidimensionalen Vektor mit Fließkommagenauigkeit. Mehr...
Kopfzeile: | #include <QLineF> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- Liste aller Mitglieder, einschließlich vererbter Mitglieder
- Ausgeschiedene Mitglieder
- QLineF ist Teil der Malerei-Klassen.
Diese Klasse ist gleichsetzbar.
Diese Klasse ist gleichsetzbar mit QLine.
Ö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) |
Verwandte Nicht-Mitglieder
(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) |
Detaillierte Beschreibung
Eine QLineF beschreibt eine Linie (oder ein Liniensegment) endlicher Länge auf einer zweidimensionalen Fläche. QLineF definiert den Anfangs- und Endpunkt der Linie mit Fließkommagenauigkeit für die Koordinaten. Verwenden Sie die Funktion toLine(), um eine Integer-basierte Kopie dieser Linie zu erhalten.
![]() | ![]() |
Die Positionen der Anfangs- und Endpunkte der Linie können mit den Funktionen p1(), x1(), y1(), p2(), x2() und y2() abgerufen werden. Die Funktionen dx() und dy() geben die horizontale bzw. vertikale Komponente der Linie zurück.
Die Länge der Linie kann mit der Funktion length() abgefragt und mit der Funktion setLength() geändert werden. In ähnlicher Weise werden die Funktionen angle() und setAngle() zum Abrufen bzw. Ändern des Winkels der Linie verwendet. 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 gegebene 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 Ausgangspunkt wie diese Linie hat, aber nur 1 lang ist, während die Funktion normalVector() eine Linie zurückgibt, die senkrecht zu dieser Linie steht und denselben Ausgangspunkt und dieselbe Länge hat.
Schließlich kann die Linie mit der Funktion translate() um einen bestimmten Offset verschoben und mit der Funktion pointAt() traversiert werden.
Beschränkungen
QLine ist auf die Mindest- und Höchstwerte für den Typ int
beschränkt. Operationen auf QLine, die möglicherweise zu Werten außerhalb dieses Bereichs führen könnten, führen zu undefiniertem Verhalten.
Siehe auch QLine, QPolygonF, und QRectF.
Dokumentation der Mitgliedstypen
enum QLineF::IntersectionType
Beschreibt den Schnittpunkt zwischen zwei Linien.
![]() | ![]() |
QLineF::UnboundedIntersection | QLineF::BegrenzteSchnittstelle |
Konstante | Wert | Beschreibung |
---|---|---|
QLineF::NoIntersection | 0 | Gibt an, dass sich die Linien nicht schneiden, d.h. sie sind parallel. |
QLineF::UnboundedIntersection | 2 | Die beiden Linien schneiden sich, aber nicht innerhalb des durch ihre Längen definierten Bereichs. Dies ist der Fall, wenn die Linien nicht parallel sind. intersect() gibt diesen Wert auch zurück, wenn der Schnittpunkt innerhalb des Anfangs- und Endpunkts nur einer der Linien liegt. |
QLineF::BoundedIntersection | 1 | Die beiden Linien schneiden sich innerhalb des Anfangs- und Endpunkts jeder Linie. |
Siehe auch intersects().
Dokumentation der Mitgliedsfunktionen
[constexpr]
QLineF::QLineF()
Konstruiert eine Null-Linie.
[constexpr]
QLineF::QLineF(const QLine &line)
Konstruiert ein QLineF-Objekt aus dem gegebenen Integer-basierten line.
Siehe auch toLine() und QLine::toLineF().
[constexpr]
QLineF::QLineF(const QPointF &p1, const QPointF &p2)
Konstruiert ein Linienobjekt, das die Linie zwischen p1 und p2 darstellt.
[constexpr]
QLineF::QLineF(qreal x1, qreal y1, qreal x2, qreal y2)
Konstruiert 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 Linie in Grad zurück.
Der Rückgabewert liegt im Wertebereich von 0,0 bis einschließlich 360,0. Die Winkel werden gegen den Uhrzeigersinn von einem Punkt auf der x-Achse rechts vom Ursprung aus gemessen (x > 0).
Siehe auch setAngle().
qreal QLineF::angleTo(const QLineF &line) const
Gibt den Winkel (in Grad) zwischen dieser Linie und dem angegebenen line zurück, wobei die Richtung der Linien berücksichtigt wird. 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, die Sie zu dieser Linie addieren müssen, damit sie denselben Winkel wie die angegebene line hat, und zwar entgegen dem 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 Vektors der Linie zurück.
Siehe auch dy() und pointAt().
[constexpr]
qreal QLineF::dy() const
Gibt die vertikale Komponente des Vektors der Linie zurück.
Siehe auch dx() und pointAt().
[static]
QLineF QLineF::fromPolar(qreal length, qreal angle)
Gibt eine QLineF mit den angegebenen length und angle zurück.
Der erste Punkt der Linie liegt im Ursprung.
Positive Werte für die Winkel bedeuten gegen den Uhrzeigersinn, während negative Werte den Uhrzeigersinn bedeuten. Der Nullpunkt liegt auf 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 Linie mit der angegebenen line schneidet oder nicht.
Der tatsächliche Schnittpunkt wird nach intersectionPoint extrahiert (sofern der Zeiger gültig ist). Wenn die Linien parallel sind, ist der Schnittpunkt undefiniert.
[constexpr]
bool QLineF::isNull() const
Gibt true
zurück, wenn die Linie keine eindeutigen Anfangs- und Endpunkte hat; andernfalls false
. Die Anfangs- und Endpunkte gelten als eindeutig, wenn qFuzzyCompare() sie in mindestens einer Koordinate unterscheiden kann.
Hinweis: Aufgrund des Fuzzy-Vergleichs kann isNull() true
für Linien zurückgeben, deren length() nicht Null ist.
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 Linie zurück, die senkrecht zu dieser Linie verläuft und denselben Startpunkt und dieselbe Länge hat.
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 Anfangspunkt der Linie zurück, wenn t = 0, und den Endpunkt, wenn t = 1.
void QLineF::setP1(const QPointF &p1)
Setzt den Startpunkt dieser Zeile auf p1.
void QLineF::setP2(const QPointF &p2)
Setzt den Endpunkt dieser Zeile auf p2.
void QLineF::setAngle(qreal angle)
Setzt den Winkel der Linie auf den angegebenen angle (in Grad). Dadurch wird die Position des zweiten Punktes der Linie so verändert, dass die Linie den angegebenen Winkel hat.
Positive Werte für die Winkel bedeuten gegen den Uhrzeigersinn, während negative Werte den Uhrzeigersinn bedeuten. Der Nullpunkt liegt auf der 3-Uhr-Position.
Siehe auch angle().
void QLineF::setLength(qreal length)
Setzt die Länge der Linie auf die angegebene endliche length. QLineF verschiebt den Endpunkt - p2() - der Linie, um der Linie ihre neue Länge zu geben, es sei denn, length() war vorher 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 auf den Anfang in x1, y1 und das Ende in x2, y2.
Siehe auch setP1(), setP2(), p1(), und p2().
void QLineF::setPoints(const QPointF &p1, const QPointF &p2)
Setzt den Startpunkt dieser Zeile auf p1 und den Endpunkt dieser Zeile auf p2.
Siehe auch setP1(), setP2(), p1(), und p2().
[constexpr]
QLine QLineF::toLine() const
Gibt eine ganzzahlige Kopie dieser Zeile zurück.
Beachten Sie, dass die Anfangs- und Endpunkte der zurückgegebenen Zeile auf die nächste Ganzzahl gerundet werden.
Siehe auch QLineF() und QLine::toLineF().
void QLineF::translate(const QPointF &offset)
Übersetzt diese Zeile mit dem angegebenen offset.
void QLineF::translate(qreal dx, qreal dy)
Dies ist eine überladene Funktion.
Verschiebt diese Zeile um den durch dx und dy angegebenen Abstand.
[constexpr]
QLineF QLineF::translated(const QPointF &offset) const
Gibt diese Zeile übersetzt mit dem angegebenen offset zurück.
[constexpr]
QLineF QLineF::translated(qreal dx, qreal dy) const
Dies ist eine überladene Funktion.
Gibt diese Linie übersetzt in der durch dx und dy angegebenen Entfernung zurück.
QLineF QLineF::unitVector() const
Gibt den Einheitsvektor für diese Linie zurück, d. h. eine Linie, die am selben Punkt wie diese Linie beginnt und eine Länge von 1,0 hat, sofern die Linie nicht leer ist.
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 ungefähr gleich der Zeile rhs ist; andernfalls wird false
zurückgegeben.
Die Zeilen werden als annähernd gleich angesehen, wenn ihre Anfangs- 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 Zeile line ungefähr mit ihrem Endpunkt übereinstimmt; 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 Zeile lhs nicht mit der Zeile rhs identisch ist.
Eine Zeile unterscheidet sich von einer anderen Zeile, wenn ihre Anfangs- oder Endpunkte unterschiedlich sind 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 von Qt-Datentypen.
[constexpr noexcept]
bool operator==(const QLineF &lhs, const QLineF &rhs)
Gibt true
zurück, wenn die Zeile lhs mit der Zeile rhs identisch ist.
Eine Zeile ist identisch mit einer anderen Zeile, wenn der Anfangs- und Endpunkt identisch sind und die interne Reihenfolge der Punkte gleich ist.
QDataStream &operator>>(QDataStream &stream, QLineF &line)
Liest eine Zeile aus dem angegebenen stream in den angegebenen line und gibt eine Referenz auf den Stream zurück.
Siehe auch Serialisierung von Qt-Datentypen.
© 2025 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.