Класс QLineF
Класс QLineF предоставляет двумерный вектор с использованием точности с плавающей запятой. Подробнее...
| Заголовок: | #include <QLineF> |
| qmake: | QT += core |
Открытые типы
| enum | IntersectType { NoIntersection, UnboundedIntersection, BoundedIntersection } |
Открытые функции
| QLineF() | |
| QLineF(const QPointF &p1, const QPointF &p2) | |
| QLineF(qreal x1, qreal y1, qreal x2, qreal y2) | |
| QLineF(const QLine &line) | |
| QPointF | p1() const |
| QPointF | p2() const |
| qreal | x1() const |
| qreal | x2() const |
| qreal | y1() const |
| qreal | y2() const |
| qreal | angle() const |
| qreal | angleTo(const QLineF &line) const |
| QPointF | center() const |
| qreal | dx() const |
| qreal | dy() const |
| QLineF::IntersectType | intersect(const QLineF &line, QPointF *intersectionPoint) const |
| bool | isNull() const |
| qreal | length() const |
| QLineF | normalVector() const |
| QPointF | pointAt(qreal t) const |
| void | setP1(const QPointF &p1) |
| void | setP2(const QPointF &p2) |
| void | setAngle(qreal angle) |
| void | setLength(qreal length) |
| void | setLine(qreal x1, qreal y1, qreal x2, qreal y2) |
| void | setPoints(const QPointF &p1, const QPointF &p2) |
| QLine | toLine() const |
| void | translate(const QPointF &offset) |
| void | translate(qreal dx, qreal dy) |
| QLineF | translated(const QPointF &offset) const |
| QLineF | translated(qreal dx, qreal dy) const |
| QLineF | unitVector() const |
| bool | operator!=(const QLineF &line) const |
| bool | operator==(const QLineF &line) const |
Статические открытые члены
| QLineF | fromPolar(qreal length, qreal angle) |
Связанные внешние члены
| QDataStream & | operator<<(QDataStream &stream, const QLineF &line) |
| QDataStream & | operator>>(QDataStream &stream, QLineF &line) |
Подробное описание
Класс QLineF предоставляет двумерный вектор с использованием точности с плавающей запятой.
Объект QLineF описывает линию (или отрезок линии) конечной длины на двумерной поверхности. QLineF определяет начальную и конечную точки линии с использованием точности с плавающей запятой для координат. Используйте функцию toLine() для получения копии этой линии на основе целых чисел.
Положения начальной и конечной точек линии можно получить с помощью функций p1(), x1(), y1(), p2(), x2() и y2(). Функции dx() и dy() возвращают горизонтальную и вертикальную компоненты линии соответственно.
Длину линии можно получить с помощью функции length() и изменить с помощью функции setLength(). Аналогично, angle() и setAngle() используются соответственно для получения и изменения угла линии. Используйте функцию isNull(), чтобы определить, представляет ли QLineF действительную линию или нулевую линию.
Функция intersect() определяет IntersectType для этой линии и данной линии, а функция angleTo() возвращает угол между линиями. Кроме того, функция unitVector() возвращает линию, имеющую ту же начальную точку, что и эта линия, но длиной только 1, а функция normalVector() возвращает линию, перпендикулярную этой линии, с той же начальной точкой и длиной.
Наконец, линию можно переместить на заданный сдвиг с помощью функции translate(), и её можно пройти с помощью функции pointAt().
Ограничения
QLine ограничен минимальными и максимальными значениями для типа int. Операции над QLine, которые могут привести к значениям за пределами этого диапазона, приведут к неопределённому поведению.
См. также QLine, QPolygonF и QRectF.
Документация по типу члена
enum QLineF::IntersectType
Описывает пересечение двух линий.
| QLineF::UnboundedIntersection | QLineF::BoundedIntersection |
| Константа | Значение | Описание |
|---|---|---|
QLineF::NoIntersection |
0 |
Указывает, что линии не пересекаются; т.е. они параллельны. |
QLineF::UnboundedIntersection |
2 |
Две линии пересекаются, но не в пределах диапазона, определяемого их длинами. Это будет так, если линии не параллельны. |
intersect() также вернёт это значение, если точка пересечения находится внутри начальной и конечной точки только одной из линий.
| Константа | Значение | Описание |
|---|---|---|
QLineF::BoundedIntersection |
1 |
Две линии пересекаются друг с другом внутри начальных и конечных точек каждой линии. |
См. также intersect().
Документация по членам-функциям
QLineF::QLineF()
Создаёт линию без значений.
QLineF::QLineF(const QPointF &p1, const QPointF &p2)
Создаёт объект линии, представляющий линию между p1 и p2.
QLineF::QLineF(qreal x1, qreal y1, qreal x2, qreal y2)
Создаёт объект линии, представляющий линию между (x1, y1) и (x2, y2).
QLineF::QLineF(const QLine &line)
Создаёт объект QLineF из заданной линии line на основе целых чисел.
См. также toLine().
QPointF QLineF::p1() const
Возвращает начальную точку линии.
См. также setP1(), x1(), y1() и p2().
QPointF QLineF::p2() const
Возвращает конечную точку линии.
См. также setP2(), x2(), y2() и p1().
qreal QLineF::x1() const
Возвращает координату x начальной точки линии.
См. также p1().
qreal QLineF::x2() const
Возвращает координату x конечной точки линии.
См. также p2().
qreal QLineF::y1() const
Возвращает координату y начальной точки линии.
См. также p1().
qreal QLineF::y2() const
Возвращает координату y конечной точки линии.
См. также p2().
qreal QLineF::angle() const
Возвращает угол линии в градусах.
Возвращаемое значение будет в диапазоне от 0.0 до 360.0, но не включая 360.0. Углы измеряются против часовой стрелки от точки на оси x справа от начала координат (x > 0).
Эта функция была добавлена в Qt 4.4.
См. также setAngle().
qreal QLineF::angleTo(const QLineF &line) const
Возвращает угол (в градусах) от этой линии до заданной line, учитывая направление линий. Если линии не пересекаются в пределах своего диапазона, то в качестве начала используется точка пересечения продолженных линий (см. QLineF::UnboundedIntersection).
Возвращаемое значение представляет собой количество градусов, которое необходимо добавить к этой линии, чтобы она имела тот же угол, что и заданная line, против часовой стрелки.
Эта функция была добавлена в Qt 4.4.
См. также intersect().
QPointF QLineF::center() const
Возвращает центральную точку этой линии. Это эквивалентно 0.5 * p1() + 0.5 * p2().
Эта функция была добавлена в Qt 5.8.
qreal QLineF::dx() const
Возвращает горизонтальную составляющую вектора линии.
qreal QLineF::dy() const
Возвращает вертикальную составляющую вектора линии.
[static] QLineF QLineF::fromPolar(qreal length, qreal angle)
Возвращает QLineF с заданной длиной и углом.
Первая точка линии будет находиться в начале координат.
Положительные значения углов означают вращение против часовой стрелки, а отрицательные — по часовой стрелке. Ноль градусов соответствует положению 3 часа.
Эта функция была добавлена в Qt 4.4.
QLineF::IntersectType QLineF::intersect(const QLineF &line, QPointF *intersectionPoint) const
Возвращает значение, указывающее, пересекается ли эта линия с заданной line.
Фактическая точка пересечения извлекается в intersectionPoint (если указатель действителен). Если линии параллельны, точка пересечения не определена.
bool QLineF::isNull() const
Возвращает true, если линия не настроена с действительными начальной и конечной точками; в противном случае возвращает false.
qreal QLineF::length() const
Возвращает длину линии.
См. также setLength().
QLineF QLineF::normalVector() const
Возвращает линию, перпендикулярную этой линии, с той же начальной точкой и длиной.
См. также unitVector().
QPointF QLineF::pointAt(qreal t) const
Возвращает точку в параметризованном положении, указанном t. Функция возвращает начальную точку линии, если t = 0, и конечную точку, если t = 1.
void QLineF::setP1(const QPointF &p1)
Устанавливает начальную точку этой линии на p1.
Эта функция была добавлена в Qt 4.4.
void QLineF::setP2(const QPointF &p2)
Устанавливает конечную точку этой линии на p2.
Эта функция была добавлена в Qt 4.4.
void QLineF::setAngle(qreal angle)
Устанавливает угол линии на заданный angle (в градусах). Это изменит положение второй точки линии таким образом, что линия будет иметь заданный угол.
Положительные значения углов означают вращение против часовой стрелки, а отрицательные — по часовой стрелке. Ноль градусов соответствует положению 3 часа.
Эта функция была добавлена в Qt 4.4.
См. также angle().
void QLineF::setLength(qreal length)
Устанавливает длину линии на заданную длину. QLineF переместит конечную точку - p2() - линии, чтобы придать линии новую длину.
Если линия является нулевой, длина останется равной нулю независимо от указанной длины.
См. также length() и isNull().
void QLineF::setLine(qreal x1, qreal y1, qreal x2, qreal y2)
Устанавливает эту линию для начала в x1, y1 и конца в x2, y2.
Эта функция была добавлена в Qt 4.4.
См. также setP1(), setP2(), p1() и p2().
void QLineF::setPoints(const QPointF &p1, const QPointF &p2)
Устанавливает начальную точку этой линии на p1, а конечную точку — на p2.
Эта функция была добавлена в Qt 4.4.
См. также setP1(), setP2(), p1() и p2().
QLine QLineF::toLine() const
Возвращает копию этой линии на основе целых чисел.
Обратите внимание, что начальная и конечная точки возвращаемой линии округляются до ближайшего целого числа.
END_OF_DOCUMENT_MARKERСм. также QLineF().
void QLineF::translate(const QPointF &offset)
Перемещает эту линию на заданный offset.
void QLineF::translate(qreal dx, qreal dy)
Это перегруженный метод.
Перемещает эту линию на расстояние, указанное dx и dy.
QLineF QLineF::translated(const QPointF &offset) const
Возвращает эту линию, перемещённую на заданный offset.
Этот метод был добавлен в Qt 4.4.
QLineF QLineF::translated(qreal dx, qreal dy) const
Это перегруженный метод.
Возвращает эту линию, перемещённую на расстояние, указанное dx и dy.
Этот метод был добавлен в Qt 4.4.
QLineF QLineF::unitVector() const
Возвращает единичный вектор для этой линии, т.е. линию, начинающуюся в той же точке, что и эта линия, с длиной 1.0.
См. также normalVector().
bool QLineF::operator!=(const QLineF &line) const
Возвращает true если заданная line не такая же, как this.
Одна линия отличается от другой, если их начальные или конечные точки отличаются, или внутренний порядок точек отличается.
bool QLineF::operator==(const QLineF &line) const
Возвращает true если заданная line такая же, как эта линия.
Линии идентичны, если начальные и конечные точки идентичны, и внутренний порядок точек такой же.
Связанные внешние члены
QDataStream &operator<<(QDataStream &stream, const QLineF &line)
Записывает заданную line в заданный stream и возвращает ссылку на поток.
См. также Сериализация типов данных Qt.
QDataStream &operator>>(QDataStream &stream, QLineF &line)
Читает линию из заданного stream в заданную line и возвращает ссылку на поток.
См. также Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qlinef.html