Matrix 구조체

정의

2차원 공간의 변환에 사용되는 3개의 × 3개의 아핀 변환 매트릭스를 나타냅니다.

public value class Matrix
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct Matrix
Public Structure Matrix
<Matrix .../>
- or -
<object property="m11,m12,m21,m22,offsetX,offsetY"/>
- or -
<object property="m11 m12 m21 m22 offsetX offsetY"/>
-or-
<object property="Identity"/>
상속
Matrix
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

예제

이 예제 XAML은 사각형 도형에 적용된 MatrixTransform 에 대한 데이터를 제공하는 행렬을 정의합니다. 이 경우 행렬은 오프셋(OffsetXOffsetY)과 기울이기(M12)를 결합합니다. TranslateTransformSkewTransform을 결합하여 동일한 효과를 생성할 수 있습니다. 단일 행렬 또는 불연속 변환 조합을 사용할지 여부는 코딩 스타일의 문제입니다. 결과는 동일합니다.

<Rectangle Width="100" Height="100" Fill="Red">
    <Rectangle.RenderTransform>
        <MatrixTransform Matrix="1,0,0,1,200,0">
        </MatrixTransform>
    </Rectangle.RenderTransform>
</Rectangle>

설명

3×3 행렬은 2차원 x-y 평면의 변환에 사용됩니다. 행렬 유사 변환을 곱하면 회전, 기울이기 등 원하는 개수의 선형 변형 후 변환을 구성할 수 있습니다. 3x3 유사 변형 매트릭스에의 마지막 열은 (0, 0, 1) 이므로 처음 두 열 멤버만 지정할 수 있습니다. 참고 벡터는 열 벡터가 아니라 행 벡터로 표현 됩니다.

행렬은 행 주 순서를 사용하여 저장되며 다음과 같은 구조가 있습니다.

M11M120
M21M220
OffsetXOffsetY1

마지막 행의 멤버인 OffsetXOffsetY는 변환 값을 나타냅니다.

메서드 및 속성에서 변환 행렬은 일반적으로 6개의 멤버만 있는 벡터로 지정됩니다(M11, M12, M21, M22, OffsetX, OffsetY).

행렬 구조를 직접 사용하여 개별 점을 변환하거나 MatrixTransform을 사용하여 개체를 변환할 수 있지만, Windows 런타임 행렬을 사용하여 직접 작업하지 않고도 개체를 변환할 수 있는 클래스 집합을 제공합니다.

행렬의 속성에 애니메이션 효과를 적용할 수 있습니다(하나 이상의 DoubleAnimation 애니메이션 또는 DoubleAnimationUsingKeyFrames로).

Matrix는 MatrixTransform.Matrix 속성의 속성 값입니다. 관련 형식은 3차원 공간의 변환 매트릭스에 사용한 다음 프로젝션에 사용할 수 있습니다. Matrix3DMatrix3DProjection을 참조하세요.

행렬의 언어 프로젝션 및 멤버

Microsoft .NET 언어(C# 또는 Microsoft Visual Basic) 또는 Visual C++ 구성 요소 확장(C++/CX)에서 사용하는 경우 Matrix에는 비데이터 멤버를 사용할 수 있으며 해당 데이터 멤버는 필드가 아닌 읽기-쓰기 속성으로 노출됩니다.

WINDOWS 런타임 WRL(템플릿 라이브러리)을 사용하여 C++로 프로그래밍하는 경우 데이터 멤버 필드만 행렬의 멤버로 존재하며 멤버 테이블에 나열된 유틸리티 메서드 또는 속성을 사용할 수 없습니다. WRL 코드는 MatrixHelper 클래스에 있는 유사한 유틸리티 메서드에 액세스할 수 있습니다.

필드

M11

이 행렬 구조체의 첫 번째 행과 첫 번째 열의 값입니다.

M12

이 행렬 구조체의 첫 번째 행과 두 번째 열의 값입니다.

M21

이 행렬 구조체의 두 번째 행과 첫 번째 열의 값입니다.

M22

이 행렬 구조체의 두 번째 행과 두 번째 열의 값입니다.

OffsetX

이 행렬 구조체의 세 번째 행과 첫 번째 열의 값을 가져오거나 설정합니다.

OffsetY

이 행렬 구조체의 세 번째 행과 두 번째 열의 값을 가져오거나 설정합니다.

적용 대상