Freigeben über


Zeichnen und Füllen einer einfachen Form

In diesem Thema wird beschrieben, wie Sie ein einfaches Shape zeichnen. Die ID2D1RenderTarget-Schnittstelle bietet Methoden zum Skizzieren und Füllen von Auslassungspunkten, Rechtecken und Zeilen. Die folgenden Beispiele zeigen, wie Sie eine Ellipse erstellen und zeichnen.

Dieses Thema enthält folgende Abschnitte:

Zeichnen sie den Umriss einer Ellipse mit einem Vollstrich

Um den Umriss einer Ellipse zu zeichnen, definieren Sie einen Pinsel (z. B. id2D1SolidColorBrush oder ID2D1LinearGradientBrush) zum Malen der Gliederung und einen D2D1_ELLIPSE zum Beschreiben der Position und Dimensionen der Ellipse und übergeben diese Objekte dann an die ID2D1RenderTarget::D rawEllipse-Methode . Im folgenden Beispiel wird ein schwarzer Farbpinsel erstellt und im m_spBlackBrush Klassenmember gespeichert.

hr = m_pRenderTarget->CreateSolidColorBrush(
    D2D1::ColorF(D2D1::ColorF::Black),
    &m_pBlackBrush
    );

Im nächsten Beispiel wird eine D2D1_ELLIPSE definiert und mit dem im vorherigen Beispiel definierten Pinsel der Umriss einer Ellipse gezeichnet. In diesem Beispiel wird die in der folgenden Abbildung dargestellte Ausgabe erzeugt.

Abbildung einer Ellipse mit vollfarbigem Strich

D2D1_ELLIPSE ellipse = D2D1::Ellipse(
    D2D1::Point2F(100.f, 100.f),
    75.f,
    50.f
    );

m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f);

Zeichnen einer Ellipse mit gestricheltem Strich

Im vorherigen Beispiel wurde ein einfacher Strich verwendet. Sie können das Aussehen eines Strichs auf verschiedene Arten ändern, indem Sie einen ID2D1StrokeStyle erstellen. Mit DEM ID2D1StrokeStyle können Sie die Form am Anfang und Ende eines Strichs angeben, ob sie ein Strichmuster aufweist usw. Im folgenden Beispiel wird ein ID2D1StrokeStyle erstellt, der einen gestrichelten Strich beschreibt. In diesem Beispiel wird ein vordefiniertes Bindestrichmuster verwendet, D2D1_DASH_STYLE_DASH_DOT_DOT, Aber Sie können auch ein eigenes angeben.

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);

Im nächsten Beispiel wird der Strichstil mit der DrawEllipse-Methode verwendet. In diesem Beispiel wird die in der folgenden Abbildung dargestellte Ausgabe erzeugt.

Abbildung einer Ellipse mit gestricheltem Strich

m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);

Zeichnen und Füllen einer Ellipse

Um das Innere einer Ellipse zu malen, verwenden Sie die FillEllipse-Methode . Im folgenden Beispiel wird die DrawEllipse-Methode verwendet, um die Auslassungspunkte zu skizzieren. Anschließend wird die FillEllipse-Methode verwendet, um das Innere zu zeichnen. In diesem Beispiel wird die in der folgenden Abbildung dargestellte Ausgabe erzeugt.

Abbildung einer Ellipse mit gestricheltem Strich und dann gefüllt mit einer durchfarbigen grauen Farbe

m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);

Im nächsten Beispiel wird zuerst die Auslassungspunkte ausgefüllt und dann deren Umriss gezeichnet. In diesem Beispiel wird die in der folgenden Abbildung dargestellte Ausgabe erzeugt.

Abbildung einer Ellipse, die mit einer durchfarbigen grauen Farbe gefüllt ist und dann mit einem gestrichelten Strich umrandet ist

m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);

Code wurde in diesen Beispielen weggelassen.

Zeichnen komplexerer Shapes

Um komplexere Formen zu zeichnen, definieren Sie ID2D1Geometry-Objekte und verwenden sie mit den Methoden DrawGeometry und FillGeometry . Weitere Informationen finden Sie in der Übersicht über Geometrien.

Übersicht über Geometrien

Übersicht über Pinsel