Класс QPolygon
Класс QPolygon предоставляет список точек с использованием целочисленной точности. Подробнее...
| Заголовок: | #include <QPolygon> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследуется от: | QList |
Примечание: Все функции в этом классе являются перевходными.
Открытые функции
| QPolygon(const QRect &rectangle, bool closed = false) | |
| QPolygon(const QList<QPoint> &points) | |
| QPolygon() | |
| 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, const QPolygon &fromPolygon, int fromIndex = 0) |
| void | putPoints(int index, int nPoints, int firstx, int firsty, ...) |
| 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) |
| 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) |
Подробное описание
Объект QPolygon — это QList<QPoint>. Самый простой способ добавить точки в QPolygon — использовать оператор потока QList, как показано ниже:
QPolygon polygon; polygon << QPoint(10, 20) << QPoint(20, 30);
В дополнение к функциям, предоставляемым QList, QPolygon предоставляет некоторые функции, специфичные для точек.
Каждую точку в многоугольнике можно получить, передав её индекс в функцию point(). Для заполнения многоугольника QPolygon предоставляет функцию setPoint() для задания точки по заданному индексу, функцию setPoints() для задания всех точек в многоугольнике (изменяя его размер до заданного количества точек) и функцию putPoints(), которая копирует заданное количество точек в многоугольник с указанного индекса (изменяя размер многоугольника при необходимости).
QPolygon предоставляет функции boundingRect() и translate() для геометрических функций. Для более общих преобразований QPolygons используйте функцию QTransform::map().
Класс QPolygon использует неявное совместное использование.
См. также QList, QPolygonF и QLine.
Документация по функциям-членам
QPolygon::QPolygon(const QRect &rectangle, bool closed = false)
Конструирует многоугольник из заданного rectangle. Если closed ложно, многоугольник содержит только четыре точки прямоугольника в порядке обхода по часовой стрелке, в противном случае пятая точка многоугольника устанавливается в rectangle.topLeft().
Обратите внимание, что нижне-правый угол прямоугольника находится в точке (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()).
См. также setPoints().
QPolygon::QPolygon(const QList<QPoint> &points)
Конструирует многоугольник, содержащий указанные points.
См. также setPoints().
QPolygon::QPolygon()
Конструирует многоугольник без точек.
См. также QList::isEmpty().
QRect QPolygon::boundingRect() const
Возвращает прямоугольник, охватывающий многоугольник, или QRect(0, 0, 0, 0), если многоугольник пуст.
См. также QList::isEmpty().
bool QPolygon::containsPoint(const QPoint &point, Qt::FillRule fillRule) const
Возвращает true если заданная point находится внутри многоугольника в соответствии со значением fillRule; в противном случае возвращает false.
QPolygon QPolygon::intersected(const QPolygon &r) const
Возвращает многоугольник, являющийся пересечением этого многоугольника и r.
Операции над множествами многоугольников будут рассматривать многоугольники как области. Незакрытые многоугольники будут рассматриваться как неявные закрытые.
См. также intersects().
bool QPolygon::intersects(const QPolygon &p) const
Возвращает true если текущий многоугольник пересекается в любой точке с заданным многоугольником p. Также возвращает true если текущий многоугольник содержит или содержится в любой части p.
Операции над множествами многоугольников будут рассматривать многоугольники как области. Незакрытые многоугольники будут рассматриваться как неявные закрытые.
Эта функция была добавлена в Qt 5.10.
См. также intersected().
void QPolygon::point(int index, int *x, int *y) const
Извлекает координаты точки по заданному index в *x и *y (если они являются допустимыми указателями).
См. также setPoint().
QPoint QPolygon::point(int index) const
Это перегруженная функция.
Возвращает точку по заданному index.
void QPolygon::putPoints(int index, int nPoints, const QPolygon &fromPolygon, int fromIndex = 0)
Эта функция перегружена.
Копирует nPoints точек из заданного fromIndex (по умолчанию 0) в fromPolygon в этот многоугольник, начиная с указанного index. Например:
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::putPoints(int index, int nPoints, int firstx, int firsty, ...)
Копирует nPoints точек из списка аргументов в этот многоугольник, начиная с заданного index.
Точки задаются последовательностью целых чисел, начиная с firstx, затем firsty и так далее. Многоугольник изменяет размер, если index+nPoints превышает его текущий размер.
Пример кода создаёт многоугольник с тремя точками (4,5), (6,7) и (8,9), расширяя многоугольник с 1 до 3 точек:
QPolygon polygon(1); polygon[0] = QPoint(4, 5); polygon.putPoints(1, 2, 6,7, 8,9);
Следующий код имеет тот же результат, но здесь функция putPoints() перезаписывает, а не расширяет:
QPolygon polygon(3); polygon.putPoints(0, 3, 4,5, 0,0, 8,9); polygon.putPoints(1, 1, 6,7);
См. также setPoints().
void QPolygon::setPoint(int index, int x, int y)
Устанавливает точку в заданном index в точку, заданную (x, y).
См. также point(), putPoints(), и setPoints().
void QPolygon::setPoint(int index, const QPoint &point)
Эта функция перегружена.
Устанавливает точку в заданном index в заданную point.
void QPolygon::setPoints(int nPoints, const int *points)
Изменяет размер многоугольника на nPoints и заполняет его заданными points.
Пример кода создаёт многоугольник с двумя точками (10, 20) и (30, 40):
static const int points[] = { 10, 20, 30, 40 };
QPolygon polygon;
polygon.setPoints(2, points); См. также setPoint() и putPoints().
void QPolygon::setPoints(int nPoints, int firstx, int firsty, ...)
Эта функция перегружена.
Изменяет размер многоугольника на nPoints и заполняет его точками, заданными списком аргументов. Точки задаются последовательностью целых чисел, начиная с firstx, затем firsty и так далее.
Пример кода создаёт многоугольник с двумя точками (10, 20) и (30, 40):
QPolygon polygon; polygon.setPoints(2, 10, 20, 30, 40);
QPolygon QPolygon::subtracted(const QPolygon &r) const
Возвращает многоугольник, полученный вычитанием r из этого многоугольника.
Операции над многоугольниками будут рассматривать многоугольники как области. Незамкнутые многоугольники будут рассматриваться как неявно замкнутые.
void QPolygon::swap(QPolygon &other)
Меняет местами многоугольник other с этим многоугольником. Эта операция очень быстрая и никогда не завершается ошибкой.
void QPolygon::translate(int dx, int dy)
Перемещает все точки многоугольника на (dx, dy).
См. также translated().
void QPolygon::translate(const QPoint &offset)
Эта функция перегружена.
Перемещает все точки многоугольника на заданный offset.
См. также translated().
QPolygon QPolygon::translated(int dx, int dy) const
Возвращает копию многоугольника, смещённую на (dx, dy).
См. также translate().
QPolygon QPolygon::translated(const QPoint &offset) const
Эта функция перегружена.
Возвращает копию многоугольника, смещённую на заданный offset.
См. также translate().
QPolygon QPolygon::united(const QPolygon &r) const
Возвращает многоугольник, являющийся объединением этого многоугольника и r.
Операции над многоугольниками будут рассматривать многоугольники как области и неявно закроют многоугольник.
См. также intersected() и subtracted().
QVariant QPolygon::operator QVariant() const
Возвращает многоугольник как QVariant.
Связанные нечленные функции
QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon)
Записывает заданный polygon в заданный stream и возвращает ссылку на поток.
См. также Сериализация типов данных Qt.
QDataStream &operator>>(QDataStream &stream, QPolygon &polygon)
Считывает многоугольник из заданного stream в заданный polygon и возвращает ссылку на поток.
См. также Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qpolygon.html