共用方式為


如何繪製和填滿基本圖形

本主題描述如何繪製基本圖形。 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 方法。 如需詳細資訊,請參閱 Geometries 概觀

幾何概觀

筆刷概觀