Класс 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 |
| 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 |
| operator QVariant() const | |
| QPolygon & | operator=(QPolygon &&other) |
| QPolygon & | operator=(const QPolygon &other) |
- 89 открытых функций унаследовано от 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() для геометрических операций. Для более общих преобразований многоугольников QPolygon используйте функцию QMatrix::map().
Класс 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(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.
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().
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/qt-5.9/qpolygon.html