Dela via


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 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.

illustration av en ellips med en solid linje

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.

bild av en ellips med en streckad linje

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.

bild av en ellips med en streckad linje och sedan fylld med en helgrå färg

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.

bild av en ellips fylld med en helgrå färg och sedan konturerad med en streckad linje

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.

Översikt över geometrier

översikt över penslar