Win32 API 中的 RadialGradientBrushProperties 函数实际上是结构体,而不是函数。这个结构体在 Direct2D 库的头文件 D2d1helper.h 中定义,用于描述径向渐变刷子的属性。

以下是 RadialGradientBrushProperties 结构体的定义:
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:渐变的 X 轴半径。

  •  radiusY:渐变的 Y 轴半径。


你可以使用这个结构体来创建径向渐变刷子,例如:
#include <d2d1.h>
#include <D2d1helper.h>

ID2D1RadialGradientBrush *pRadialGradientBrush = nullptr;
D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES radialGradientProperties;

// 设置径向渐变的属性
radialGradientProperties.center = D2D1::Point2F(100.0f, 100.0f);
radialGradientProperties.gradientOriginOffset = D2D1::Point2F(0.0f, 0.0f);
radialGradientProperties.radiusX = 50.0f;
radialGradientProperties.radiusY = 50.0f;

// 创建径向渐变刷子
pRenderTarget->CreateRadialGradientBrush(
    radialGradientProperties,
    gradientStops,
    gradientStopsCount,
    &pRadialGradientBrush
);

请注意,上述代码中的 pRenderTarget 和 gradientStops 都是示例变量,你需要根据你的实际代码中的渲染目标和渐变停止点进行调整。


转载请注明出处:http://www.zyzy.cn/article/detail/25453/Win32 API/D2d1helper.h/RadialGradientBrushProperties