Rita och fylla en grundläggande form
I det här avsnittet beskrivs hur du ritar en grundläggande form. Gränssnittet ID2D1RenderTarget innehåller metoder för att beskriva och fylla ellipser, rektanglar och linjer. I följande exempel visas hur du skapar och ritar en ellips.
Det här avsnittet innehåller följande avsnitt:
- Rita konturen av en Ellips med ett fast slag
- Rita en Ellips med en streckad linje
- Rita och fyll en Ellips
- Rita Mer Komplexa Figurer
- Relaterade ämnen
Rita konturen av en Ellips med en heldragen linje
Om du vill rita konturen av en ellips, du definierar en pensel (till exempel en ID2D1SolidColorBrush eller ID2D1LinearGradientBrush) för att måla konturen och en D2D1_ELLIPSE för att beskriva ellipsens position och dimensioner och sedan skicka dessa objekt till ID2D1RenderTarget::D rawEllipse metod. I följande exempel skapas en svart enfärgad pensel och lagras i klassmedlemmen m_spBlackBrush.
hr = m_pRenderTarget->CreateSolidColorBrush(
D2D1::ColorF(D2D1::ColorF::Black),
&m_pBlackBrush
);
Nästa exempel definierar en D2D1_ELLIPSE och använder den med penseln som definierades i föregående exempel för att rita konturen av en ellips. Det här exemplet genererar utdata som visas i följande bild.
D2D1_ELLIPSE ellipse = D2D1::Ellipse(
D2D1::Point2F(100.f, 100.f),
75.f,
50.f
);
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f);
Rita en Ellips med en streckad linje
I föregående exempel användes en enkel linje. Du kan ändra utseendet på en linje på flera sätt genom att skapa en ID2D1StrokeStyle. Med ID2D1StrokeStyle- kan du ange formen i början och slutet av ett slag, om den har ett streckmönster och så vidare. I följande exempel skapas en ID2D1StrokeStyle som beskriver en streckad linjestil. I det här exemplet används ett fördefinierat streckmönster, D2D1_DASH_STYLE_DASH_DOT_DOT, men du kan också ange ett eget.
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);
I nästa exempel används streckstil med metoden DrawEllipse. Det här exemplet genererar utdata som visas i följande bild.
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
Rita och fyll en Ellips
Om du vill måla insidan av en ellips använder du metoden FillEllipse. I följande exempel används metoden DrawEllipse för att beskriva ellipsen och använder sedan metoden FillEllipse för att måla dess inre. Det här exemplet genererar utdata som visas i följande bild.
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
I nästa exempel fylls ellipsen först och sedan ritas dess kontur. Det här exemplet genererar utdata som visas i följande bild.
m_pRenderTarget->FillEllipse(ellipse, m_pSilverBrush);
m_pRenderTarget->DrawEllipse(ellipse, m_pBlackBrush, 10.f, m_pStrokeStyle);
Koden har utelämnats från dessa exempel.
Rita mer komplexa former
Om du vill rita mer komplexa former definierar du ID2D1Geometry-objekt och använder dem med metoderna DrawGeometry och FillGeometry. Mer information finns i geometriöversikt.
Relaterade ämnen
-
Översikt över geometrier
-
översikt över penslar