Класс QTransform
Класс QTransform задаёт 2D преобразования системы координат. Подробнее...
| Заголовок: | #include <QTransform> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
Открытые типы
| перечисление | TransformationType { TxNone, TxTranslate, TxScale, TxRotate, TxShear, TxProject } |
Открытые функции
| QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy) | |
| QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33) | |
| QTransform() | |
| QTransform & | operator=(const QTransform &matrix) |
| qreal | m11() const |
| qreal | m12() const |
| qreal | m13() const |
| qreal | m21() const |
| qreal | m22() const |
| qreal | m23() const |
| qreal | m31() const |
| qreal | m32() const |
| qreal | m33() const |
| QTransform | adjoint() const |
| qreal | определитель() const |
| qreal | dx() const |
| qreal | dy() const |
| QTransform | обращённая(bool *invertible = nullptr) const |
| bool | является_аффинной() const |
| bool | является_единичной() const |
| bool | обратима() const |
| bool | вращение() const |
| bool | масштабирование() const |
| bool | перемещение() const |
| void | преобразовать(qreal x, qreal y, qreal *tx, qreal *ty) const |
| QPoint | преобразовать(const QPoint &point) const |
| QPointF | преобразовать(const QPointF &p) const |
| QLine | преобразовать(const QLine &l) const |
| QLineF | преобразовать(const QLineF &line) const |
| QPolygonF | преобразовать(const QPolygonF &polygon) const |
| QPolygon | преобразовать(const QPolygon &polygon) const |
| QRegion | преобразовать(const QRegion ®ion) const |
| QPainterPath | преобразовать(const QPainterPath &path) const |
| void | преобразовать(int x, int y, int *tx, int *ty) const |
| QRectF | преобразоватьПрямоугольник(const QRectF &rectangle) const |
| QRect | преобразоватьПрямоугольник(const QRect &rectangle) const |
| QPolygon | преобразоватьВМногоугольник(const QRect &rectangle) const |
| void | сбросить() |
| QTransform & | повернуть(qreal angle, Qt::Axis axis = Qt::ZAxis) |
| QTransform & | повернутьРадиан(qreal angle, Qt::Axis axis = Qt::ZAxis) |
| QTransform & | масштабировать(qreal sx, qreal sy) |
| void | установитьМатрицу(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33) |
| QTransform & | смещение(qreal sh, qreal sv) |
| QTransform & | переместить(qreal dx, qreal dy) |
| QTransform | транспонировать() const |
| QTransform::TransformationType | тип() const |
| QVariant | operator QVariant() const |
| bool | !=(const QTransform &matrix) const |
| QTransform | operator*(const QTransform &matrix) const |
| QTransform & | operator*=(const QTransform &matrix) |
| QTransform & | operator*=(qreal scalar) |
| QTransform & | operator+=(qreal scalar) |
| QTransform & | operator-=(qreal scalar) |
| QTransform & | operator/=(qreal scalar) |
| bool | operator==(const QTransform &matrix) const |
Статические открытые члены
| QTransform | fromScale(qreal sx, qreal sy) |
| QTransform | fromTranslate(qreal dx, qreal dy) |
| bool | quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans) |
| bool | quadToSquare(const QPolygonF &quad, QTransform &trans) |
| bool | squareToQuad(const QPolygonF &quad, QTransform &trans) |
Связанные нечлены
| bool | qFuzzyCompare(const QTransform &t1, const QTransform &t2) |
| size_t | qHash(const QTransform &key, size_t seed = 0) |
| QPoint | operator*(const QPoint &point, const QTransform &matrix) |
| QPointF | operator*(const QPointF &point, const QTransform &matrix) |
| QLineF | operator*(const QLineF &line, const QTransform &matrix) |
| QLine | operator*(const QLine &line, const QTransform &matrix) |
| QPolygonF | operator*(const QPolygonF &polygon, const QTransform &matrix) |
| QPolygon | operator*(const QPolygon &polygon, const QTransform &matrix) |
| QRegion | operator*(const QRegion ®ion, const QTransform &matrix) |
| QPainterPath | operator*(const QPainterPath &path, const QTransform &matrix) |
| QDataStream & | operator<<(QDataStream &stream, const QTransform &matrix) |
| QDataStream & | operator>>(QDataStream &stream, QTransform &matrix) |
Подробное описание
Преобразование задает способ трансляции, масштабирования, наклона, поворота или проекции системы координат и обычно используется при отрисовке графики.
Объект QTransform можно создать, используя функции setMatrix(), scale(), rotate(), translate() и shear(). В качестве альтернативы можно применить основные операции с матрицей. Матрица также может быть определена при создании, и она может быть сброшена до единичной матрицы (по умолчанию) с помощью функции reset().
Класс QTransform поддерживает отображение графических примитивов: заданную точку, линию, многоугольник, область или путь painter можно отобразить в системе координат, определенной матрицей this, используя функцию map(). В случае прямоугольника его координаты могут быть преобразованы с помощью функции mapRect(). Прямоугольник также может быть преобразован в многоугольник (отображенный в системе координат, определенной матрицей this), используя функцию mapToPolygon().
QTransform предоставляет функцию isIdentity(), которая возвращает true если матрица является единичной матрицей, и функцию isInvertible(), которая возвращает true если матрица невырожденная (т. е. AB = BA = I). Функция inverted() возвращает инвертированную копию матрицы this, если она обратима (в противном случае возвращает единичную матрицу), а adjoint() возвращает классический адъюнкт матрицы. Кроме того, QTransform предоставляет функцию determinant(), которая возвращает определитель матрицы.
Наконец, класс QTransform поддерживает умножение, сложение и вычитание матриц, а объекты класса также могут быть переданы и сравнены.
Отрисовка графики
При отрисовке графики матрица определяет преобразования, но фактическое преобразование выполняется процедурами рисования в QPainter.
По умолчанию QPainter работает в собственной системе координат связанного устройства. Стандартная система координат QPaintDevice имеет свой источник в верхнем левом углу. Значения x увеличиваются вправо; значения y увеличиваются вниз. Более подробное описание см. в документации по системе координат.
QPainter имеет функции для трансляции, масштабирования, наклона и поворота системы координат без использования QTransform. Например:
void SimpleTransformation::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(QPen(Qt::blue, 1, Qt::DashLine));
painter.drawRect(0, 0, 100, 100);
painter.rotate(45);
painter.setFont(QFont("Helvetica", 24));
painter.setPen(QPen(Qt::black, 1));
painter.drawText(20, 10, "QTransform");
} |
Хотя эти функции очень удобны, может быть эффективнее создать QTransform и вызвать QPainter::setTransform(), если вы хотите выполнить более одной операции преобразования. Например:
void CombinedTransformation::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(QPen(Qt::blue, 1, Qt::DashLine));
painter.drawRect(0, 0, 100, 100);
QTransform transform;
transform.translate(50, 50);
transform.rotate(45);
transform.scale(0.5, 1.0);
painter.setTransform(transform);
painter.setFont(QFont("Helvetica", 24));
painter.setPen(QPen(Qt::black, 1));
painter.drawText(20, 10, "QTransform");
} |
Основные операции с матрицей
Объект QTransform содержит 3x3 матрицу. Элементы m31 (dx) и m32 (dy) задают горизонтальный и вертикальный сдвиг. Элементы m11 и m22 задают горизонтальное и вертикальное масштабирование. Элементы m21 и m12 задают горизонтальное и вертикальное наклонение. И, наконец, элементы m13 и m23 задают горизонтальную и вертикальную проекцию, при этом m33 является дополнительным фактором проекции.
QTransform преобразует точку на плоскости в другую точку, используя следующие формулы:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
} Точка (x, y) — исходная точка, а (x', y') — преобразованная точка. (x', y') можно преобразовать обратно в (x, y), выполнив ту же операцию с матрицей inverted().
Различные элементы матрицы могут быть установлены при создании матрицы или с помощью функции setMatrix() позже. Их также можно изменить с помощью удобных функций translate(), rotate(), scale() и shear(). Текущие значения могут быть получены с помощью функций m11(), m12(), m13(), m21(), m22(), m23(), m31(), m32(), m33(), dx() и dy().
Трансляция — это самое простое преобразование. Установка dx и dy переместит систему координат на dx единицы по оси X и на dy единицы по оси Y. Масштабирование можно выполнить, установив m11 и m22. Например, установка m11 в 2 и m22 в 1,5 удвоит высоту и увеличит ширину на 50%. Единичная матрица имеет m11, m22, и m33 установленные в 1 (все остальные установлены в 0), отображая точку на саму себя. Наклон контролируется m12 и m21. Установка этих элементов на значения, отличные от нуля, закрутит систему координат. Поворот достигается установкой факторов наклона и факторов масштабирования. Преобразование перспективы достигается установкой обоих факторов проекции и факторов масштабирования.
Комбинирование преобразований
Вот пример комбинированных преобразований, использующий основные операции с матрицами:
void BasicOperations::paintEvent(QPaintEvent *)
{
const double a = qDegreesToRadians(45.0);
double sina = sin(a);
double cosa = cos(a);
QTransform scale(0.5, 0, 0, 1.0, 0, 0);
QTransform rotate(cosa, sina, -sina, cosa, 0, 0);
QTransform translate(1, 0, 0, 1, 50.0, 50.0);
QTransform transform = scale * rotate * translate;
QPainter painter(this);
painter.setPen(QPen(Qt::blue, 1, Qt::DashLine));
painter.drawRect(0, 0, 100, 100);
painter.setTransform(transform);
painter.setFont(QFont("Helvetica", 24));
painter.setPen(QPen(Qt::black, 1));
painter.drawText(20, 10, "QTransform");
} |
Комбинированное преобразование сначала масштабирует каждый операнд, затем поворачивает его и, наконец, перемещает его в том порядке, в котором записывается произведение его множителей. Это означает, что точка, к которой применяются преобразования, неявным образом умножается слева на преобразование справа.
Отношение к матричной записи
Матричная запись в QTransform — это транспонирование общепринятой конвенции, которая представляет преобразования и точки в виде матриц и векторов. В этой конвенции матрица умножается слева на столбец-вектор справа. Другими словами, когда к точке применяются несколько преобразований, правейшая матрица действует непосредственно на вектор в первую очередь. Затем следующая матрица слева действует на результат первого преобразования — и так далее. В результате эта конвенция умножает матрицы, составляющие составное преобразование, в обратном порядке по сравнению с QTransform, как вы можете увидеть в Объединение преобразований. Транспонирование матриц и объединение их справа от строкового вектора, представляющего точку, позволяет матрицам преобразований в их произведении появляться в том порядке, в котором мы представляем преобразования, применяемые к точке.
См. также QPainter, Система координат, Пример аффинных преобразований и Пример преобразований.
Документация по типам членов
перечисление QTransform::TransformationType
| Константа | Значение |
|---|---|
QTransform::TxNone |
0x00 |
QTransform::TxTranslate |
0x01 |
QTransform::TxScale |
0x02 |
QTransform::TxRotate |
0x04 |
QTransform::TxShear |
0x08 |
QTransform::TxProject |
0x10 |
Документация по функциям-членам
QTransform::QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy)
Конструирует матрицу с элементами m11, m12, m21, m22, dx и dy.
См. также setMatrix().
QTransform::QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
Конструирует матрицу с элементами m11, m12, m13, m21, m22, m23, m31, m32, m33.
См. также setMatrix().
QTransform::QTransform()
Конструирует единичную матрицу.
Все элементы установлены в ноль, за исключением m11 и m22 (указывающих масштаб) и m33, которые установлены в 1.
См. также reset().
QTransform &QTransform::operator=(const QTransform &matrix)
Присваивает значения данной matrix этой матрице.
qreal QTransform::m11() const
Возвращает коэффициент горизонтального масштабирования.
См. также scale() и Основные операции с матрицами.
qreal QTransform::m12() const
Возвращает коэффициент вертикального сдвига.
См. также shear() и Основные операции с матрицами.
qreal QTransform::m13() const
Возвращает коэффициент горизонтальной проекции.
См. также translate() и Основные операции с матрицами.
qreal QTransform::m21() const
Возвращает коэффициент горизонтального сдвига.
См. также shear() и Основные операции с матрицами.
qreal QTransform::m22() const
Возвращает коэффициент вертикального масштабирования.
См. также scale() и Основные операции с матрицами.
qreal QTransform::m23() const
Возвращает коэффициент вертикальной проекции.
См. также translate() и Основные операции с матрицами.
qreal QTransform::m31() const
Возвращает коэффициент горизонтального сдвига.
См. также dx(), translate() и Основные операции с матрицами.
qreal QTransform::m32() const
Возвращает коэффициент вертикального сдвига.
См. также dy(), translate() и Основные операции с матрицами.
qreal QTransform::m33() const
Возвращает коэффициент деления.
См. также translate() и Основные операции с матрицами.
QTransform QTransform::adjoint() const
Возвращает присоединённую матрицу.
qreal QTransform::determinant() const
Возвращает определитель матрицы.
qreal QTransform::dx() const
Возвращает коэффициент горизонтального сдвига.
См. также m31(), translate() и Основные операции с матрицами.
qreal QTransform::dy() const
Возвращает коэффициент вертикального сдвига.
См. также translate() и Основные операции с матрицами.
[static] QTransform QTransform::fromScale(qreal sx, qreal sy)
Создаёт матрицу, соответствующую масштабированию по горизонтали на sx и по вертикали на sy. Это то же самое, что QTransform().scale(sx, sy), но немного быстрее.
[static] QTransform QTransform::fromTranslate(qreal dx, qreal dy)
Создаёт матрицу, соответствующую сдвигу на dx по оси x и на dy по оси y. Это то же самое, что QTransform().translate(dx, dy), но немного быстрее.
QTransform QTransform::inverted(bool *invertible = nullptr) const
Возвращает инвертированную копию этой матрицы.
Если матрица является вырожденной (не обратимой), возвращается единичная матрица. Если invertible допустим (т.е. не 0), его значение устанавливается в true, если матрица обратима, в противном случае — в false.
См. также isInvertible().
bool QTransform::isAffine() const
Возвращает true, если матрица представляет аффинное преобразование, в противном случае возвращает false.
bool QTransform::isIdentity() const
Возвращает true, если матрица является единичной матрицей, в противном случае возвращает false.
См. также reset().
bool QTransform::isInvertible() const
Возвращает true, если матрица обратима, в противном случае возвращает false.
См. также inverted().
bool QTransform::isRotating() const
Возвращает true, если матрица представляет какой-либо вид вращательного преобразования, в противном случае возвращает false.
Примечание: вращательное преобразование на 180 градусов и/или 360 градусов рассматривается как масштабирующее преобразование.
См. также reset().
bool QTransform::isScaling() const
Возвращает true если матрица представляет масштабирование, в противном случае возвращает false.
См. также reset().
bool QTransform::isTranslating() const
Возвращает true если матрица представляет сдвиг, в противном случае возвращает false.
См. также reset().
void QTransform::map(qreal x, qreal y, qreal *tx, qreal *ty) const
Преобразует заданные координаты x и y в систему координат, определённую этой матрицей. Результаты записываются в *tx и *ty соответственно.
Координаты преобразуются по следующим формулам:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
} Точка (x, y) — исходная точка, а (x', y') — преобразованная точка.
См. также Основные операции с матрицами.
QPoint QTransform::map(const QPoint &point) const
Это перегруженный метод.
Создаёт и возвращает объект QPoint, являющийся копией заданной точки point, преобразованной в систему координат, определённую этой матрицей. Обратите внимание, что преобразованные координаты округляются до ближайшего целого числа.
QPointF QTransform::map(const QPointF &p) const
Это перегруженный метод.
Создаёт и возвращает объект QPointF, являющийся копией заданной точки p, преобразованной в систему координат, определённую этой матрицей.
QLine QTransform::map(const QLine &l) const
Это перегруженный метод.
Создаёт и возвращает объект QLineF, являющийся копией заданной прямой l, преобразованной в систему координат, определённую этой матрицей.
QLineF QTransform::map(const QLineF &line) const
Это перегруженный метод.
Создаёт и возвращает объект QLine, являющийся копией заданной прямой line, преобразованной в систему координат, определённую этой матрицей. Обратите внимание, что преобразованные координаты округляются до ближайшего целого числа.
QPolygonF QTransform::map(const QPolygonF &polygon) const
Это перегруженный метод.
Создаёт и возвращает объект QPolygonF, являющийся копией заданного многоугольника polygon, преобразованного в систему координат, определённую этой матрицей.
QPolygon QTransform::map(const QPolygon &polygon) const
Это перегруженный метод.
Создаёт и возвращает объект QPolygon, являющийся копией заданного многоугольника polygon, преобразованного в систему координат, определённую этой матрицей. Обратите внимание, что преобразованные координаты округляются до ближайшего целого числа.
QRegion QTransform::map(const QRegion ®ion) const
Это перегруженный метод.
Создаёт и возвращает объект QRegion, являющийся копией заданной области region, преобразованной в систему координат, определённую этой матрицей.
Вызов этого метода может быть достаточно дорогим, если используются повороты или сдвиги.
QPainterPath QTransform::map(const QPainterPath &path) const
Это перегруженный метод.
Создаёт и возвращает объект QPainterPath, являющийся копией заданной кривой path, преобразованной в систему координат, определённую этой матрицей.
void QTransform::map(int x, int y, int *tx, int *ty) const
Это перегруженный метод.
Преобразует заданные координаты x и y в систему координат, определённую этой матрицей. Результаты записываются в *tx и *ty соответственно. Обратите внимание, что преобразованные координаты округляются до ближайшего целого числа.
QRectF QTransform::mapRect(const QRectF &rectangle) const
Создаёт и возвращает объект QRectF, являющийся копией заданного прямоугольника rectangle, преобразованного в систему координат, определённую этой матрицей.
Координаты прямоугольника преобразуются по следующим формулам:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
} Если заданы поворот или сдвиг, эта функция возвращает охватывающий прямоугольник. Чтобы получить точную область, в которую отображается заданный прямоугольник, используйте функцию mapToPolygon().
См. также mapToPolygon() и Основные операции с матрицами.
QRect QTransform::mapRect(const QRect &rectangle) const
Это перегруженный метод.
Создаёт и возвращает объект QRect, являющийся копией заданного прямоугольника rectangle, преобразованного в систему координат, определённую этой матрицей. Обратите внимание, что преобразованные координаты округляются до ближайшего целого числа.
QPolygon QTransform::mapToPolygon(const QRect &rectangle) const
Создаёт и возвращает представление заданного прямоугольника rectangle в виде многоугольника QPolygon, преобразованного в систему координат, определённую этой матрицей.
Координаты прямоугольника преобразуются по следующим формулам:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
} Многоугольники и прямоугольники ведут себя немного по-разному при преобразовании (из-за округления целых чисел), поэтому matrix.map(QPolygon(rectangle)) не всегда совпадает с matrix.mapToPolygon(rectangle).
См. также mapRect() и Основные операции с матрицами.
[static] bool QTransform::quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans)
Создаёт матрицу преобразования trans, которая отображает четырёхугольник one на четырёхугольник two. Возвращает true если преобразование возможно; в противном случае возвращает false.
Это вспомогательный метод, объединяющий методы quadToSquare() и squareToQuad(). Он позволяет преобразовывать заданный четырёхугольник в любой другой четырёхугольник.
См. также squareToQuad() и quadToSquare().
[static] bool QTransform::quadToSquare(const QPolygonF &quad, QTransform &trans)
Создаёт матрицу преобразования trans, которая отображает четырёхугольник quad на единичный квадрат. Возвращает true если преобразование построено, в противном случае — false.
См. также squareToQuad() и quadToQuad().
void QTransform::reset()
Сбрасывает матрицу в единичную матрицу, т. е. все элементы устанавливаются в ноль, за исключением m11 и m22 (указывающие масштаб), и m33, которые устанавливаются в 1.
См. также QTransform(), isIdentity() и Основные операции с матрицами.
QTransform &QTransform::rotate(qreal angle, Qt::Axis axis = Qt::ZAxis)
Поворачивает систему координат против часовой стрелки на заданный угол angle относительно указанной оси axis и возвращает ссылку на матрицу.
Обратите внимание, что если вы применяете QTransform к точке, определённой в координатах виджета, направление поворота будет по часовой стрелке, так как ось y направлена вниз.
Угол задаётся в градусах.
См. также setMatrix().
QTransform &QTransform::rotateRadians(qreal angle, Qt::Axis axis = Qt::ZAxis)
Поворачивает систему координат против часовой стрелки на заданный угол angle относительно указанной оси axis и возвращает ссылку на матрицу.
Обратите внимание, что если вы применяете QTransform к точке, определённой в координатах виджета, направление поворота будет по часовой стрелке, так как ось y направлена вниз.
Угол задаётся в радианах.
См. также setMatrix().
QTransform &QTransform::scale(qreal sx, qreal sy)
Масштабирует систему координат по оси x на sx и по оси y на sy, возвращая ссылку на матрицу.
См. также setMatrix().
void QTransform::setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
Устанавливает элементы матрицы в указанные значения, m11, m12, m13 m21, m22, m23 m31, m32 и m33. Обратите внимание, что эта функция заменяет предыдущие значения. QTransform предоставляет удобные функции translate(), rotate(), scale() и shear() для манипулирования различными элементами матрицы на основе текущей системы координат.
См. также QTransform().
QTransform &QTransform::shear(qreal sh, qreal sv)
Сдвигает систему координат на sh по горизонтали и sv по вертикали и возвращает ссылку на матрицу.
См. также setMatrix().
[static] bool QTransform::squareToQuad(const QPolygonF &quad, QTransform &trans)
Создаёт матрицу преобразования, trans, которая отображает единичный квадрат на четырёхугольник, quad. Возвращает true если преобразование построено или false, если такое преобразование не существует.
См. также quadToSquare() и quadToQuad().
QTransform &QTransform::translate(qreal dx, qreal dy)
Перемещает систему координат на dx вдоль оси x и dy вдоль оси y и возвращает ссылку на матрицу.
См. также setMatrix().
QTransform QTransform::transposed() const
Возвращает транспонированную матрицу.
QTransform::TransformationType QTransform::type() const
Возвращает тип преобразования этой матрицы.
Тип преобразования — это максимальное значение перечисления, охватывающее все преобразования матрицы. Например, если матрица и масштабирует, и сдвигает, тип будет TxShear, потому что TxShear имеет более высокое значение перечисления, чем TxScale.
Знание типа преобразования матрицы полезно для оптимизации: вы часто можете обрабатывать определённые типы более эффективно, чем обрабатывать общий случай.
QVariant QTransform::operator QVariant() const
Возвращает преобразование в виде QVariant.
bool QTransform::operator!=(const QTransform &matrix) const
Возвращает true если эта матрица не равна заданной matrix, в противном случае возвращает false.
QTransform QTransform::operator*(const QTransform &matrix) const
Возвращает результат умножения этой матрицы на заданную matrix.
Обратите внимание, что умножение матриц не коммутативно, т.е. a*b != b*a.
QTransform &QTransform::operator*=(const QTransform &matrix)
Это перегруженная функция.
Возвращает результат умножения этой матрицы на заданную matrix.
QTransform &QTransform::operator*=(qreal scalar)
Это перегруженная функция.
Возвращает результат поэлементного умножения этой матрицы на заданный scalar.
QTransform &QTransform::operator+=(qreal scalar)
Это перегруженная функция.
Возвращает матрицу, полученную путем добавления заданного scalar к каждому элементу этой матрицы.
QTransform &QTransform::operator-=(qreal scalar)
Это перегруженная функция.
Возвращает матрицу, полученную путем вычитания заданного scalar из каждого элемента этой матрицы.
QTransform &QTransform::operator/=(qreal scalar)
Это перегруженная функция.
Возвращает результат поэлементного деления этой матрицы на заданный scalar.
bool QTransform::operator==(const QTransform &matrix) const
Возвращает true если эта матрица равна заданной matrix, в противном случае возвращает false.
Связанные нечлены
bool qFuzzyCompare(const QTransform &t1, const QTransform &t2)
Возвращает true если t1 и t2 равны, учитывая небольшую погрешность при сравнении чисел с плавающей точкой; в противном случае возвращает false.
[since 5.6] size_t qHash(const QTransform &key, size_t seed = 0)
Возвращает значение хэша для key, используя seed для инициализации расчёта.
Эта функция была добавлена в Qt 5.6.
QPoint operator*(const QPoint &point, const QTransform &matrix)
Это то же самое, что и matrix.map(point).
См. также QTransform::map().
QPointF operator*(const QPointF &point, const QTransform &matrix)
Аналогично matrix.map(point).
См. также QTransform::map().
QLineF operator*(const QLineF &line, const QTransform &matrix)
Это эквивалентно matrix.map(line).
См. также QTransform::map().
QLine operator*(const QLine &line, const QTransform &matrix)
Это то же самое, что и matrix.map(line).
См. также QTransform::map().
QPolygonF operator*(const QPolygonF &polygon, const QTransform &matrix)
Это эквивалентно matrix.map(polygon).
См. также QTransform::map().
QPolygon operator*(const QPolygon &polygon, const QTransform &matrix)
Это то же самое, что и matrix.map(polygon).
См. также QTransform::map().
QRegion operator*(const QRegion ®ion, const QTransform &matrix)
Это эквивалентно matrix.map(region).
См. также QTransform::map().
QPainterPath operator*(const QPainterPath &path, const QTransform &matrix)
Это то же самое, что и matrix.map(path).
См. также QTransform::map().
QDataStream &operator<<(QDataStream &stream, const QTransform &matrix)
Записывает заданную matrix в заданный stream и возвращает ссылку на поток.
См. также Сериализация типов данных Qt.
QDataStream &operator>>(QDataStream &stream, QTransform &matrix)
Считывает заданную matrix из заданного stream и возвращает ссылку на поток.
См. также Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtransform.html