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
- Zeichnen einer Ellipse mit gestricheltem Strich
- Zeichnen und Füllen einer Ellipse
- Zeichnen komplexerer Shapes
- Zugehörige Themen
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.
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.
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.
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.
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.
Zugehörige Themen