如何繪製和填滿基本圖形

本主題描述如何繪製基本圖形。 ID2D1RenderTarget介面提供大綱和填滿省略號、矩形和線條的方法。 下列範例示範如何建立和繪製橢圓形。

本主題包含下列幾節:

使用實心筆劃繪製橢圓形的外框

若要繪製橢圓形的外框,您可以定義筆刷 (,例如 ID2D1SolidColorBrushID2D1LinearGradientBrush) 繪製大綱,以及用來描述橢圓形位置和維度的 D2D1_ELLIPSE ,然後將這些物件傳遞至 ID2D1RenderTarget::D rawEllipse 方法。 下列範例會建立黑色純色筆刷,並將它儲存在m_spBlackBrush類別成員中。

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

下一個範例會定義 D2D1_ELLIPSE ,並將它與上一個範例中定義的筆刷搭配使用,以繪製橢圓形的外框。 此範例會產生下圖所示的輸出。

具有實心筆劃的省略號圖例

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

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

使用虛線筆劃繪製橢圓形

上述範例使用一般筆劃。 您可以藉由建立 ID2D1StrokeStyle,以數種方式修改筆劃的外觀。 ID2D1StrokeStyle可讓您在筆劃的開頭和結尾指定圖形,以及它是否有虛線圖樣等等。 下列範例會建立描述虛線筆劃的 ID2D1StrokeStyle 。 此範例使用預先定義的虛線圖樣 ,D2D1_DASH_STYLE_DASH_DOT_DOT,但您也可以指定自己的虛線圖樣。

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

下一個範例會搭配 DrawEllipse 方法使用筆劃樣式。 此範例會產生下圖所示的輸出。

含虛線筆劃的橢圓形圖例

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

繪製和填滿橢圓形

若要繪製橢圓形的內部,請使用 FillEllipse 方法。 下列範例會使用 DrawEllipse 方法來概述橢圓形,然後使用 FillEllipse 方法來繪製其內部。 此範例會產生下圖所示的輸出。

含虛線筆劃的省略號圖例,然後填滿純灰色

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

下一個範例會先填滿橢圓形,然後繪製其外框。 此範例會產生下圖所示的輸出。

以純灰色填滿橢圓形的圖例,然後以虛線筆劃外框

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

這些範例已省略程式碼。

繪製更複雜的圖形

若要繪製更複雜的圖形,您可以定義 ID2D1Geometry 物件,並將它們與 DrawGeometryFillGeometry 方法搭配使用。 如需詳細資訊,請參閱 幾何概觀

幾何概觀

筆刷概觀