Spec-Zone.ru › Qt

Класс 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 равно false, многоугольник содержит только четыре точки прямоугольника в порядке обхода по часовой стрелке, в противном случае пятая точка многоугольника устанавливается равной 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.2/qpolygon.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API