Matrix 구조체
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 에 대한 데이터를 제공하는 행렬을 정의합니다. 이 경우 행렬은 오프셋(OffsetX 및 OffsetY)과 기울이기(M12)를 결합합니다. TranslateTransform과 SkewTransform을 결합하여 동일한 효과를 생성할 수 있습니다. 단일 행렬 또는 불연속 변환 조합을 사용할지 여부는 코딩 스타일의 문제입니다. 결과는 동일합니다.
<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) 이므로 처음 두 열 멤버만 지정할 수 있습니다. 참고 벡터는 열 벡터가 아니라 행 벡터로 표현 됩니다.
행렬은 행 주 순서를 사용하여 저장되며 다음과 같은 구조가 있습니다.
M11 | M12 | 0 |
M21 | M22 | 0 |
OffsetX | OffsetY | 1 |
마지막 행의 멤버인 OffsetX 및 OffsetY는 변환 값을 나타냅니다.
메서드 및 속성에서 변환 행렬은 일반적으로 6개의 멤버만 있는 벡터로 지정됩니다(M11, M12, M21, M22, OffsetX, OffsetY).
행렬 구조를 직접 사용하여 개별 점을 변환하거나 MatrixTransform을 사용하여 개체를 변환할 수 있지만, Windows 런타임 행렬을 사용하여 직접 작업하지 않고도 개체를 변환할 수 있는 클래스 집합을 제공합니다.
행렬의 속성에 애니메이션 효과를 적용할 수 있습니다(하나 이상의 DoubleAnimation 애니메이션 또는 DoubleAnimationUsingKeyFrames로).
Matrix는 MatrixTransform.Matrix 속성의 속성 값입니다. 관련 형식은 3차원 공간의 변환 매트릭스에 사용한 다음 프로젝션에 사용할 수 있습니다. Matrix3D 및 Matrix3DProjection을 참조하세요.
행렬의 언어 프로젝션 및 멤버
Microsoft .NET 언어(C# 또는 Microsoft Visual Basic) 또는 Visual C++ 구성 요소 확장(C++/CX)에서 사용하는 경우 Matrix에는 비데이터 멤버를 사용할 수 있으며 해당 데이터 멤버는 필드가 아닌 읽기-쓰기 속성으로 노출됩니다.
WINDOWS 런타임 WRL(템플릿 라이브러리)을 사용하여 C++로 프로그래밍하는 경우 데이터 멤버 필드만 행렬의 멤버로 존재하며 멤버 테이블에 나열된 유틸리티 메서드 또는 속성을 사용할 수 없습니다. WRL 코드는 MatrixHelper 클래스에 있는 유사한 유틸리티 메서드에 액세스할 수 있습니다.
필드
M11 |
이 행렬 구조체의 첫 번째 행과 첫 번째 열의 값입니다. |
M12 |
이 행렬 구조체의 첫 번째 행과 두 번째 열의 값입니다. |
M21 |
이 행렬 구조체의 두 번째 행과 첫 번째 열의 값입니다. |
M22 |
이 행렬 구조체의 두 번째 행과 두 번째 열의 값입니다. |
OffsetX |
이 행렬 구조체의 세 번째 행과 첫 번째 열의 값을 가져오거나 설정합니다. |
OffsetY |
이 행렬 구조체의 세 번째 행과 두 번째 열의 값을 가져오거나 설정합니다. |