ID2D1Brush::SetTransform(constD2D1_MATRIX_3X2_F&) 메서드(d2d1.h)
브러시에 적용된 변환을 설정합니다.
구문
void SetTransform(
[ref] const D2D1_MATRIX_3X2_F & transform
);
매개 변수
[ref] transform
형식: const D2D1_MATRIX_3X2_F
이 브러시에 적용할 변환입니다.
반환 값
없음
설명
브러시로 페인트하면 렌더링 대상의 좌표 공간에 그립니다. 브러시는 그리는 개체에 맞게 자동으로 위치를 지정하지 않습니다. 기본적으로 렌더링 대상의 원점(0, 0)에서 그리기를 시작합니다.
시작점과 끝점을 설정하여 ID2D1LinearGradientBrush 에 정의된 그라데이션을 대상 영역으로 "이동"할 수 있습니다. 마찬가지로 가운데와 반경을 변경하여 ID2D1RadialGradientBrush 로 정의된 그라데이션을 이동할 수 있습니다.
ID2D1BitmapBrush의 콘텐츠를 그리는 영역에 맞추려면 SetTransform 메서드를 사용하여 비트맵을 원하는 위치로 변환할 수 있습니다. 이 변환은 브러시에만 영향을 줍니다. 렌더링 대상에서 그린 다른 콘텐츠에는 영향을 주지 않습니다.
다음 그림에서는 ID2D1BitmapBrush 를 사용하여 (100, 100)에 있는 사각형을 채우는 효과를 보여 줍니다. 왼쪽 그림에서는 브러시를 변환하지 않고 사각형을 채운 결과를 보여 줍니다. 비트맵은 렌더링 대상의 원점에서 그려집니다. 따라서 비트맵의 일부만 사각형에 나타납니다.
오른쪽 그림은 콘텐츠가 오른쪽으로 50픽셀, 아래로 50픽셀 이동되도록 ID2D1BitmapBrush 를 변환한 결과를 보여 줍니다. 이제 비트맵이 사각형을 채웁니다.
예제
다음 코드 예제에서는 앞의 그림에서 오른쪽 다이어그램에 표시된 변환을 만드는 방법을 보여 줍니다. 먼저 ID2D1BitmapBrush에 변환을 적용하여 브러시를 x축을 따라 오른쪽으로 50픽셀, y축을 따라 50픽셀 아래로 이동합니다. 그런 다음 ID2D1BitmapBrush 를 사용하여 왼쪽 위 모서리가 (100, 100) 및 오른쪽 아래 모서리(200, 200)에 있는 사각형을 채웁니다.
// Create the bitmap to be used by the bitmap brush.
if (SUCCEEDED(hr))
{
hr = LoadResourceBitmap(
m_pRenderTarget,
m_pWICFactory,
L"FERN",
L"Image",
&m_pBitmap
);
}
if (SUCCEEDED(hr))
{
hr = m_pRenderTarget->CreateBitmapBrush(
m_pBitmap,
&m_pBitmapBrush
);
}
D2D1_RECT_F rcTransformedBrushRect = D2D1::RectF(100, 100, 200, 200);
// Demonstrate the effect of transforming a bitmap brush.
m_pBitmapBrush->SetTransform(
D2D1::Matrix3x2F::Translation(D2D1::SizeF(50,50))
);
// To see the content of the rcTransformedBrushRect, comment
// out this statement.
m_pRenderTarget->FillRectangle(
&rcTransformedBrushRect,
m_pBitmapBrush
);
m_pRenderTarget->DrawRectangle(rcTransformedBrushRect, m_pBlackBrush, 1, NULL);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트가 포함된 Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | d2d1.h |
라이브러리 | D2d1.lib |
DLL | D2d1.dll |