Compartilhar via


Interface ID2D1TransformedGeometry (d2d1.h)

Representa uma geometria que foi transformada.

Herança

A interface ID2D1TransformedGeometry herda de ID2D1Geometry. ID2D1TransformedGeometry também tem estes tipos de membros:

Métodos

A interface ID2D1TransformedGeometry tem esses métodos.

 
ID2D1TransformedGeometry::GetSourceGeometry

Recupera a geometria de origem desse objeto geometry transformado.
ID2D1TransformedGeometry::GetTransform

Recupera a matriz usada para transformar a geometria de origem do objeto ID2D1TransformedGeometry.

Comentários

Usar um ID2D1TransformedGeometry em vez de transformar uma geometria usando a transformação de um destino de renderização permite transformar uma geometria sem transformar seu traço.

Criando objetos ID2D1TransformedGeometry

Para criar um método ID2D1TransformedGeometry, chame o método ID2D1Factory::CreateTransformedGeometry .

Direct2D geometrias são recursos imutáveis e independentes do dispositivo criados por ID2D1Factory. Em geral, você deve criar geometrias uma vez e retê-las durante a vida útil do aplicativo ou até que elas precisem ser modificadas. Para obter mais informações sobre recursos independentes do dispositivo e dependentes do dispositivo, consulte a Visão geral de recursos.

Exemplos

O exemplo a seguir cria um ID2D1RectangleGeometry e, em seguida, desenha-o sem transformá-lo. Ele produz a saída mostrada na ilustração a seguir.

Ilustração de um retângulo
hr = m_pD2DFactory->CreateRectangleGeometry(
    D2D1::RectF(150.f, 150.f, 200.f, 200.f),
    &m_pRectangleGeometry
    );

O próximo exemplo usa o destino de renderização para dimensionar a geometria por um fator de 3 e, em seguida, desenha-a. A ilustração a seguir mostra o resultado do desenho do retângulo sem a transformação e com a transformação; observa que o traço é mais grosso após a transformação, mesmo que a espessura do traço seja 1.

Ilustração de um retângulo menor dentro de um retângulo maior com um traço mais grosso
// 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);

O próximo exemplo usa o método CreateTransformedGeometry para dimensionar a geometria por um fator de 3 e, em seguida, desenha-a. Ele produz a saída mostrada na ilustração a seguir. Observe que, embora o retângulo seja maior, seu traço não aumentou.

Ilustração de um retângulo menor dentro de um retângulo maior com o mesmo traço
 // 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);

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Platform Update para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho d2d1.h

Confira também

ID2D1Geometry