以下是该结构的定义:
typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES {
D2D1_POINT_2F center;
D2D1_POINT_2F gradientOriginOffset;
FLOAT radiusX;
FLOAT radiusY;
} D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES;
这个结构有以下成员:
- center: 渐变的中心点坐标。
- gradientOriginOffset: 渐变原点相对于中心的偏移量。
- radiusX: 渐变的水平半径。
- radiusY: 渐变的垂直半径。
使用这个结构可以在创建径向渐变刷子时指定渐变的中心、原点偏移以及水平和垂直半径。
以下是一个使用 D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES 结构创建径向渐变刷子的简单示例:
#include <d2d1.h>
// 假设 pRenderTarget 是一个有效的 ID2D1RenderTarget 指针
ID2D1RenderTarget *pRenderTarget;
// 创建 D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES 结构
D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES radialGradientBrushProperties = {
D2D1::Point2F(100.0f, 100.0f), // 中心点坐标
D2D1::Point2F(0.0f, 0.0f), // 渐变原点偏移
50.0f, // 水平半径
30.0f // 垂直半径
};
// 使用 CreateRadialGradientBrush 方法创建径向渐变刷子
ID2D1GradientStopCollection *pGradientStopCollection; // 假设已经创建了渐变停止点集合
ID2D1RadialGradientBrush *pRadialGradientBrush;
pRenderTarget->CreateRadialGradientBrush(
radialGradientBrushProperties,
pGradientStopCollection,
&pRadialGradientBrush
);
// 使用生成的径向渐变刷子进行绘制
在实际使用中,请确保在调用相关绘图函数之前已经初始化了 Direct2D 环境,并适当处理可能的错误。
转载请注明出处:http://www.zyzy.cn/article/detail/25226/Win32 API/D2d1.h/D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES