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.
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.
// 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.
// 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 |