ID2D1Factory::CreateTransformedGeometry 메서드
지정된 기하 도형을 변환하고 결과를 ID2D1TransformedGeometry 개체로 저장합니다.
오버로드 목록
메서드 | 설명 |
---|---|
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F*,ID2D1TransformedGeometry**) | 지정된 기하 도형을 변환하고 결과를 ID2D1TransformedGeometry 개체로 저장합니다. |
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F&,ID2D1TransformedGeometry**) | 지정된 기하 도형을 변환하고 결과를 ID2D1TransformedGeometry 개체로 저장합니다. |
설명
다른 리소스와 마찬가지로 변환된 기하 도형은 생성된 팩터리의 리소스 공간 및 스레딩 정책을 상속합니다. 이 개체는 변경할 수 없습니다.
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);
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
DLL |
|