Direct2D中Brushes Overview!笔刷~还是笔刷!

Brush Types Example

 

Win7中Direct2D的笔刷很丰富,效果也较以前买的版本漂亮了很多,在这个例题中,我们尝试绘制其中的几个笔刷:

 

以上几个笔刷分别是纯色,渐进色笔刷和辐射型笔刷。

 

1)纯色笔刷

Direct2D中Brushes Overview!笔刷~还是笔刷!_第1张图片

 Illustration of a linear gradient brush with four stops along the axis

 

纯色笔刷主要绘制一个纯色,其中系统帮我们定义好了很多的颜色,以下是其中的一部分:

 

Illustration of predefined colors

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

ColorF()函数主要提供一个颜色值,这个函数使用起来传入的参数比较丰富,也比较方便,大致有以下几种:

ColorF(FLOAT, FLOAT, FLOAT, FLOAT)

ColorF(UINT32, FLOAT)

其中可以设定这个笔刷的半透明值,默认的是1.0f

 

2)渐变笔刷

Direct2D中Brushes Overview!笔刷~还是笔刷!_第2张图片

渐变笔刷主要是绘制一个区域线性的色彩变化,其中有一个很重要的概念就是D2D1_GRADIENT_STOP

D2D1_GRADIENT_STOP 是一个线性变化色盘,这个色斑中包含了渐变色的数据设置。

通过修改STOP就可以控制笔刷渐变色的过渡

另外一个重要概念就是D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES

他告诉我们,渐进式笔刷是沿着哪个方向进行色彩过渡的。根据我们填入的值,他会产生不同的直线结构:

Direct2D中Brushes Overview!笔刷~还是笔刷!_第3张图片

Illustration of four different gradient axes across the same rectangle

3>辐射渐变笔刷

 

Direct2D中Brushes Overview!笔刷~还是笔刷!_第4张图片

 

辐射型渐变笔刷也是通过D2D1_GRADIENT_STOP来控制颜色渐变的,作为辐射渐变笔刷是通过RadialGradientBrushProperties设定渐变位置:

 

Direct2D中Brushes Overview!笔刷~还是笔刷!_第5张图片

Illustration of the same circle painted with radial gradient brushes with different origin offsets

你可能感兴趣的:(Direct2D中Brushes Overview!笔刷~还是笔刷!)