Описание класса QPoint
|
QPoint () | |
QPoint ( int x, int y ) | |
bool | isNull () const |
int | manhattanLength () const |
int & | rx () |
int & | ry () |
void | setX ( int x ) |
void | setY ( int y ) |
int | x () const |
int | y () const |
QPoint & | operator*= ( qreal factor ) |
QPoint & | operator+= ( const QPoint & point ) |
QPoint & | operator-= ( const QPoint & point ) |
QPoint & | operator/= ( qreal divisor ) |
bool | operator!= ( const QPoint & p1, const QPoint & p2 ) |
const QPoint | operator* ( const QPoint & point, qreal factor ) |
const QPoint | operator* ( qreal factor, const QPoint & point ) |
const QPoint | operator+ ( const QPoint & p1, const QPoint & p2 ) |
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() возвращает истину если и 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 может быть выведен в поток так же просто как и сравниваться.
Смотрите также QPointF и QPolygon.
Конструирует пустую точку, т.е. с координатами (0, 0)
Смотрите также isNull().
Конструирует точку с заданными координатами (x, y).
Смотрите также setX() и setY().
Возвращает истину если обе координаты, х и у, равны 0, в противном случае возвращает ложь.
Возвращает сумму абсолютных величин x() и y(), традиционно известную как "Манхэтэнская длинна" вектора от начала координат до точки. Например:
QPoint oldPosition;
MyWidget::mouseMoveEvent(QMouseEvent *event)
{
QPoint point = event->pos() - oldPosition;
if (point.manhattanLength() > 3)
// мышь переместилась на более чем 3 пикселя по сравнению с oldPosition
}
Это полезное, и быстро вычисляемое, приближение к истинной величине:
double trueLength = sqrt(pow(x(), 2) + pow(y(), 2));
Традиция "Манхэтенской длины" возникла потому что такое расстояние применяется к путешественнику, который может путешествовать по прямоугольной сетке, подобной улицам Манхэтена.
Возвращает ссылку на координату x, этой точки.
Использование ссылки делает возможным прямую манипуляцию над координатой x. Например:
QPoint p(1, 2);
p.rx()--; // p станет (0, 2)
Возвращает ссылку на координату y, этой точки.
Использование ссылки делает возможным прямую манипуляцию над координатой y. Например:
QPoint p(1, 2);
p.ry()++; // p станет (1, 3)
Устанавливает координату x, этой точки, в заданное значение x.
Устанавливает координату y, этой точки, в заданное значение y.
Возвращает координату x этой точки.
Возвращает координату y этой точки.
Умножает координаты этой точки на factor, и возвращает ссылку на эту точку. Например:
QPoint p(-1, 4);
p *= 2.5; // p станет (-3, 10)
Заметьте, что результат округляется к ближайшему целому поскольку точки представлены целыми числами. Используйте QPointF для точности плавающей точкой.
Смотрите также operator/=().
Прибавляет заданную точку point к этой точке и возвращает ссылку на эту точку. Например:
QPoint p( 3, 7);
QPoint q(-1, 4);
p += q; // p станет (2, 11)
Смотрите также operator-=().
Вычитает заданную точку point из этой точки и возвращает ссылку на эту точку. Например:
QPoint p( 3, 7);
QPoint q(-1, 4);
p -= q; // p станет (4, 3)
Смотрите также operator+=().
Это перегруженная функция.
Делит обе координаты, x и y, на заданный делитель divisor, и возвращает ссылку на эту точку. Например:
QPoint p(-3, 10);
p /= 2.5; // p станет (-1, 4)
Заметьте, что результат округляется к ближайшему целому поскольку точки представлены целыми числами. Используйте QPointF для точности плавающей точкой.
Смотрите также operator*=().
Возвращает истину если p1 и p2 не равны; в противном случае возвращает ложь.
Возвращает копию заданной точки point умноженной на заданный factor.
Заметьте, что результат округляется к ближайшему целому поскольку точки представлены целыми числами. Используйте QPointF для точности плавающей точкой.
Смотрите также QPoint::operator*=().
Это перегруженная функция.
Возвращает копию заданной точки point умноженной на заданный factor.
Возвращает объект QPoint, который является суммой заданных точек, p1 и p2; каждый компонент добавляется отдельно.
Смотрите также QPoint::operator+=().
Возвращает объект QPoint, который получается вычитанием, p1 из p2; каждый компонент вычитается отдельно.
Смотрите также QPoint::operator-=().
Это перегруженная функция.
Возвращает объект QPoint, который получается изменением знака обоих компонентов заданной точки point.
Эквивалентно QPoint(0,0) - point.
Возвращает QPoint получаемый делением обоих компонентов заданной точки point на заданный делитель divisor.
Заметьте, что результат округляется к ближайшему целому поскольку точки представлены целыми числами. Используйте QPointF для точности плавающей точкой.
Смотрите также QPoint::operator/=().
Записывает точку point в заданный поток stream и возвращает ссылку на поток.
Смотрите также Формат операторов QDataStream.
Возвращает истину если p1 и p2 равны; в противном случае возвращает ложь.
Читает точку из потока stream в заданную точку point и возвращает ссылку на поток.
Смотрите также Формат операторов QDataStream.
Авторские права © 2010 Nokia Corporation и/или её дочерние компании | Торговые марки | Qt 4.6.4 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |