Come disegnare e riempire una forma di base
In questo argomento viene descritto come disegnare una forma di base. L'interfaccia ID2D1RenderTarget fornisce metodi per delineare e riempire ellissi, rettangoli e linee. Negli esempi seguenti viene illustrato come creare e disegnare un'ellisse.
Questo argomento contiene le sezioni seguenti:
- Disegnare il contorno di un'ellisse con un tratto solido
- Disegnare un'ellisse con un tratto tratteggiato
- Disegnare e riempire un'ellisse
- Disegnare Forme Più Complesse
- argomenti correlati
Disegnare il contorno di un'ellisse con un tratto solido
Per disegnare il contorno di un'ellisse, si definisce un pennello (ad esempio un ID2D1SolidColorBrush o ID2D1LinearGradientBrush) per disegnare la struttura e un D2D1_ELLIPSE per descrivere la posizione e le dimensioni dell'ellisse, quindi passare questi oggetti al metodo ID2D1RenderTarget::D rawEllipse. L'esempio seguente crea un pennello a tinta unita nera e lo archivia nel membro della classe m_spBlackBrush.
hr = m_pRenderTarget->CreateSolidColorBrush(
D2D1::ColorF(D2D1::ColorF::Black),
&m_pBlackBrush
);
L'esempio seguente definisce un D2D1_ELLIPSE e lo usa con il pennello definito nell'esempio precedente per disegnare il contorno di un'ellisse. In questo esempio viene generato l'output illustrato nella figura seguente.
D2D1_ELLIPSE ellipse = D2D1::Ellipse(
D2D1::Point2F(100.f, 100.f),
75.f,
50.f
);
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f);
Disegnare un'ellisse con un tracciato tratteggiato
Nell'esempio precedente è stato utilizzato un tratto semplice. È possibile modificare l'aspetto di un tratto in diversi modi creando un ID2D1StrokeStyle. Il ID2D1StrokeStyle consente di specificare la forma all'inizio e alla fine di un tratto, se ha un motivo a tratteggio, eccetera. L'esempio seguente crea un ID2D1StrokeStyle che descrive un tratto tratteggiato. In questo esempio viene usato un modello trattino predefinito, D2D1_DASH_STYLE_DASH_DOT_DOT, ma è anche possibile specificare il proprio.
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);
Nell'esempio seguente viene utilizzato lo stile del tratto con il metodo DrawEllipse. In questo esempio viene generato l'output illustrato nella figura seguente.
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
Disegnare e riempire un'ellisse
Per disegnare l'interno di un'ellisse, utilizzare il metodoFillEllipse. Nell'esempio seguente viene utilizzato il metodo DrawEllipse per delineare l'ellisse, quindi viene utilizzato il metodo FillEllipse per disegnare l'interno. In questo esempio viene generato l'output illustrato nella figura seguente.
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
Nel prossimo esempio viene prima riempita l'ellisse, quindi ne viene disegnato il contorno. In questo esempio viene generato l'output illustrato nella figura seguente.
m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
Il codice è stato omesso da questi esempi.
Disegno di forme più complesse
Per disegnare forme più complesse, definire oggetti ID2D1Geometry e usarli con i metodiDrawGeometrye FillGeometry. Per ulteriori informazioni, vedere la panoramica delle geometrie .
Argomenti correlati
-
Panoramica dei pennelli