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

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

QPolygon polygon;
polygon << QPoint(10, 20) << QPoint(20, 30);

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:

QPolygon polygon(1);
polygon[0] = QPoint(4, 5);
polygon.putPoints(1, 2, 6,7, 8,9);

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.