Класс QPolygon
Класс QPolygon предоставляет вектор точек с целочисленной точностью. Подробнее...
| Заголовок: | #include <QPolygon> |
| qmake: | QT += gui |
| Наследует: | QVector |
Примечание: Все функции в этом классе являются реентерабельными.
Публичные функции
| QPolygon(const QPolygon &polygon) | |
| QPolygon(const QRect &rectangle, bool closed = false) | |
| QPolygon(const QVector<QPoint> &points) | |
| QPolygon(int size) | |
| QPolygon() | |
| ~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 представляет собой QVector<QPoint>. Самый простой способ добавить точки в QPolygon — использовать оператор потокового ввода/вывода QVector, как показано ниже:
QPolygon polygon;
polygon << QPoint(10, 20) << QPoint(20, 30); Помимо функций, предоставляемых классом QVector, QPolygon предоставляет некоторые функции, специфичные для точек.
Каждую точку в многоугольнике можно получить, передав её индекс функции point(). Для заполнения многоугольника QPolygon предоставляет функцию setPoint() для установки точки в заданном индексе, функцию setPoints() для установки всех точек в многоугольнике (изменяя его размер до заданного количества точек) и функцию putPoints(), которая копирует заданное количество точек в многоугольник с указанного индекса (изменяя размер многоугольника при необходимости).
QPolygon предоставляет функции boundingRect() и translate() для геометрических функций. Для более общих преобразований QPolygons используйте функцию QTransform::map().
Класс QPolygon использует неявное совместное использование.
См. также QVector, QPolygonF и QLine.
Документация функций-членов
QPolygon::QPolygon(const QPolygon &polygon)
Создаёт копию заданного polygon.
См. также setPoints().
QPolygon::QPolygon(const QRect &rectangle, bool closed = false)
Создаёт многоугольник из заданного rectangle. Если closed равно false, многоугольник содержит только четыре точки прямоугольника, упорядоченные по часовой стрелке, в противном случае пятая точка многоугольника устанавливается в rectangle.topLeft().
Обратите внимание, что нижний правый угол прямоугольника находится в координатах (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()).
См. также setPoints().
QPolygon::QPolygon(const QVector<QPoint> &points)
Создаёт многоугольник, содержащий указанные points.
См. также setPoints().
QPolygon::QPolygon(int size)
Создаёт многоугольник заданного размера size. Создаёт пустой многоугольник, если size == 0.
См. также QVector::isEmpty().
QPolygon::QPolygon()
Создаёт многоугольник без точек.
См. также QVector::isEmpty().
QPolygon::~QPolygon()
Удаляет многоугольник.
QRect QPolygon::boundingRect() const
Возвращает прямоугольник, охватывающий многоугольник, или QRect(0, 0, 0, 0), если многоугольник пуст.
См. также QVector::isEmpty().
bool QPolygon::containsPoint(const QPoint &point, Qt::FillRule fillRule) const
Возвращает true , если заданная point находится внутри многоугольника в соответствии с заданным fillRule; в противном случае возвращает false.
Эта функция была введена в Qt 4.3.
QPolygon QPolygon::intersected(const QPolygon &r) const
Возвращает многоугольник, являющийся пересечением этого многоугольника и r.
Операции над многоугольниками будут рассматривать многоугольники как области. Незамкнутые многоугольники будут рассматриваться как неявно замкнутые.
Эта функция была введена в Qt 4.3.
См. также 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 из этого многоугольника.
Операции над многоугольниками будут рассматривать многоугольники как области. Незамкнутые многоугольники будут рассматриваться как неявные замкнутые.
Эта функция была добавлена в Qt 4.3.
void QPolygon::swap(QPolygon &other)
Меняет местами многоугольник other и этот многоугольник. Эта операция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 4.8.
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).
Эта функция была добавлена в Qt 4.6.
См. также translate().
QPolygon QPolygon::translated(const QPoint &offset) const
Это перегруженная функция.
Возвращает копию многоугольника, смещенного на заданный offset.
Эта функция была добавлена в Qt 4.6.
См. также translate().
QPolygon QPolygon::united(const QPolygon &r) const
Возвращает многоугольник, являющийся объединением этого многоугольника и r.
Операции над многоугольниками будут рассматривать многоугольники как области, и неявно закроют многоугольник.
Эта функция была добавлена в Qt 4.3.
См. также intersected() и subtracted().
QVariant QPolygon::operator QVariant() const
Возвращает многоугольник как QVariant
Связанные внешние функции
QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon)
Записывает заданный polygon в заданный stream и возвращает ссылку на поток.
Эта функция была добавлена в Qt 4.4.
См. также Сериализация типов данных Qt.
QDataStream &operator>>(QDataStream &stream, QPolygon &polygon)
Считывает многоугольник из заданного stream в заданный polygon и возвращает ссылку на поток.
Эта функция была добавлена в Qt 4.4.
См. также Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qpolygon.html