변환 (DirectComposition)

참고

Windows 10에 대 한 앱의 경우 directcomposition 대신 Windows. uia api를 사용 하는 것이 좋습니다. 자세한 내용은 시각적 계층을 사용 하 여 데스크톱 앱 현대화을 참조 하세요.

이 항목에서는 2 차원 (2D) 관계 (선형) 변환에 대 한 Microsoft DirectComposition 지원에 대해 설명 하 고 DirectComposition에서 지 원하는 변환 형식에 대해 설명 합니다.

또한 DirectComposition은 3D 큐브 뷰 변환을 지원 하지만 중간 비트맵을 만들어야 하기 때문에 DirectComposition은 변환이 아니라 효과를 고려 하는 것으로 간주 합니다. 3D 원근 변환 효과에 대 한 자세한 내용은 효과를 참조 하세요.

이 항목에는 다음 섹션이 포함되어 있습니다.

DirectComposition 2D 변환 이란?

2D 변환을 사용 하면 시각적 개체를 다른 위치 (변환)로 이동 하 여 더 크거나 작게 (배율 조정) 하거나, 회전 (회전) 하거나, 셰이프를 왜곡 (기울이기) 하 여 시각적 개체의 위치, 크기 또는 특성을 두 차원으로 변경할 수 있습니다.

2D 변환은 같은 좌표 공간 내의 한 위치에서 다른 위치로 시각적 개체의 요소를 매핑하고 한 좌표 공간에서 다른 좌표 공간으로 이동 합니다. 이 매핑은 다음 표에 표시 된 것과 같이 세 개의 열로 이루어진 열로 정의 된 세 개의 행 컬렉션으로 정의 되는 변환 행렬 이라는 값의 테이블로 설명 됩니다.

M11Default: 1.0
M21Default: 0.0
M31OffsetX: 0.0

M12Default: 0.0
M22Default: 1.0
M32OffsetY: 0.0

0.0
0.0
1.0

상관 2D 변환의 변형 행렬은 이전 변환 행렬에서 세 번째 열을 생략 하는 3 x 2 행렬입니다. 다음 표에서는이 행렬의 레이아웃을 보여 줍니다.

M11Default: 1.0
M21Default: 0.0
M31OffsetX: 0.0

M12Default: 0.0
M22Default: 1.0
M32OffsetY: 0.0

참고

DirectComposition은 스테레오 콘텐츠에 2D 변환을 적용 하는 경우 특별 한 처리를 수행 하지 않습니다. 즉, 2D 변환이 적용 될 때 3D 콘텐츠가 비틀어 진 것 처럼 보일 수 있습니다.

DirectComposition 2D 좌표 공간입니다.

DirectComposition은 왼쪽에 있는 2D 좌표 공간을 사용 합니다. 즉, 양의 x-축 값은 오른쪽으로 증가 하 고 양의 y-축 값은 아래로 증가 합니다. 시각적 개체는 다음 그림과 같이 x 축과 y 축이 교차 하는 지점 (0, 0) 인 원점을 기준으로 배치 됩니다.

왼쪽 좌표 공간의 x 축과 y 축

3 x 2 변환 매트릭스에서 값을 조작 하 여 개체를 두 차원으로 회전, 크기 조정, 기울이기 및 변환할 수 있습니다. 예를 들어 OffsetX를 100로 설정 하 고 OffsetY를 200으로 설정 하는 경우 개체를 오른쪽 100 픽셀과 아래쪽 200 픽셀로 이동 합니다.

상관 2D 변환 지원

다음 표에서는 DirectComposition에서 지원 되는 관계 2D 변환의 유형에 대해 설명 하 고 다양 한 유형의 변환을 수행 하는 데 사용할 수 있는 인터페이스를 나열 합니다.

변환/인터페이스 Description 그림
2D idcompositionrotatetransform [ 줄 바꿈 회전] 지정 된 중심점에 대 한 지정 된 각도로 시각적 개체를 회전 합니다. 원래 사각형의 중심을 기준으로 45도 시계 방향으로 회전 하는 사각형의 그림
Scale 2D idcompositionscaletransform [ 줄 바꿈] 지정 된 중심점에 대해 지정 된 요소를 기준으로 시각적 개체의 크기를 조정 합니다. 크기를 조정 하는 사각형의 그림 130%
2D idcompositionskewtransform [ 줄 바꿈] x 축과 y 축을 따라 지정 된 중심점을 기준으로 시각적 개체를 기울입니다. y 축에서 시계 반대 방향으로 30도 기울어진 사각형의 그림
2D idcompositiontranslatetransform [ 줄 바꿈 변환] x 축과 y 축 방향으로 시각적 개체의 위치를 변경 합니다. 양수 x 축을 따라 20 개를 이동 하는 사각형 및 양의 y 축에 10 개 단위를 이동 하는 그림

행렬 2D 변환

IDCompositionMatrixTransform 인터페이스를 사용 하 여 사용자 고유의 3 x/2 상관 2d 변환 매트릭스를 정의 하 고 시각적 개체에 적용할 수 있습니다. 이 인터페이스는 다른 DirectComposition 변환 인터페이스를 통해 사용할 수 없는 상관 관계 2D 변환의 형식을 적용 해야 하는 경우에 유용 합니다. D2D _ 행렬 _ 3X2 _ F 구조를 채워 IDCompositionMatrixTransform:: setmatrix 메서드에 전달 하 여 행렬을 정의 합니다.

변환 그룹

변환 그룹을 사용 하 여 여러 변환을 하나로 결합할 수 있습니다. 변환 그룹은 행렬을 컬렉션에 지정 된 순서 대로 곱하여 하는 transform 개체의 컬렉션을 정의 합니다. 그러면 결과 변환 매트릭스가 시각적 개체에 적용 됩니다. 변환 그룹은 각 변환을 개별적으로 적용 하는 것과 동일한 결과를 생성 합니다.

변환 그룹에서 변환 개체의 순서는 중요 합니다. 예를 들어, 시각적 개체를 먼저 회전 한 다음 크기를 조정 하 고 번역 한 경우에는 시각적 개체를 처음 변환 하 고 회전 한 다음 크기를 조정 하는 것과 결과가 다릅니다. DirectComposition은 항상 컬렉션에 지정 된 순서에 따라 시각적 개체에 변환을 적용 합니다.

변환 그룹을 만들려면 먼저 그룹에 포함할 transform 개체를 만든 다음 transform 개체 포인터의 배열을 IDCompositionDevice:: CreateTransformGroup 메서드에 전달 합니다. 변환 그룹을 만든 후에는 변환 개체를 추가 하거나 제거할 수 없습니다. 그러나 컬렉션에서 개별 transform 개체의 속성을 수정할 수 있으며 변경 내용이 결과 변형 행렬에 반영 됩니다.

애니메이션 변환

변환의 속성에 애니메이션을 적용할 수 있습니다. 속성이 애니메이션으로 적용 되는 경우 DirectComposition은 한 번에 모두 아니라 시간에 따라 속성 값을 변경 합니다. 이는 전환을 만들 때 특히 유용 합니다. 자세한 내용은 애니메이션을 참조 하세요.

DirectComposition 개념