Класс QPoint
Класс QPoint определяет точку на плоскости с использованием целочисленной точности. Подробнее...
| Заголовок: | #include <QPoint> |
| qmake: | QT += core |
Примечание: Все функции в этом классе являются реентерабельными.
Публичные функции
| QPoint() | |
| QPoint(int xpos, int ypos) | |
| bool | isNull() const |
| int | manhattanLength() const |
| int & | rx() |
| int & | ry() |
| void | setX(int x) |
| void | setY(int y) |
| CGPoint | toCGPoint() const |
| int | x() const |
| int | y() const |
| QPoint & | operator*=(float factor) |
| QPoint & | operator*=(double factor) |
| QPoint & | operator*=(int factor) |
| QPoint & | operator+=(const QPoint &point) |
| QPoint & | operator-=(const QPoint &point) |
| QPoint & | operator/=(qreal divisor) |
Статические публичные члены
| int | dotProduct(const QPoint &p1, const QPoint &p2) |
Связанные внешние члены
| bool | operator!=(const QPoint &p1, const QPoint &p2) |
| const QPoint | operator*(const QPoint &point, float factor) |
| const QPoint | operator*(const QPoint &point, double factor) |
| const QPoint | operator*(const QPoint &point, int factor) |
| const QPoint | operator*(float factor, const QPoint &point) |
| const QPoint | operator*(double factor, const QPoint &point) |
| const QPoint | operator*(int factor, const QPoint &point) |
| const QPoint | operator+(const QPoint &p1, const QPoint &p2) |
| const QPoint | operator+(const QPoint &point) |
| const QPoint | operator-(const QPoint &p1, const QPoint &p2) |
| const QPoint | operator-(const QPoint &point) |
| const QPoint | operator/(const QPoint &point, qreal divisor) |
| QDataStream & | operator<<(QDataStream &stream, const QPoint &point) |
| bool | operator==(const QPoint &p1, const QPoint &p2) |
| QDataStream & | operator>>(QDataStream &stream, QPoint &point) |
Подробное описание
Класс QPoint определяет точку на плоскости с использованием целочисленной точности.
Точка задается координатами x и y, к которым можно получить доступ с помощью функций x() и y(). Функция isNull() возвращает true если обе x и y установлены в 0. Координаты можно установить (или изменить) с помощью функций setX() и setY() или, как альтернативу, функций rx() и ry(), которые возвращают ссылки на координаты (что позволяет выполнять непосредственное изменение).
Если у вас есть точка p, следующие утверждения эквивалентны:
QPoint p; p.setX(p.x() + 1); p += QPoint(1, 0); p.rx()++;
Объект QPoint также может использоваться как вектор: сложение и вычитание определены как для векторов (каждый компонент добавляется отдельно). Объект QPoint также может быть разделен или умножен на int или на qreal.
Кроме того, класс QPoint предоставляет функцию manhattanLength(), которая предоставляет недорогую аппроксимацию длины объекта QPoint, интерпретируемого как вектор. Наконец, объекты QPoint можно потоково обрабатывать и сравнивать.
Документация по функциям-членам
QPoint::QPoint()
Конструирует нулевую точку, т. е. с координатами (0, 0)
См. также isNull().
QPoint::QPoint(int xpos, int ypos)
Конструирует точку с заданными координатами (xpos, ypos).
[static] int QPoint::dotProduct(const QPoint &p1, const QPoint &p2)
QPoint p( 3, 7); QPoint q(-1, 4); int lengthSquared = QPoint::dotProduct(p, q); // lengthSquared becomes 25
Возвращает скалярное произведение p1 и p2.
Эта функция была введена в Qt 5.1.
bool QPoint::isNull() const
Возвращает true если обе координаты x и y установлены в 0, в противном случае возвращает false.
int QPoint::manhattanLength() const
Возвращает сумму абсолютных значений x() и y(), традиционно известную как «манхэттенская длина» вектора от начала координат до точки. Например:
QPoint oldPosition;
MyWidget::mouseMoveEvent(QMouseEvent *event)
{
QPoint point = event->pos() - oldPosition;
if (point.manhattanLength() > 3)
// the mouse has moved more than 3 pixels since the oldPosition
} Это полезная и быстро вычисляемая аппроксимация истинной длины:
double trueLength = std::sqrt(std::pow(x(), 2) + std::pow(y(), 2));
Традиция «манхэттенской длины» возникает из-за того, что такие расстояния применимы к путешественникам, которые могут передвигаться только по прямоугольной сетке, как, например, улицы Манхэттена.
int &QPoint::rx()
Возвращает ссылку на координату x этой точки.
Использование ссылки позволяет непосредственно манипулировать x. Например:
QPoint p(1, 2); p.rx()--; // p becomes (0, 2)
int &QPoint::ry()
Возвращает ссылку на координату y этой точки.
Использование ссылки позволяет непосредственно манипулировать y. Например:
QPoint p(1, 2); p.ry()++; // p becomes (1, 3)
void QPoint::setX(int x)
Устанавливает координату x этой точки на заданную координату x.
void QPoint::setY(int y)
Устанавливает координату y этой точки на заданную координату y.
CGPoint QPoint::toCGPoint() const
Создаёт CGPoint из QPoint.
Эта функция была добавлена в Qt 5.8.
См. также QPointF::fromCGPoint().
int QPoint::x() const
Возвращает координату x этой точки.
int QPoint::y() const
Возвращает координату y этой точки.
QPoint &QPoint::operator*=(float factor)
Умножает координаты этой точки на заданный factor и возвращает ссылку на эту точку.
Обратите внимание, что результат округляется до ближайшего целого числа, так как точки хранятся как целые числа. Используйте QPointF для обеспечения точности с плавающей запятой.
См. также operator/=().
QPoint &QPoint::operator*=(double factor)
Умножает координаты этой точки на заданный factor и возвращает ссылку на эту точку. Например:
QPoint p(-1, 4); p *= 2.5; // p becomes (-3, 10)
Обратите внимание, что результат округляется до ближайшего целого числа, так как точки хранятся как целые числа. Используйте QPointF для обеспечения точности с плавающей запятой.
См. также operator/=().
QPoint &QPoint::operator*=(int factor)
Умножает координаты этой точки на заданный factor и возвращает ссылку на эту точку.
См. также operator/=().
QPoint &QPoint::operator+=(const QPoint &point)
Добавляет заданную point к этой точке и возвращает ссылку на эту точку. Например:
QPoint p( 3, 7); QPoint q(-1, 4); p += q; // p becomes (2, 11)
См. также operator-=().
QPoint &QPoint::operator-=(const QPoint &point)
Вычитает заданную point из этой точки и возвращает ссылку на эту точку. Например:
QPoint p( 3, 7); QPoint q(-1, 4); p -= q; // p becomes (4, 3)
См. также operator+=().
QPoint &QPoint::operator/=(qreal divisor)
Это перегруженная функция.
Делит обе x и y на заданный divisor и возвращает ссылку на эту точку. Например:
QPoint p(-3, 10); p /= 2.5; // p becomes (-1, 4)
Обратите внимание, что результат округляется до ближайшего целого числа, так как точки хранятся как целые числа. Используйте QPointF для обеспечения точности с плавающей запятой.
См. также operator*=().
Связанные внеклассовые функции
bool operator!=(const QPoint &p1, const QPoint &p2)
Возвращает true если p1 и p2 не равны; в противном случае возвращает false.
const QPoint operator*(const QPoint &point, float factor)
Возвращает копию заданной point, умноженной на заданный factor.
Обратите внимание, что результат округляется до ближайшего целого числа, так как точки хранятся как целые числа. Используйте QPointF для обеспечения точности с плавающей запятой.
См. также QPoint::operator*=().
const QPoint operator*(const QPoint &point, double factor)
Возвращает копию заданной point, умноженной на заданный factor.
Обратите внимание, что результат округляется до ближайшего целого числа, так как точки хранятся как целые числа. Используйте QPointF для обеспечения точности с плавающей запятой.
См. также QPoint::operator*=().
const QPoint operator*(const QPoint &point, int factor)
Возвращает копию заданной point, умноженной на заданный factor.
См. также QPoint::operator*=().
const QPoint operator*(float factor, const QPoint &point)
Это перегруженная функция.
Возвращает копию заданной point, умноженной на заданный factor.
Обратите внимание, что результат округляется до ближайшего целого числа, так как точки хранятся как целые числа. Используйте QPointF для обеспечения точности с плавающей запятой.
См. также QPoint::operator*=().
const QPoint operator*(double factor, const QPoint &point)
Это перегруженная функция.
Возвращает копию заданной point, умноженной на заданный factor.
Обратите внимание, что результат округляется до ближайшего целого числа, так как точки хранятся как целые числа. Используйте QPointF для обеспечения точности с плавающей запятой.
См. также QPoint::operator*=().
const QPoint operator*(int factor, const QPoint &point)
Это перегруженная функция.
Возвращает копию заданной point, умноженной на заданный factor.
См. также QPoint::operator*=().
const QPoint operator+(const QPoint &p1, const QPoint &p2)
Возвращает объект QPoint, который является суммой заданных точек p1 и p2; каждый компонент складывается отдельно.
См. также QPoint::operator+=().
const QPoint operator+(const QPoint &point)
Возвращает point без изменений.
Эта функция была добавлена в Qt 5.0.
const QPoint operator-(const QPoint &p1, const QPoint &p2)
Возвращает объект QPoint, полученный вычитанием p2 из p1; каждый компонент вычитается отдельно.
См. также QPoint::operator-=().
const QPoint operator-(const QPoint &point)
Это перегруженная функция.
Возвращает объект QPoint, полученный изменением знака обоих компонентов заданной point.
Эквивалентно QPoint(0,0) - point.
const QPoint operator/(const QPoint &point, qreal divisor)
Возвращает QPoint, полученный делением обоих компонентов заданной point на заданный divisor.
Обратите внимание, что результат округляется до ближайшего целого числа, так как точки хранятся как целые числа. Используйте QPointF для обеспечения точности с плавающей запятой.
См. также QPoint::operator/=().
QDataStream &operator<<(QDataStream &stream, const QPoint &point)
Записывает заданную point в заданный stream и возвращает ссылку на поток.
См. также Сериализация типов данных Qt.
bool operator==(const QPoint &p1, const QPoint &p2)
Возвращает true если p1 и p2 равны; в противном случае возвращает false.
QDataStream &operator>>(QDataStream &stream, QPoint &point)
Считывает точку из заданного stream в заданную point и возвращает ссылку на поток.
См. также Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qpoint.html