Zeichnen und Füllen einer einfachen Form
In diesem Thema wird beschrieben, wie eine einfache Form gezeichnet wird. Die ID2D1RenderTarget-Schnittstelle stellt Methoden zum Gliederung und Auffüllen von Ellipsen, Rechtecke und Linien bereit. Die folgenden Beispiele zeigen, wie eine Ellipse erstellt und gezeichnet wird.
Dieses Thema enthält folgende Abschnitte:
- Zeichnen der Kontur einer Ellipse mit einem Vollstrich
- Zeichnen einer Ellipse mit einem gestrichelten Strich
- Zeichnen und Füllen einer Ellipse
- Zeichnen komplexerer Formen
- Zugehörige Themen
Zeichnen der Kontur einer Ellipse mit einem Vollstrich
Um den Umriss einer Ellipse zu zeichnen, definieren Sie einen Pinsel (z. B. eine ID2D1SolidColorBrush oder ID2D1LinearGradientBrush)zum Zeichnen der Gliederung und eine 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 Volltonfarbpinsel 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 verwendet, um die Kontur einer Ellipse zu zeichnen. In diesem Beispiel wird die in der folgenden Abbildung gezeigte Ausgabe erzeugt.

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 einem gestrichelten Strich
Im vorherigen Beispiel wurde ein einfacher Strich verwendet. Sie können das Aussehen eines Strichs auf verschiedene Weise ändern, indem Sie eine ID2D1StrokeStyleerstellen. Mit ID2D1StrokeStyle können Sie die Form am Anfang und Ende eines Strichs angeben, ob sie über ein Bindestrichmuster verfügt usw. Im folgenden Beispiel wird ein ID2D1StrokeStyle-Objekt erstellt, das einen gestrichelten Strich beschreibt. In diesem Beispiel wird ein vordefiniertes Bindestrichmuster verwendet, D2D1 _ DASH _ STYLE _ DASH _ DOT DOT _ .Sie können aber 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 gezeigte Ausgabe erzeugt.

m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
Zeichnen und Füllen einer Ellipse
Um das Innere einer Ellipse zu zeichnen, verwenden Sie die FillEllipse-Methode. Im folgenden Beispiel wird die DrawEllipse-Methode verwendet, um die Ellipse zu umranden, und anschließend wird die FillEllipse-Methode verwendet, um ihr Innere zu zeichnen. In diesem Beispiel wird die in der folgenden Abbildung gezeigte Ausgabe erzeugt.

m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
Im nächsten Beispiel wird zuerst die Ellipse ausgefüllt und dann die Kontur zeichnet. In diesem Beispiel wird die in der folgenden Abbildung gezeigte Ausgabe erzeugt.

m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
Code wurde in diesen Beispielen ausgelassen.
Zeichnen komplexerer Formen
Um komplexere Formen zu zeichnen, definieren Sie ID2D1Geometry-Objekte und verwenden sie mit den DrawGeometry- und FillGeometry-Methoden. Weitere Informationen finden Sie in der Geometrieübersicht.