Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo dibujar una forma básica. La interfaz ID2D1RenderTarget proporciona métodos para la delimitación y el relleno de elipses, rectángulos y líneas. En los ejemplos siguientes se muestra cómo crear y dibujar una elipse.
Este tema contiene las secciones siguientes:
- Dibujar el contorno de una elipse con un trazo sólido
- Dibujar una elipse con un trazo discontinuo
- Dibujar y rellenar una elipse
- Dibujar formas más complejas
- Temas relacionados
Dibujar el contorno de una elipse con un trazo sólido
Para dibujar el contorno de una elipse, defina un pincel (como ID2D1SolidColorBrush o ID2D1LinearGradientBrush) para pintar el contorno y un D2D1_ELLIPSE para describir la posición y las dimensiones de la elipse, pase estos objetos al método ID2D1RenderTarget::D rawEllipse . En el ejemplo siguiente se crea un pincel de color sólido negro y se almacena en el miembro de clase m_spBlackBrush.
hr = m_pRenderTarget->CreateSolidColorBrush(
D2D1::ColorF(D2D1::ColorF::Black),
&m_pBlackBrush
);
En el ejemplo siguiente se define un D2D1_ELLIPSE y se usa con el pincel definido en el ejemplo anterior para dibujar el contorno de una elipse. En este ejemplo se genera la salida que se muestra en la ilustración siguiente.
D2D1_ELLIPSE ellipse = D2D1::Ellipse(
D2D1::Point2F(100.f, 100.f),
75.f,
50.f
);
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f);
Dibujar una elipse con un trazo discontinuo
En el ejemplo anterior se usó un trazo simple. Puede modificar el estilo de un trazo de varias maneras creando un ID2D1StrokeStyle. El ID2D1StrokeStyle le permite indicar la forma al principio y al final de un trazo, si tiene un patrón de línea discontinua, etc. El siguiente ejemplo crea un ID2D1StrokeStyle que describe un trazo discontinuo. En este ejemplo se usa un patrón de rayas predefinido, D2D1_DASH_STYLE_DASH_DOT_DOT, pero también puede definir el suyo propio.
D2D1_STROKE_STYLE_PROPERTIES strokeStyleProperties = D2D1::StrokeStyleProperties(
D2D1_CAP_STYLE_FLAT, // The start cap.
D2D1_CAP_STYLE_FLAT, // The end cap.
D2D1_CAP_STYLE_TRIANGLE, // The dash cap.
D2D1_LINE_JOIN_MITER, // The line join.
10.0f, // The miter limit.
D2D1_DASH_STYLE_DASH_DOT_DOT, // The dash style.
0.0f // The dash offset.
);
hr = m_pDirect2dFactory->CreateStrokeStyle(strokeStyleProperties, NULL, 0, &m_pStrokeStyle);
En el ejemplo siguiente se usa el estilo de trazo con el método DrawEllipse. En este ejemplo se genera la salida que se muestra en la ilustración siguiente.
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
Dibujar y rellenar una elipse
Para pintar el interior de una elipse, use el método FillEllipse . En el ejemplo siguiente se usa el método DrawEllipse para describir la elipse y, a continuación, se usa el método FillEllipse para pintar su interior. En este ejemplo se genera la salida que se muestra en la ilustración siguiente.
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
En el ejemplo siguiente se rellena primero la elipse y, a continuación, se dibuja su contorno. En este ejemplo se genera la salida que se muestra en la ilustración siguiente.
m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
El código se ha omitido en estos ejemplos.
Dibujar formas más complejas
Para dibujar formas más complejas, defina objetos ID2D1Geometry y úselos con los métodos DrawGeometry y FillGeometry . Para obtener más información, consulte Información general sobre geometrías.
Temas relacionados