Spec-Zone.ru › Qt 5.13

Класс 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() для геометрических функций. Для более общих преобразований многоугольников QPolygon используйте функцию QMatrix::map().

Класс QPolygon использует явное совместное использование.

См. также QVector, QPolygonF и QLine.

Документация по функциям-членам

QPolygon::QPolygon(const QPolygon &polygon)

Создает копию данного многоугольника.

См. также setPoints().

QPolygon::QPolygon(const QRect &rectangle, bool closed = false)

Создаёт многоугольник из заданного прямоугольника. Если 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 &QPolygon::operator<<(QDataStream &stream, const QPolygon &polygon)

Записывает заданный polygon в заданный stream и возвращает ссылку на поток.

Эта функция была представлена в Qt 4.4.

См. также Сериализация типов данных Qt.

QDataStream &QPolygon::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.13/qpolygon.html

Spec-Zone.ru

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