QTransform Class
QTransform 클래스는 좌표계의 2D 변환을 지정합니다. 더 보기...
Header: | #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) | |
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 |
QVariant | 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=(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() 함수와 행렬이 단항이 아닌 경우 true
을 반환하는 isInvertible() 함수를 제공합니다(예: AB = BA = I). inverted () 함수는 이 행렬이 반전 가능한 경우 반전된 복사본을 반환하고(그렇지 않으면 동일 행렬을 반환합니다), 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 객체에는 3 x 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') 는 변환된 점입니다. inverted () 행렬에서 동일한 연산을 수행하여 (x', y')를 다시 (x, y) 로 변환할 수 있습니다.
다양한 행렬 요소는 행렬을 구성할 때 설정하거나 나중에 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
으로 제어됩니다. 이 요소를 0과 다른 값으로 설정하면 좌표계가 비틀어집니다. 회전은 전단 계수와 배율 계수를 모두 설정하여 수행합니다. 투영 계수와 배율을 모두 설정하면 원근 변환이 이루어집니다.
변환 결합하기
다음은 기본 행렬 연산을 사용한 결합 변환 예제입니다:
![]() | 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의 행렬 표기법은 변환과 점을 행렬과 벡터로 표현하는 일반적인 규칙을 바꾼 것입니다. 이 규칙은 왼쪽에 행렬을 곱하고 오른쪽에 열 벡터를 곱합니다. 즉, 한 점에 여러 변환을 적용하면 가장 오른쪽 행렬이 벡터에 먼저 직접 작용합니다. 그런 다음 왼쪽에 있는 다음 행렬이 첫 번째 작업의 결과에 작용하는 식으로 진행됩니다. 결과적으로 이 규칙은 Combining Transforms 에서 볼 수 있듯이 복합 변환을 구성하는 행렬을 QTransform의 순서와 반대로 곱합니다. 행렬을 전치하고 점을 나타내는 행 벡터의 오른쪽에 결합하면 변환의 행렬이 그 곱에서 점에 적용되는 변환을 생각하는 순서대로 나타납니다.
QPainter, 좌표계, 아핀 변환 예제 및 변환 예제를참조하세요 .
멤버 유형 문서
enum QTransform::TransformationType
상수 | Value |
---|---|
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()도 참조하세요 .
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)
x축을 따라 dx, y축을 따라 dy 번역에 해당하는 행렬을 만듭니다. QTransform ().translate(dx, dy)와 동일하지만 약간 더 빠릅니다.
QTransform QTransform::inverted(bool *invertible = nullptr) const
이 행렬의 반전된 복사본을 반환합니다.
행렬이 단수(반전 가능하지 않음)인 경우 반환되는 행렬은 동일 행렬입니다. invertible 가 유효하면(즉, 0이 아닌 경우) 행렬이 반전 가능하면 그 값은 참으로 설정되고, 그렇지 않으면 거짓으로 설정됩니다.
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으로 설정됩니다.
QTransform(), isIdentity() 및 Basic Matrix Operations도 참조하세요 .
[since 6.5]
QTransform &QTransform::rotate(qreal a, Qt::Axis axis, qreal distanceToPlane)
좌표계를 화면에서 distanceToPlane 거리의 지정된 axis 에 대해 주어진 각도 a 만큼 시계 반대 방향으로 회전하고 행렬에 대한 참조를 반환합니다.
위젯 좌표로 정의된 지점에 QTransform 을 적용하면 Y 축이 아래쪽을 가리키므로 회전 방향이 시계 방향이 됩니다.
각도는 도 단위로 지정됩니다.
distanceToPlane 이 0이면 무시됩니다. 이 함수는 z 좌표를 투영하지 않고 삭제해야 하는 직교 투영을 구현하는 데 적합합니다.
이 함수는 Qt 6.5에 도입되었습니다.
setMatrix()도 참조하세요 .
QTransform &QTransform::rotate(qreal a, Qt::Axis axis = Qt::ZAxis)
이 함수는 오버로드된 함수입니다.
화면에서 1024.0 거리의 지정된 axis 에 대해 좌표계를 주어진 각도 a 만큼 시계 반대 방향으로 회전하고 행렬에 대한 참조를 반환합니다.
위젯 좌표로 정의된 지점에 QTransform 을 적용하면 Y 축이 아래쪽을 가리키므로 회전 방향이 시계 방향이 됩니다.
각도는 도 단위로 지정됩니다.
setMatrix 를참조하세요 .
[since 6.5]
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane)
좌표계를 화면에서 distanceToPlane 거리의 지정된 axis 에 대해 주어진 각도 a 만큼 시계 반대 방향으로 회전하고 행렬에 대한 참조를 반환합니다.
위젯 좌표로 정의된 지점에 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)
좌표계 dx 를 x축을 따라, dy 를 y축을 따라 이동하고 행렬에 대한 참조를 반환합니다.
setMatrix()도 참조하세요 .
QTransform QTransform::transposed() const
이 행렬의 전치를 반환합니다.
QTransform::TransformationType QTransform::type() const
이 행렬의 변환 유형을 반환합니다.
변환 유형은 행렬의 모든 변환을 캡처하는 가장 높은 열거 값입니다. 예를 들어 행렬이 스케일링과 시어링을 모두 수행하는 경우 TxShear
이 TxScale
보다 열거 값이 더 높으므로 유형은 TxShear
이 됩니다.
행렬의 변환 유형을 아는 것은 최적화에 유용합니다. 일반적인 경우를 처리하는 것보다 특정 유형을 더 최적으로 처리할 수 있는 경우가 많기 때문입니다.
QVariant 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]
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)
주어진 stream 에서 주어진 matrix 을 읽고 스트림에 대한 참조를 반환합니다.
Qt 데이터 유형 직렬화도참조하십시오 .
© 2025 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.