Класс 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::QPolygon(const QRect &rectangle, bool closed = false)
Создаёт многоугольник из заданного прямоугольника rectangle. Если closed ложно, многоугольник содержит только четыре точки прямоугольника, упорядоченные по часовой стрелке, в противном случае пятая точка многоугольника устанавливается в 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/archives/qt-5.6/qpolygon.html