Share via


ID2D1TransformedGeometry 인터페이스(d2d1.h)

변환된 기하 도형을 나타냅니다.

상속

ID2D1TransformedGeometry 인터페이스는 ID2D1Geometry에서 상속됩니다. ID2D1TransformedGeometry 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

ID2D1TransformedGeometry 인터페이스에는 이러한 메서드가 있습니다.

 
ID2D1TransformedGeometry::GetSourceGeometry

변환된 이 기하 도형 개체의 원본 기하 도형을 검색합니다.
ID2D1TransformedGeometry::GetTransform

ID2D1TransformedGeometry 개체의 원본 기하 도형을 변환하는 데 사용되는 행렬을 검색합니다.

설명

렌더링 대상의 변환을 사용하여 기하 도형을 변환하는 대신 ID2D1TransformedGeometry 를 사용하면 스트로크를 변환하지 않고 기하 도형을 변환할 수 있습니다.

ID2D1TransformedGeometry 개체 만들기

ID2D1TransformedGeometry를 만들려면 ID2D1Factory::CreateTransformedGeometry 메서드를 호출합니다.

Direct2D 기하 도형은 변경할 수 없으며 ID2D1Factory에서 만든 디바이스 독립적 리소스입니다. 일반적으로 기하 도형을 한 번 만들고 애플리케이션의 수명 동안 또는 수정해야 할 때까지 유지해야 합니다. 디바이스 독립적 및 디바이스 종속 리소스에 대한 자세한 내용은 리소스 개요를 참조하세요.

예제

다음 예제에서는 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용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 d2d1.h

추가 정보

ID2D1Geometry