如何繪製和填滿基本圖形
本主題描述如何繪製基本圖形。 ID2D1RenderTarget 介面提供勾勒和填充橢圓形、矩形和線條的方法。 下列範例示範如何建立和繪製橢圓形。
本主題包含下列各節:
使用實心筆劃繪製橢圓形的輪廓
若要繪製橢圓形的外框, 您可以定義筆刷(例如 ID2D1SolidColorBrush 或 ID2D1LinearGradientBrush),以繪製外框,以及描述橢圓形位置和維度的 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物件,並使用它們搭配 DrawGeometry 和 FillGeometry 方法。 如需詳細資訊,請參閱 Geometries 概觀。
相關主題