Métodos ID2D1Factory::CreateTransformedGeometry

Transforma la geometría especificada y almacena el resultado como un objeto ID2D1TransformedGeometry .

Lista de sobrecarga

Método Descripción
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F*,ID2D1TransformedGeometry**) Transforma la geometría especificada y almacena el resultado como un objeto ID2D1TransformedGeometry .
CreateTransformedGeometry(ID2D1Geometry*,D2D_MATRIX_3X2_F,ID2D1TransformedGeometry&**) Transforma la geometría especificada y almacena el resultado como un objeto ID2D1TransformedGeometry .

Comentarios

Al igual que otros recursos, una geometría transformada hereda el espacio de recursos y la directiva de subprocesos del generador que lo creó. Este objeto es inmutable.

Cuando se pulsa una geometría transformada con el método DrawGeometry , el ancho del trazo no se ve afectado por la transformación aplicada a la geometría. El ancho del trazo solo se ve afectado por la transformación del mundo.

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
Encabezado
D2d1.h
Biblioteca
D2d1.lib
Archivo DLL
D2d1.dll

Consulte también

ID2D1Factory