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.
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 |
---|---|
Encabezado |
|
Biblioteca |
|
Archivo DLL |
|