Come disegnare e riempire una forma di base
Questo argomento descrive come disegnare una forma di base. L'interfaccia ID2D1RenderTarget fornisce metodi per la struttura e il riempimento di puntini di sospensione, rettangoli e linee. Negli esempi seguenti viene illustrato come creare e disegnare un'ellisse.
In questo argomento sono incluse le sezioni seguenti:
- Disegnare la struttura di un oggetto Ellipse con un tratto solido
- Disegna un'ellisse con un tratto tratteggiato
- Disegnare e riempire un'ellisse
- Disegno di forme più complesse
- Argomenti correlati
Disegnare la struttura di un oggetto Ellipse con un tratto solido
Per disegnare la struttura di un'ellisse, si definisce un pennello (ad esempio 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 . Nell'esempio seguente viene creato 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 successivo definisce un D2D1_ELLIPSE e lo usa con il pennello definito nell'esempio precedente per disegnare la struttura 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);
Disegna un'ellisse con un tratto tratteggiato
L'esempio precedente ha usato un tratto normale. È possibile modificare l'aspetto di un tratto in diversi modi creando un ID2D1StrokeStyle. ID2D1StrokeStyle consente di specificare la forma all'inizio e alla fine di un tratto, se ha un modello trattino e così via. Nell'esempio seguente viene creato un ID2D1StrokeStyle che descrive un tratto trattino. In questo esempio viene usato un modello di 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 successivo viene usato 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, si usa il metodo FillEllipse . Nell'esempio seguente viene usato il metodo DrawEllipse per strutturare i puntini di sospensione, quindi viene usato 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);
L'esempio successivo riempie prima i puntini di sospensione, quindi disegna la struttura. 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 gli oggetti ID2D1Geometry e usarli con i metodi DrawGeometry e FillGeometry . Per altre informazioni, vedere Panoramica delle geometrie.
Argomenti correlati