GDI+的多色线性渐变画刷,能不能从下往上画

clever101
博客专家认证
2010-07-30 02:18:42

Gdiplus::Rect rc(0,0,100,100);

Gdiplus::LinearGradientBrush brush(rc,RGB(255,0,0,255),RGB

(255,255,0,0),LinearGradientModeVertical);


Gdiplus::REAL pos[] = {0.0f,0.3f,0.7f,1.0f};

Gdiplus::Color cor[] = {Gdiplus::Color(255,0,0,255),Gdiplus::Color(255,0,255,0),
Gdiplus::Color(255,255,255,0),Gdiplus::Color(255,255,0,0)};

brush.SetInterpolation(&cor[0],&pos[0],4);

CDC *pDC = GetDC();

Gdiplus::Graphics draw = Gdiplus::Graphics::FromHDC(pDC->GetSafeHdc();

draw.FillRectangle(&brush,rc);

ReleaseDC(pDC);



现在的效果是对话框上的区域Gdiplus::Rect rc(0,0,100,100)从上到下从蓝色渐变到绿

色、黄色最后到红色。现在我想要的效果是对话框上的区域Gdiplus::Rect rc(0,0,100,100)从

下到上从蓝色渐变到绿色、黄色最后到红色。。

之前oshj大虾告诉我可以翻转画刷,如:


Matrix mtx( 1,0.0F,0.0F,-1,pt.x,pt.y ); // pt为Gdiplus::Rect rc(0,0,100,100)的中心点
brush.SetTransform( &mtx );


但是我试了一下,并没有达到我的效果。

...全文
357 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ningfc1024 2012-12-18
  • 打赏
  • 举报
回复
引用 7 楼 ningfc1024 的回复:
第四个参数是绘制的方向,设为180.
刚说错了。 用 LinearGradientBrush.RotateTransform 方法可以旋转,参数是旋转的角度。
ningfc1024 2012-12-18
  • 打赏
  • 举报
回复
第四个参数是绘制的方向,设为180.
xwhmm 2012-11-21
  • 打赏
  • 举报
回复
把颜色倒过来行吗?
clever101 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 joe_8086 的回复:]

不知道把窗口的映射坐标颠倒一下能不能够解决你的这个问题。
[/Quote]

好像可以。不过我感觉变换坐标挺麻烦的,而且会影响到其它的绘图操作。
  • 打赏
  • 举报
回复
不知道把窗口的映射坐标颠倒一下能不能够解决你的这个问题。
clever101 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwgddx 的回复:]

Gdiplus::Color cor[] = {Gdiplus::Color(255,0,0,255),Gdiplus::Color(255,0,255,0),
Gdiplus::Color(255,255,255,0),Gdiplus::Color(255,255,0,0)};
这里面RGB对换下
[/Quote]

兄弟,没这么简单的。简单变换的话变化趋势就和之前完全改变了。
xiuxianshen 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwgddx 的回复:]
Gdiplus::Color cor[] = {Gdiplus::Color(255,0,0,255),Gdiplus::Color(255,0,255,0),
Gdiplus::Color(255,255,255,0),Gdiplus::Color(255,255,0,0)};
这里面RGB对换下
[/Quote]
+1
直接修改矩形4个角点的颜色不就直接翻转了
wwgddx 2010-07-30
  • 打赏
  • 举报
回复
Gdiplus::Color cor[] = {Gdiplus::Color(255,0,0,255),Gdiplus::Color(255,0,255,0),
Gdiplus::Color(255,255,255,0),Gdiplus::Color(255,255,0,0)};
这里面RGB对换下

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧