QTransform Class
QTransform 클래스는 좌표계의 2차원 변환을 정의합니다. 더 보기...
| 헤더: | #include <QTransform> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- 상속된 멤버를 포함한 모든 멤버 목록
- QTransform은 페인팅 클래스의 일부입니다.
공개 유형
| enum | TransformationType { TxNone, TxTranslate, TxScale, TxRotate, TxShear, TxProject } |
공개 함수
| QTransform() | |
| 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(const QTransform &other) | |
| QTransform(QTransform &&other) | |
| 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 | determinant() const |
| qreal | dx() const |
| qreal | dy() const |
| QTransform | inverted(bool *invertible = nullptr) const |
| bool | isAffine() const |
| bool | isIdentity() const |
| bool | isInvertible() const |
| bool | isRotating() const |
| bool | isScaling() const |
| bool | isTranslating() const |
| void | map(qreal x, qreal y, qreal *tx, qreal *ty) const |
| QLine | map(const QLine &l) const |
| QLineF | map(const QLineF &line) const |
| QPainterPath | map(const QPainterPath &path) const |
| QPoint | map(const QPoint &point) const |
| QPointF | map(const QPointF &p) const |
| QPolygon | map(const QPolygon &polygon) const |
| QPolygonF | map(const QPolygonF &polygon) const |
| QRegion | map(const QRegion ®ion) const |
| void | map(int x, int y, int *tx, int *ty) const |
| QRectF | mapRect(const QRectF &rectangle) const |
| QRect | mapRect(const QRect &rectangle) const |
| QPolygon | mapToPolygon(const QRect &rectangle) const |
| void | reset() |
(since 6.5) QTransform & | rotate(qreal a, Qt::Axis axis, qreal distanceToPlane) |
| QTransform & | rotate(qreal a, Qt::Axis axis = Qt::ZAxis) |
(since 6.5) QTransform & | rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane) |
| QTransform & | rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis) |
| QTransform & | scale(qreal sx, qreal sy) |
| void | setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33) |
| QTransform & | shear(qreal sh, qreal sv) |
| QTransform & | translate(qreal dx, qreal dy) |
| QTransform | transposed() const |
| QTransform::TransformationType | type() const |
| operator QVariant() const | |
| bool | operator!=(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) |
| QTransform & | operator=(QTransform &&other) |
| QTransform & | operator=(const QTransform &matrix) |
| 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) |
| QLine | operator*(const QLine &line, const QTransform &matrix) |
| QLineF | operator*(const QLineF &line, const QTransform &matrix) |
| QPainterPath | operator*(const QPainterPath &path, const QTransform &matrix) |
| QPoint | operator*(const QPoint &point, const QTransform &matrix) |
| QPointF | operator*(const QPointF &point, const QTransform &matrix) |
| QPolygon | operator*(const QPolygon &polygon, const QTransform &matrix) |
| QPolygonF | operator*(const QPolygonF &polygon, const QTransform &matrix) |
| QRegion | operator*(const QRegion ®ion, const QTransform &matrix) |
| QDataStream & | operator<<(QDataStream &stream, const QTransform &matrix) |
| QDataStream & | operator>>(QDataStream &stream, QTransform &matrix) |
상세 설명
변환은 좌표계를 이동, 크기 조정, 전단, 회전 또는 투영하는 방법을 지정하며, 일반적으로 그래픽을 렌더링할 때 사용됩니다.
QTransform 객체는 setMatrix(), scale(), rotate(), translate() 및 shear() 함수를 사용하여 생성할 수 있습니다. 또는 basic matrix operations 를 적용하여 생성할 수도 있습니다. 행렬은 생성 시 정의할 수도 있으며, reset() 함수를 사용하여 단위 행렬(기본값)으로 재설정할 수도 있습니다.
QTransform 클래스는 그래픽 프리미티브의 매핑을 지원합니다. 주어진 점, 선, 다각형, 영역 또는 페인터 경로는 map() 함수를 사용하여 이 행렬로 정의된 좌표계로 매핑될 수 있습니다. 직사각형의 경우, mapRect() 함수를 사용하여 좌표를 변환할 수 있습니다. 또한 mapToPolygon() 함수를 사용하여 사각형을 다각형으로 변환( 이 행렬이 정의하는 좌표계로 매핑)할 수도 있습니다.
QTransform은 행렬이 단위 행렬일 경우 true 를 반환하는 isIdentity() 함수와, 행렬이 비특이행렬(즉, AB = BA = I)일 경우 true 를 반환하는 isInvertible() 함수를 제공합니다. inverted() 함수는 행렬이 가역일 경우 그 역행렬을 반환하고(그렇지 않은 경우 단위 행렬을 반환하며), adjoint() 함수는 행렬의 고전적 부행렬을 반환합니다. 또한, QTransform은 행렬의 행렬식을 반환하는 determinant() 함수를 제공합니다.
마지막으로, QTransform 클래스는 행렬 곱셈, 덧셈 및 뺄셈을 지원하며, 이 클래스의 객체는 스트리밍 및 비교가 가능합니다.
그래픽 렌더링
그래픽을 렌더링할 때, 행렬은 변환을 정의하지만 실제 변환은 ` QPainter`의 그리기 루틴에 의해 수행됩니다.
기본적으로 ` QPainter `는 연관된 장치의 자체 좌표계에서 작동합니다. ` QPaintDevice `의 표준 좌표계는 좌표계의 원점이 왼쪽 상단에 위치합니다. x 값은 오른쪽으로 갈수록 증가하고, y 값은 아래로 갈수록 증가합니다. 자세한 설명은 좌표계 문서를 참조하십시오.
QPainter 에는 QTransform을 사용하지 않고 좌표계를 이동, 확대/축소, 전단 및 회전시키는 함수가 있습니다. 예를 들어:
![]() | |
이러한 함수들은 매우 편리하지만, 변환 작업을 한 번 이상 수행하려는 경우 QTransform을 생성하고 ` QPainter::setTransform()`를 호출하는 것이 더 효율적일 수 있습니다. 예를 들어:
![]() | |
기본 행렬 연산

QTransform 객체는 3×3 행렬을 포함합니다. 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') 는 inverted() 행렬에 동일한 연산을 수행하여 (x, y) 로 다시 변환할 수 있습니다.
각 행렬 요소는 행렬을 생성할 때 설정하거나, 나중에 setMatrix() 함수를 사용하여 설정할 수 있습니다. 또한 translate(), rotate(), scale() 및 shear() 편의 함수를 사용하여 조작할 수도 있습니다. 현재 설정된 값은 m11(), m12(), m13(), m21(), m22(), m23(), m31(), m32(), m33(), dx() 및 dy() 함수를 사용하여 가져올 수 있습니다.
변환 중 가장 간단한 것은 평행 이동입니다. dx 와 dy 를 설정하면 좌표계가 X축 방향으로 dx 단위, Y축 방향으로 dy 단위만큼 이동합니다. 확대/축소는 m11 와 m22 를 설정하여 수행할 수 있습니다. 예를 들어, m11 를 2로, m22 를 1.5로 설정하면 높이가 두 배가 되고 너비는 50% 증가합니다. 단위 행렬은 m11, m22 및 m33 을 1로 설정하고(나머지는 모두 0으로 설정) 점을 그 자체로 매핑합니다. 전단은 m12 및 m21 으로 제어됩니다. 이 요소들을 0이 아닌 값으로 설정하면 좌표계가 뒤틀립니다. 회전은 전단 계수와 스케일링 계수를 모두 설정하여 수행됩니다. 원근 변환은 투영 계수와 스케일링 계수를 모두 설정하여 수행됩니다.
변환 결합
다음은 기본적인 행렬 연산을 사용한 결합된 변환 예시입니다:
![]() | |
결합 변환은 각 피연산자를 먼저 확대·축소한 다음 회전시키고, 마지막으로 평행 이동을 시킵니다. 이는 인자의 곱이 표기되는 순서와 정확히 일치합니다. 즉, 변환이 적용되는 점은 암묵적으로 그 오른쪽에 있는 변환과 왼쪽에서 곱해집니다.
행렬 표기법과의 관계
QTransform의 행렬 표기법은 변환과 점을 행렬과 벡터로 표현하는 일반적으로 가르치는 관례의 전치 형태입니다. 그 관례에서는 행렬을 왼쪽에서 곱하고, 열 벡터를 오른쪽에서 곱합니다. 즉, 한 점에 여러 변환이 적용될 때, 가장 오른쪽에 있는 행렬이 먼저 벡터에 직접 작용합니다. 그런 다음 왼쪽에 있는 다음 행렬이 첫 번째 연산의 결과에 작용하고, 이 과정이 계속 이어집니다. 결과적으로, Combining Transforms 에서 볼 수 있듯이, 이 관례는 복합 변환을 구성하는 행렬들을 QTransform의 순서와 반대로 곱합니다. 행렬을 전치하고, 점을 나타내는 행 벡터의 오른쪽에 결합하면, 변환 행렬들의 곱이 우리가 그 점에 변환이 적용된다고 생각하는 순서대로 나타납니다.
QPainter, ‘좌표계’, ‘아핀 변환 예제’ 및 ‘변환 예제’도 참조하십시오 .
멤버 유형 문서
enum QTransform::TransformationType
| 상수 | 상수 |
|---|---|
QTransform::TxNone | 0x00 |
QTransform::TxTranslate | 0x01 |
QTransform::TxScale | 0x02 |
QTransform::TxRotate | 0x04 |
QTransform::TxShear | 0x08 |
QTransform::TxProject | 0x10 |
멤버 함수 문서
QTransform::QTransform()
단위 행렬을 생성합니다.
m11 와 m22 (스케일을 지정함) 및 m33 를 제외한 모든 원소는 0으로 설정되며, 이 세 원소는 1로 설정됩니다.
reset()도 참조하십시오 .
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()도 참조하십시오 .
[constexpr noexcept default] QTransform::QTransform(const QTransform &other)
QTransform 의 인스턴스를 복사 생성합니다.
[constexpr noexcept default] QTransform::QTransform(QTransform &&other)
QTransform 의 인스턴스를 move-construct로 생성합니다.
qreal QTransform::m11() const
가로 스케일링 계수를 반환합니다.
scale() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::m12() const
수직 전단 계수를 반환합니다.
shear() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::m13() const
수평 투영 계수를 반환합니다.
translate() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::m21() const
수평 전단 계수를 반환합니다.
shear() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::m22() const
수직 스케일링 계수를 반환합니다.
scale() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::m23() const
수직 투영 계수를 반환합니다.
translate() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::m31() const
수평 이동 계수를 반환합니다.
dx(), translate() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::m32() const
수직 변환 계수를 반환합니다.
dy(), translate() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::m33() const
나누기 계수를 반환합니다.
translate() 및 Basic Matrix Operations도 참조하십시오 .
QTransform QTransform::adjoint() const
이 행렬의 쌍대 행렬을 반환합니다.
qreal QTransform::determinant() const
행렬의 행렬식을 반환합니다.
qreal QTransform::dx() const
수평 이동 계수를 반환합니다.
m31(), translate() 및 Basic Matrix Operations도 참조하십시오 .
qreal QTransform::dy() const
수직 변환 계수를 반환합니다.
translate() 및 Basic Matrix Operations도 참조하십시오 .
[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')는 변환된 점입니다.
Basic Matrix Operations도 참조하십시오 .
QLine QTransform::map(const QLine &l) const
주어진 선 l 의 복사본인 ` QLineF ` 객체를 생성하여 반환하며, 이 객체는 이 행렬로 정의된 좌표계에 매핑된 것입니다.
이 함수는 오버로드된 함수입니다.
QLineF QTransform::map(const QLineF &line) const
주어진 ` line`의 복사본인 ` QLine ` 객체를 생성하여 반환하며, 이 객체는 이 행렬로 정의된 좌표계로 변환된 좌표를 포함합니다. 변환된 좌표는 가장 가까운 정수로 반올림된다는 점에 유의하십시오.
이 함수는 오버로드된 함수입니다.
QPainterPath QTransform::map(const QPainterPath &path) const
주어진 ` path`의 복사본이며, 이 행렬로 정의된 좌표계로 변환된 ` QPainterPath ` 객체를 생성하여 반환합니다.
이 함수는 오버로드된 함수입니다.
QPoint QTransform::map(const QPoint &point) const
주어진 ` point`의 복사본인 ` QPoint ` 객체를 생성하여 반환하며, 이 객체는 이 행렬로 정의된 좌표계로 변환된 좌표를 갖습니다. 변환된 좌표는 가장 가까운 정수로 반올림된다는 점에 유의하십시오.
이 함수는 오버로드된 함수입니다.
QPointF QTransform::map(const QPointF &p) const
주어진 점 p 의 복사본이며, 이 행렬로 정의된 좌표계로 변환된 ` QPointF ` 객체를 생성하여 반환합니다.
이 함수는 오버로드된 함수입니다.
QPolygon QTransform::map(const QPolygon &polygon) const
주어진 ` polygon`의 복사본이며, 이 행렬로 정의된 좌표계로 매핑된 ` QPolygon ` 객체를 생성하여 반환합니다. 변환된 좌표는 가장 가까운 정수로 반올림된다는 점에 유의하십시오.
이 함수는 오버로드된 함수입니다.
QPolygonF QTransform::map(const QPolygonF &polygon) const
주어진 ` polygon`의 복사본이며, 이 행렬로 정의된 좌표계로 매핑된 ` QPolygonF ` 객체를 생성하여 반환합니다.
이 함수는 오버로드된 함수입니다.
QRegion QTransform::map(const QRegion ®ion) const
주어진 ` region`의 복사본이며, 이 행렬로 정의된 좌표계로 매핑된 ` QRegion ` 객체를 생성하여 반환합니다.
회전이나 전단이 사용되는 경우 이 메서드를 호출하는 데 상당한 비용이 발생할 수 있습니다.
이 함수는 오버로드된 함수입니다.
void QTransform::map(int x, int y, int *tx, int *ty) const
주어진 좌표 x 와 y 를 이 행렬로 정의된 좌표계로 변환합니다. 변환된 값은 각각 *tx 와 *ty 에 저장됩니다. 변환된 좌표는 가장 가까운 정수로 반올림된다는 점에 유의하십시오.
이 함수는 오버로드된 함수입니다.
QRectF QTransform::mapRect(const QRectF &rectangle) const
주어진 사각형( rectangle)의 복사본이며, 이 행렬로 정의된 좌표계로 변환된 사각형( QRectF ) 객체를 생성하여 반환합니다.
직사각형의 좌표는 다음 공식에 따라 변환됩니다:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
}회전이나 전단이 지정된 경우, 이 함수는 경계 사각형을 반환합니다. 주어진 ` rectangle `가 매핑되는 정확한 영역을 가져오려면 대신 ` mapToPolygon()` 함수를 사용하십시오.
mapToPolygon() 및 Basic Matrix Operations도 참조하십시오 .
QRect QTransform::mapRect(const QRect &rectangle) const
주어진 ` rectangle`의 복사본이며, 이 행렬로 정의된 좌표계로 변환된 ` QRect ` 객체를 생성하여 반환합니다. 변환된 좌표는 가장 가까운 정수로 반올림된다는 점에 유의하십시오.
이 함수는 오버로드된 함수입니다.
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() 및 Basic Matrix Operations도 참조하십시오 .
[static] bool QTransform::quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans)
4변 다각형 one 을 다른 4변 다각형 two 로 매핑하는 변환 행렬 trans 을 생성합니다. 변환이 가능한 경우 true 를 반환하고, 그렇지 않은 경우 false를 반환합니다.
이 메서드는 quadToSquare() 및 squareToQuad() 메서드를 결합한 편의 메서드입니다. 이를 통해 입력 쿼드를 다른 어떤 쿼드로든 변환할 수 있습니다.
squareToQuad() 및 quadToSquare()메서드도 참조하십시오 .
[static] bool QTransform::quadToSquare(const QPolygonF &quad, QTransform &trans)
4변 다각형( quad)을 단위 정사각형으로 매핑하는 변환 행렬 trans 을 생성합니다. 변환이 구성되면 true 을 반환하고, 해당 변환이 존재하지 않으면 false를 반환합니다.
squareToQuad() 및 quadToQuad()도 참조하십시오 .
void QTransform::reset()
행렬을 단위 행렬로 재설정합니다. 즉, m11 와 m22 (스케일을 지정함) 및 m33 를 제외한 모든 요소는 0으로 설정되고, 이 세 요소는 1로 설정됩니다.
QTransform(), isIdentity() 및 Basic Matrix Operations도 참조하십시오 .
[since 6.5] QTransform &QTransform::rotate(qreal a, Qt::Axis axis, qreal distanceToPlane)
지정된 각도 a 만큼, 화면에서 distanceToPlane 거리만큼 떨어진 지정된 axis 를 중심으로 좌표계를 반시계 방향으로 회전시키고, 행렬에 대한 참조를 반환합니다.
위젯 좌표계로 정의된 점에 QTransform 를 적용할 경우, y축이 아래쪽을 향하므로 회전 방향은 시계 방향이 됩니다.
각도는 도(°) 단위로 지정됩니다.
distanceToPlane 이 0이면 무시됩니다. 이는 z 좌표를 투영하지 않고 생략해야 하는 정투영을 구현하는 데 적합합니다.
이 함수는 Qt 6.5에서 도입되었습니다.
setMatrix()도 참조하십시오 .
QTransform &QTransform::rotate(qreal a, Qt::Axis axis = Qt::ZAxis)
지정된 각도 a 만큼 좌표계를 시계 반대 방향으로 회전시키며, 화면에서 1024.0 거리 떨어진 지점 axis 을 중심으로 회전시킨 후, 행렬에 대한 참조를 반환합니다.
위젯 좌표계로 정의된 점에 QTransform 를 적용할 경우, y축이 아래쪽을 향하므로 회전 방향은 시계 방향이 됩니다.
각도는 도(°) 단위로 지정됩니다.
이 함수는 오버로드된 함수입니다.
setMatrix도 참조하십시오 .
[since 6.5] QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane)
지정된 각도 a 만큼 좌표계를 시계 반대 방향으로 회전시키며, 화면으로부터 distanceToPlane 거리에서 지정된 axis 을 중심으로 회전시킨 후, 행렬에 대한 참조를 반환합니다.
위젯 좌표계로 정의된 점에 QTransform 을 적용할 경우, y축이 아래쪽을 향하므로 회전 방향은 시계 방향이 됩니다.
각도는 라디안 단위로 지정됩니다.
distanceToPlane 가 0인 경우 무시됩니다. 이는 z 좌표를 투영하기보다는 생략해야 하는 정사투영을 구현하는 데 적합합니다.
이 함수는 Qt 6.5에서 도입되었습니다.
setMatrix()도 참조하십시오 .
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis)
좌표계를 화면으로부터 1024.0 거리 지점에 위치한 지정된 axis 를 중심으로 주어진 각도 a 만큼 시계 반대 방향으로 회전시키고, 행렬에 대한 참조를 반환합니다.
위젯 좌표계로 정의된 점에 QTransform 를 적용할 경우, y축이 아래쪽을 향하므로 회전 방향은 시계 방향이 됩니다.
각도는 라디안 단위로 지정됩니다.
이 함수는 오버로드된 함수입니다.
setMatrix()함수도 참조하십시오 .
QTransform &QTransform::scale(qreal sx, qreal sy)
좌표계를 가로 방향으로 sx, 세로 방향으로 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)
단위 정사각형을 4각형( quad)으로 변환하는 변환 행렬 trans 을 생성합니다. 변환이 구성되면 true 을 반환하고, 해당 변환이 존재하지 않으면 false를 반환합니다.
quadToSquare() 및 quadToQuad()도 참조하십시오 .
QTransform &QTransform::translate(qreal dx, qreal dy)
좌표계를 x축 방향으로 dx, y축 방향으로 dy 만큼 이동시키고, 행렬에 대한 참조를 반환합니다.
setMatrix()도 참조하십시오 .
QTransform QTransform::transposed() const
이 행렬의 전치 행렬을 반환합니다.
QTransform::TransformationType QTransform::type() const
이 행렬의 변환 유형을 반환합니다.
변환 유형은 행렬의 모든 변환을 포괄하는 가장 높은 열거형 값입니다. 예를 들어, 행렬이 확대/축소 및 전단을 모두 수행하는 경우, TxShear 의 열거형 값이 TxScale 보다 높기 때문에 유형은 TxShear 이 됩니다.
행렬의 변환 유형을 파악하는 것은 최적화에 유용합니다. 일반적인 경우를 처리하는 것보다 특정 유형을 더 효율적으로 처리할 수 있는 경우가 많기 때문입니다.
QTransform::operator QVariant() const
변환을 ` QVariant` 형식으로 반환합니다.
bool QTransform::operator!=(const QTransform &matrix) const
이 행렬이 주어진 matrix 과 같지 않으면 true 를 반환하고, 그렇지 않으면 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 로 요소별 나눗셈을 수행한 결과를 반환합니다.
[noexcept default] QTransform &QTransform::operator=(QTransform &&other)
other 를 이 QTransform 인스턴스에 할당합니다.
[noexcept default] QTransform &QTransform::operator=(const QTransform &matrix)
지정된 matrix 의 값을 이 행렬에 할당합니다.
bool QTransform::operator==(const QTransform &matrix) const
이 행렬이 주어진 행렬 matrix 과 같으면 ` true `을 반환하고, 그렇지 않으면 ` false`을 반환합니다.
관련 비회원
[noexcept] bool qFuzzyCompare(const QTransform &t1, const QTransform &t2)
t1 와 t2 가 같을 경우, 부동소수점 비교 시 약간의 허용 오차를 고려하여 ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.
[noexcept] size_t qHash(const QTransform &key, size_t seed = 0)
seed 를 계산의 시드로 사용하여 key 의 해시 값을 반환합니다.
QLine operator*(const QLine &line, const QTransform &matrix)
이는 matrix.map(line)과 동일합니다.
QTransform::map()도 참조하십시오 .
QLineF operator*(const QLineF &line, const QTransform &matrix)
이는 matrix.map(line)과 동일합니다.
QTransform::map()도 참조하십시오 .
QPainterPath operator*(const QPainterPath &path, const QTransform &matrix)
이는 matrix.map(path)과 동일합니다.
QTransform::map()도 참조하십시오 .
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()도 참조하십시오 .
QPolygon operator*(const QPolygon &polygon, const QTransform &matrix)
이는 matrix.map(polygon)과 동일합니다.
QTransform::map()도 참조하십시오 .
QPolygonF operator*(const QPolygonF &polygon, const QTransform &matrix)
이는 matrix.map(polygon)과 동일합니다.
QTransform::map()도 참조하십시오 .
QRegion operator*(const QRegion ®ion, const QTransform &matrix)
이는 matrix.map(region)과 동일합니다.
QTransform::map()도 참조하십시오 .
QDataStream &operator<<(QDataStream &stream, const QTransform &matrix)
지정된 ` matrix `을 지정된 ` stream `에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
Qt 데이터 유형의 직렬화항목도 참조하십시오 .
QDataStream &operator>>(QDataStream &stream, QTransform &matrix)
지정된 ` matrix `를 지정된 ` stream `에서 읽어들이고, 해당 스트림에 대한 참조를 반환합니다.
Qt 데이터 유형의 직렬화항목도 참조하십시오 .
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.


