ID2D1Factory::CreateTransformedGeometry(ID2D1Geometry*,constD2D1_MATRIX_3X2_F&,ID2D1TransformedGeometry**) 메서드(d2d1.h)
지정된 기하 도형을 변환하고 결과를 ID2D1TransformedGeometry 개체로 저장합니다.
구문
HRESULT CreateTransformedGeometry(
ID2D1Geometry *sourceGeometry,
const D2D1_MATRIX_3X2_F & transform,
ID2D1TransformedGeometry **transformedGeometry
);
매개 변수
sourceGeometry
형식: [in] ID2D1Geometry*
변환할 기하 도형입니다.
transform
형식: [in] const D2D1_MATRIX_3X2_F &
적용할 변환입니다.
transformedGeometry
형식: [out] ID2D1TransformedGeometry**
이 메서드가 반환될 때 변환된 새 geometry 개체에 대한 포인터의 주소를 포함합니다. 변환된 기하 도형은 변환을 통해sourceGeometry를 변환한 결과를 저장합니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그렇지 않으면 HRESULT 오류 코드를 반환합니다.
설명
다른 리소스와 마찬가지로 변환된 기하 도형은 리소스 공간을 상속하고 이를 만든 팩터리의 스레딩 정책을 상속합니다. 이 개체는 변경할 수 없습니다.
DrawGeometry 메서드를 사용하여 변형된 기하 도형을 쓰다듬을 때 스트로크 너비는 기하 도형에 적용된 변환의 영향을 받지 않습니다. 스트로크 너비는 월드 변환의 영향을 받습니다.
예제
다음 예제에서는 ID2D1RectangleGeometry를 만든 다음 변환하지 않고 그립니다. 다음 그림에 표시된 출력을 생성합니다.
hr = m_pD2DFactory->CreateRectangleGeometry(
D2D1::RectF(150.f, 150.f, 200.f, 200.f),
&m_pRectangleGeometry
);
다음 예제에서는 렌더링 대상을 사용하여 기하 도형의 크기를 3으로 조정한 다음 그립니다. 다음 그림에서는 변환 없이 및 변환을 사용하여 사각형을 그리는 결과를 보여 줍니다. 는 스트로크 두께가 1임에도 불구하고 변환 후 스트로크가 더 두껍다는 것을 알 수 있습니다.
// Transform the render target, then draw the rectangle geometry again.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Scale(
D2D1::SizeF(3.f, 3.f),
D2D1::Point2F(175.f, 175.f))
);
m_pRenderTarget->DrawGeometry(m_pRectangleGeometry, m_pBlackBrush, 1);
다음 예제에서는 CreateTransformedGeometry 메서드를 사용하여 기하 도형의 크기를 3으로 조정한 다음 그립니다. 다음 그림에 표시된 출력을 생성합니다. 사각형은 더 크지만 스트로크는 증가하지 않았습니다.
// Create a geometry that is a scaled version
// of m_pRectangleGeometry.
// The new geometry is scaled by a factory of 3
// from the center of the geometry, (35, 35).
hr = m_pD2DFactory->CreateTransformedGeometry(
m_pRectangleGeometry,
D2D1::Matrix3x2F::Scale(
D2D1::SizeF(3.f, 3.f),
D2D1::Point2F(175.f, 175.f)),
&m_pTransformedGeometry
);
// Replace the previous render target transform.
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
// Draw the transformed geometry.
m_pRenderTarget->DrawGeometry(m_pTransformedGeometry, m_pBlackBrush, 1);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | 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 |