Класс QLineF
Класс QLineF предоставляет двумерный вектор с плавающей точкой.
| Заголовок: | #include <QLineF> |
| qmake: | QT += core |
Типы
| перечисление | 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 |
| 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) |
Статические открытые члены
| 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() определяет тип пересечения для этой линии и заданной линии, а функция 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.
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)
Устанавливает длину линии в заданную 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/qt-5.9/qlinef.html