如何繪製和填滿基本圖形
本主題描述如何繪製基本圖形。 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 方法搭配使用。 如需詳細資訊,請參閱 幾何概觀。
相關主題