用gdi+填充圆环或扇形问题

tsys2000 2009-05-08 03:46:08
我想用gdi+实现如下填充,不知道能不能实现.

从扇形的一条边到另一边的渐变.

不知道我说清楚没有.
...全文
595 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gz_qmc 2011-07-30
  • 打赏
  • 举报
回复
一个扇型
kiss_xiao0968 2010-08-13
  • 打赏
  • 举报
回复
11楼的渐变,用了多少个小扇形,哈哈~~~~~~~
tsys2000 2010-08-11
  • 打赏
  • 举报
回复
如果分成若干个子图形的话, 填充颜色是透明的,就不行了.
wxw0827 2010-06-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gz_qmc 的回复:]

[/Quote]

漂亮的很,
gz_qmc 2010-06-01
  • 打赏
  • 举报
回复
gz_qmc 2010-06-01
  • 打赏
  • 举报
回复
rover___ 2010-05-25
  • 打赏
  • 举报
回复
图像贴图不能实现?
gz_qmc 2010-05-25
  • 打赏
  • 举报
回复
补充2:
比较完美的方法是:

把扇形分成若干个小扇形
即把扇形角度等分成若干分
每一份都由三个区域组程
用区域方式圈定小扇形
计算过度颜色进行填充
gz_qmc 2010-05-25
  • 打赏
  • 举报
回复
补充:

这是示意的,如果要写成子程序需要把部分数据提处理
其中:x0,y0是圆心
r1,r2是大圆和小圆半径
th1,th2为开始和结束角度



gz_qmc 2010-05-25
  • 打赏
  • 举报
回复
不知道这是不是你要的

void CDDlg::DrawC(CPaintDC *dc)
{
CRect rect;
GetClientRect(&rect);
int x0=rect.Width()/2;
int y0=rect.Height()+100;

int C1=RGB(255,0,0);
int C2=RGB(0,0,255);
int x1,y1,x2,y2;
double th,r1=200.0,r2=400.0,c=0;

CPen *op,p;
p.CreatePen(0,1,RGB(0,0,0));
op=dc->SelectObject(&p);

for(th=3.14/4;th<3.14*3/4;th+=0.00157,c+=0.25)
{
x1=x0-(int)r1*cos(th);
y1=y0-(int)r1*sin(th);
x2=x0-(int)r2*cos(th);
y2=y0-(int)r2*sin(th);
p.DeleteObject();
p.CreatePen(0,2,RGB(255-(int)c,0,(int)c));
op=dc->SelectObject(&p);


dc->MoveTo(x1,y1);
dc->LineTo(x2,y2);
}
dc->SelectObject(op);
p.DeleteObject();
}
feifly789 2010-04-13
  • 打赏
  • 举报
回复
上面的代码不行啊,不是这个样子的,相差太远了
悟迟 2009-07-16
  • 打赏
  • 举报
回复
抄了一段,看看有用不
您可以采用渐变画刷填充一个图形,使得该图形可以从一个部分到另一部分由一种颜色渐变为其他颜色。例如,一个水平渐变画刷将使得从左至右颜色渐变。下面的例子将采用水平渐变画刷填充一个椭圆,从左至右颜色由蓝色逐渐变为绿色。
LinearGradientBrush myLinearGradientBrush(
myRect,
Color(255, 0, 0, 255),
Color(255, 0, 255, 0),
LinearGradientModeHorizontal);
myGraphics.FillEllipse(&myLinearGradientBrush, myRect);

tsys2000 2009-07-16
  • 打赏
  • 举报
回复
有知道的吗?
aaaa3105563 2009-05-08
  • 打赏
  • 举报
回复
设置定时 控制时间 然后绘制
hendriclee 2009-05-08
  • 打赏
  • 举报
回复
似乎可以,指定Brush

19,468

社区成员

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

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