Interfaz ID2D1TransformedGeometry (d2d1.h)

Representa una geometría que se ha transformado.

Herencia

La interfaz ID2D1TransformedGeometry hereda de ID2D1Geometry. ID2D1TransformedGeometry también tiene estos tipos de miembros:

Métodos

La interfaz ID2D1TransformedGeometry tiene estos métodos.

 
ID2D1TransformedGeometry::GetSourceGeometry

Recupera la geometría de origen de este objeto geometry transformado.
ID2D1TransformedGeometry::GetTransform

Recupera la matriz utilizada para transformar la geometría de origen del objeto ID2D1TransformedGeometry.

Comentarios

El uso de UN ID2D1TransformedGeometry en lugar de transformar una geometría mediante la transformación de un destino de representación le permite transformar una geometría sin transformar su trazo.

Creación de objetos ID2D1TransformedGeometry

Para crear un ID2D1TransformedGeometry, llame al método ID2D1Factory::CreateTransformedGeometry .

Las geometrías de Direct2D son recursos inmutables e independientes del dispositivo creados por ID2D1Factory. En general, debe crear geometrías una vez y conservarlas durante la vida útil de la aplicación, o hasta que deban modificarse. Para obtener más información sobre los recursos independientes del dispositivo y dependientes del dispositivo, consulte Introducción a los recursos.

Ejemplos

En el ejemplo siguiente se crea un ID2D1RectangleGeometry y, a continuación, se dibuja sin transformarlo. Genera la salida que se muestra en la ilustración siguiente.

Ilustración de un rectángulo
hr = m_pD2DFactory->CreateRectangleGeometry(
    D2D1::RectF(150.f, 150.f, 200.f, 200.f),
    &m_pRectangleGeometry
    );

En el ejemplo siguiente se usa el destino de representación para escalar la geometría por un factor de 3 y, a continuación, se dibuja. En la ilustración siguiente se muestra el resultado de dibujar el rectángulo sin la transformación y con la transformación; observa que el trazo es más grueso después de la transformación, aunque el grosor del trazo sea 1.

Ilustración de un rectángulo más pequeño dentro de un rectángulo mayor con un trazo más grueso
// 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);

En el ejemplo siguiente se usa el método CreateTransformedGeometry para escalar la geometría por un factor de 3 y, a continuación, se dibuja. Genera la salida que se muestra en la ilustración siguiente. Observe que, aunque el rectángulo es mayor, su trazo no ha aumentado.

Ilustración de un rectángulo más pequeño dentro de un rectángulo mayor con el mismo trazo
 // 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 Value
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d2d1.h

Consulte también

ID2D1Geometry