Класс QPolygon
Класс QPolygon предоставляет вектор точек с целочисленной точностью. Подробнее...
| Заголовок: | #include <QPolygon> |
| qmake: | QT += gui |
| Наследует: | QVector |
Примечание: Все функции в этом классе являются перевходящими.
Открытые функции
| QPolygon() | |
| QPolygon(int size) | |
| QPolygon(const QVector<QPoint> &points) | |
| QPolygon(QVector<QPoint> &&v) | |
| QPolygon(const QRect &rectangle, bool closed = false) | |
| QPolygon(const QPolygon &polygon) | |
| QPolygon(QPolygon &&other) | |
| ~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, 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) |
| 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 |
| QPolygon & | operator=(QPolygon &&other) |
| QPolygon & | operator=(const QPolygon &other) |
- 96 открытых функций, унаследованных от QVector
Связанные внешние элементы
| QDataStream & | operator<<(QDataStream &stream, const QPolygon &polygon) |
| QDataStream & | operator>>(QDataStream &stream, QPolygon &polygon) |
Дополнительные унаследованные члены
- 2 статических открытых члена, унаследованные от QVector
Подробное описание
Класс QPolygon предоставляет вектор точек с целочисленной точностью.
Объект QPolygon представляет собой QVector<QPoint>. Самый простой способ добавить точки в QPolygon — использовать оператор потокового ввода QVector, как показано ниже:
QPolygon polygon;
polygon << QPoint(10, 20) << QPoint(20, 30); В дополнение к функциям, предоставляемым классом QVector, QPolygon предоставляет некоторые функции, специфичные для точек.
Каждую точку многоугольника можно получить, передав её индекс функции point(). Для заполнения многоугольника QPolygon предоставляет функцию setPoint() для задания точки по индексу, функцию setPoints() для задания всех точек многоугольника (изменяя его размер до указанного числа точек) и функцию putPoints(), которая копирует заданное количество точек в многоугольник с указанного индекса (изменяя размер многоугольника при необходимости).
QPolygon предоставляет функции boundingRect() и translate() для геометрических функций. Используйте функцию QMatrix::map() для более общих преобразований QPolygons.
Класс QPolygon использует неявное совместное использование.
См. также QVector, QPolygonF и QLine.
Документация по функциям-членам
QPolygon::QPolygon()
Создаёт многоугольник без точек.
См. также QVector::isEmpty().
QPolygon::QPolygon(int size)
Создаёт многоугольник заданного размера size. Создаёт пустой многоугольник, если size == 0.
См. также QVector::isEmpty().
QPolygon::QPolygon(const QVector<QPoint> &points)
Создаёт многоугольник, содержащий указанные points.
См. также setPoints().
QPolygon::QPolygon(QVector<QPoint> &&v)
Создаёт экземпляр QPolygon по умолчанию.
QPolygon::QPolygon(const QRect &rectangle, bool closed = false)
Создаёт многоугольник из заданного rectangle. Если closed ложно, многоугольник содержит только четыре точки прямоугольника в порядке обхода по часовой стрелке, в противном случае пятая точка многоугольника устанавливается в rectangle.topLeft().
Обратите внимание, что нижний правый угол прямоугольника расположен в координатах (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()).
См. также setPoints().
QPolygon::QPolygon(const QPolygon &polygon)
Создаёт копию данного polygon.
См. также setPoints().
QPolygon::QPolygon(QPolygon &&other)
Конструктор перемещения-копирования.
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, 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::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::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
QPolygon &QPolygon::operator=(QPolygon &&other)
Оператор перемещающего присваивания.
QPolygon &QPolygon::operator=(const QPolygon &other)
Оператор копирующего присваивания.
Связанные нечленуемые функции
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/archives/qt-5.11/qpolygon.html