QPolygon Class
Die Klasse QPolygon liefert eine Liste von Punkten mit ganzzahliger Genauigkeit. Mehr...
Kopfzeile: | #include <QPolygon> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Vererbt: | QList |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QPolygon ist Teil der Klassen Painting Classes und Implicitly Shared Classes.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
QPolygon() | |
QPolygon(const QList<QPoint> &points) | |
QPolygon(const QRect &rectangle, bool closed = false) | |
QRect | boundingRect() const |
bool | containsPoint(const QPoint &point, Qt::FillRule fillRule) const |
QPolygon | intersected(const QPolygon &r) const |
bool | intersects(const QPolygon &p) const |
void | point(int index, int *x, int *y) const |
QPoint | point(int index) const |
void | putPoints(int index, int nPoints, int firstx, int firsty, ...) |
void | putPoints(int index, int nPoints, const QPolygon &fromPolygon, int fromIndex = 0) |
void | setPoint(int index, int x, int y) |
void | setPoint(int index, const QPoint &point) |
void | setPoints(int nPoints, const int *points) |
void | setPoints(int nPoints, int firstx, int firsty, ...) |
QPolygon | subtracted(const QPolygon &r) const |
void | swap(QPolygon &other) |
(since 6.4) QPolygonF | toPolygonF() const |
void | translate(int dx, int dy) |
void | translate(const QPoint &offset) |
QPolygon | translated(int dx, int dy) const |
QPolygon | translated(const QPoint &offset) const |
QPolygon | united(const QPolygon &r) const |
QVariant | operator QVariant() const |
Verwandte Nicht-Mitglieder
QDataStream & | operator<<(QDataStream &stream, const QPolygon &polygon) |
QDataStream & | operator>>(QDataStream &stream, QPolygon &polygon) |
Detaillierte Beschreibung
Ein QPolygon-Objekt ist ein QList<QPoint>. Der einfachste Weg, Punkte zu einem QPolygon hinzuzufügen, ist die Verwendung des Streaming-Operators von QList, wie unten dargestellt:
Zusätzlich zu den von QList bereitgestellten Funktionen bietet QPolygon einige punktspezifische Funktionen.
Jeder Punkt in einem Polygon kann durch Übergabe seines Indexes an die Funktion point() abgerufen werden. Um das Polygon zu füllen, stellt QPolygon die Funktion setPoint() zur Verfügung, um den Punkt an einem gegebenen Index zu setzen, die Funktion setPoints(), um alle Punkte im Polygon zu setzen (wobei die Größe auf die gegebene Anzahl von Punkten angepasst wird), und die Funktion putPoints(), die eine Anzahl von gegebenen Punkten von einem angegebenen Index in das Polygon kopiert (wobei die Größe des Polygons gegebenenfalls angepasst wird).
QPolygon bietet die Funktionen boundingRect() und translate() für Geometriefunktionen. Verwenden Sie die Funktion QTransform::map() für allgemeinere Transformationen von QPolygons.
Die QPolygon-Klasse wird implizit gemeinsam genutzt.
Siehe auch QList, QPolygonF, und QLine.
Dokumentation der Mitgliedsfunktionen
[constexpr noexcept]
QPolygon::QPolygon()
Konstruiert ein Polygon ohne Punkte.
Siehe auch QList::isEmpty().
QPolygon::QPolygon(const QList<QPoint> &points)
Konstruiert ein Polygon, das die angegebene points enthält.
Siehe auch setPoints().
QPolygon::QPolygon(const QRect &rectangle, bool closed = false)
Konstruiert ein Polygon aus dem angegebenen rectangle. Wenn closed false ist, enthält das Polygon nur die vier Punkte des Rechtecks im Uhrzeigersinn, andernfalls wird der fünfte Punkt des Polygons auf rectangle.topLeft() gesetzt.
Beachten Sie, dass die rechte untere Ecke des Rechtecks bei (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()) liegt.
Siehe auch setPoints().
QRect QPolygon::boundingRect() const
Gibt das begrenzende Rechteck des Polygons zurück, oder QRect(0, 0, 0, 0), wenn das Polygon leer ist.
Siehe auch QList::isEmpty().
bool QPolygon::containsPoint(const QPoint &point, Qt::FillRule fillRule) const
Gibt true
zurück, wenn das angegebene point innerhalb des Polygons gemäß dem angegebenen fillRule liegt; andernfalls wird false
zurückgegeben.
QPolygon QPolygon::intersected(const QPolygon &r) const
Gibt ein Polygon zurück, das der Schnittpunkt dieses Polygons mit r ist.
Mengenoperationen auf Polygone behandeln die Polygone als Flächen. Nicht geschlossene Polygone werden als implizit geschlossen behandelt.
Siehe auch intersects().
bool QPolygon::intersects(const QPolygon &p) const
Gibt true
zurück, wenn das aktuelle Polygon an irgendeinem Punkt das angegebene Polygon p schneidet. Gibt auch true
zurück, wenn das aktuelle Polygon einen beliebigen Teil von p enthält oder von diesem enthalten wird.
Mengenoperationen auf Polygone behandeln die Polygone als Flächen. Nicht geschlossene Polygone werden als implizit geschlossen behandelt.
Siehe auch intersected().
void QPolygon::point(int index, int *x, int *y) const
Extrahiert die Koordinaten des Punktes am angegebenen index nach *x und *y (sofern es sich um gültige Zeiger handelt).
Siehe auch setPoint().
QPoint QPolygon::point(int index) const
Dies ist eine überladene Funktion.
Gibt den Punkt am angegebenen index zurück.
void QPolygon::putPoints(int index, int nPoints, int firstx, int firsty, ...)
Kopiert nPoints Punkte aus der variablen Argumentliste in dieses Polygon aus dem angegebenen index.
Die Punkte werden als eine Folge von Ganzzahlen angegeben, beginnend mit firstx, dann firsty usw. Das Polygon wird in der Größe verändert, wenn index+nPoints
seine aktuelle Größe überschreitet.
Der Beispielcode erzeugt ein Polygon mit drei Punkten (4,5), (6,7) und (8,9), indem er das Polygon von 1 auf 3 Punkte erweitert:
Der folgende Code hat das gleiche Ergebnis, aber hier überschreibt die Funktion putPoints(), anstatt zu erweitern:
QPolygon polygon(3); polygon.putPoints(0, 3, 4,5, 0,0, 8,9); polygon.putPoints(1, 1, 6,7);
Siehe auch setPoints().
void QPolygon::putPoints(int index, int nPoints, const QPolygon &fromPolygon, int fromIndex = 0)
Dies ist eine überladene Funktion.
Kopiert nPoints Punkte aus dem angegebenen fromIndex (standardmäßig 0) in fromPolygon in dieses Polygon, beginnend mit dem angegebenen index. Zum Beispiel:
QPolygon polygon1; polygon1.putPoints(0, 3, 1,2, 0,0, 5,6); // polygon1 is now the three-point polygon(1,2, 0,0, 5,6); QPolygon polygon2; polygon2.putPoints(0, 3, 4,4, 5,5, 6,6); // polygon2 is now (4,4, 5,5, 6,6); polygon1.putPoints(2, 3, polygon2); // polygon1 is now the five-point polygon(1,2, 0,0, 4,4, 5,5, 6,6);
void QPolygon::setPoint(int index, int x, int y)
Setzt den Punkt am angegebenen index auf den durch (x, y) angegebenen Punkt.
Siehe auch point(), putPoints(), und setPoints().
void QPolygon::setPoint(int index, const QPoint &point)
Dies ist eine überladene Funktion.
Setzt den Punkt am angegebenen index auf den angegebenen point.
void QPolygon::setPoints(int nPoints, const int *points)
Ändert die Größe des Polygons auf nPoints und füllt es mit den angegebenen points.
Der Beispielcode erstellt ein Polygon mit zwei Punkten (10, 20) und (30, 40):
static const int points[] = { 10, 20, 30, 40 }; QPolygon polygon; polygon.setPoints(2, points);
Siehe auch setPoint() und putPoints().
void QPolygon::setPoints(int nPoints, int firstx, int firsty, ...)
Dies ist eine überladene Funktion.
Ändert die Größe des Polygons auf nPoints und füllt es mit den in der variablen Argumentliste angegebenen Punkten. Die Punkte werden als eine Folge von Ganzzahlen angegeben, beginnend mit firstx, dann firsty usw.
Der Beispielcode erzeugt ein Polygon mit zwei Punkten (10, 20) und (30, 40):
QPolygon polygon; polygon.setPoints(2, 10, 20, 30, 40);
QPolygon QPolygon::subtracted(const QPolygon &r) const
Gibt ein Polygon zurück, das r von diesem Polygon subtrahiert wird.
Mengenoperationen an Polygonen behandeln die Polygone als Flächen. Nicht geschlossene Polygone werden als implizit geschlossen behandelt.
[noexcept]
void QPolygon::swap(QPolygon &other)
Tauscht dieses Polygon mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
[since 6.4]
QPolygonF QPolygon::toPolygonF() const
Gibt dieses Polygon als Polygon mit Fließkommagenauigkeit zurück.
Diese Funktion wurde in Qt 6.4 eingeführt.
Siehe auch QPolygonF::toPolygon().
void QPolygon::translate(int dx, int dy)
Verschiebt alle Punkte des Polygons um (dx, dy).
Siehe auch translated().
void QPolygon::translate(const QPoint &offset)
Dies ist eine überladene Funktion.
Verschiebt alle Punkte im Polygon um die angegebene offset.
Siehe auch translated().
QPolygon QPolygon::translated(int dx, int dy) const
Gibt eine Kopie des Polygons zurück, das durch (dx, dy) übersetzt wurde.
Siehe auch translate().
QPolygon QPolygon::translated(const QPoint &offset) const
Dies ist eine überladene Funktion.
Gibt eine Kopie des Polygons zurück, die durch die angegebene offset übersetzt wird.
Siehe auch translate().
QPolygon QPolygon::united(const QPolygon &r) const
Gibt ein Polygon zurück, das die Vereinigung dieses Polygons und von r ist.
Mengenoperationen auf Polygone behandeln die Polygone als Flächen und schließen das Polygon implizit.
Siehe auch intersected() und subtracted().
QVariant QPolygon::operator QVariant() const
Gibt das Polygon als QVariant
Verwandte Nicht-Mitglieder
QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon)
Schreibt den angegebenen polygon in den angegebenen stream und gibt eine Referenz auf den Stream zurück.
Siehe auch Serialisierung von Qt-Datentypen.
QDataStream &operator>>(QDataStream &stream, QPolygon &polygon)
Liest ein Polygon aus dem angegebenen stream in den angegebenen polygon 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.