다음을 통해 공유


ID2D1Factory::CreateTransformedGeometry 메서드

지정된 기하 도형을 변환하고 결과를 ID2D1TransformedGeometry 개체로 저장합니다.

오버로드 목록

메서드 설명
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F*,ID2D1TransformedGeometry**) 지정된 기하 도형을 변환하고 결과를 ID2D1TransformedGeometry 개체로 저장합니다.
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F&,ID2D1TransformedGeometry**) 지정된 기하 도형을 변환하고 결과를 ID2D1TransformedGeometry 개체로 저장합니다.

설명

다른 리소스와 마찬가지로 변환된 기하 도형은 생성된 팩터리의 리소스 공간 및 스레딩 정책을 상속합니다. 이 개체는 변경할 수 없습니다.

DrawGeometry 메서드를 사용하여 변형된 기하 도형을 쓰다듬을 때 스트로크 너비는 기하 도형에 적용된 변환의 영향을 받지 않습니다. 스트로크 너비는 월드 변환의 영향을 받습니다.

예제

다음 예제에서는 ID2D1RectangleGeometry를 만든 다음 변환하지 않고 그립니다. 다음 그림에 표시된 출력을 생성합니다.

illustration of a rectangle

hr = m_pD2DFactory->CreateRectangleGeometry(
    D2D1::RectF(150.f, 150.f, 200.f, 200.f),
    &m_pRectangleGeometry
    );

다음 예제에서는 렌더링 대상을 사용하여 기하 도형의 크기를 3으로 조정한 다음 그립니다. 다음 그림에서는 변환 없이 변환을 사용하여 사각형을 그리는 결과를 보여 줍니다. 는 스트로크 두께가 1이더라도 변환 후 스트로크가 더 두껍다는 것을 알 수 있습니다.

illustration of a smaller rectangle inside a larger rectangle with a thicker stroke

// 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으로 조정한 다음 그립니다. 다음 그림에 표시된 출력을 생성합니다. 직사각형은 더 크지만 스트로크는 증가하지 않았습니다.

illustration of a smaller rectangle inside a larger rectangle with the same stroke

 // 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);

요구 사항

요구 사항
헤더
D2d1.h
라이브러리
D2d1.lib
DLL
D2d1.dll

참고 항목

ID2D1Factory