当前位置:C++技术网 > 资讯 > GDI+学习记录--路径渐变画刷

GDI+学习记录--路径渐变画刷

更新时间:2015-10-05 19:18:12浏览次数:1+次

    同线性渐变画刷相比,路径渐变画刷的最大特点在于:线性渐变画刷的渐变方向比较单一(水平,垂直,固定角度),而路径渐变画刷的渐变方向是从路径中央到路径边缘,是一种呈发散状的渐变,所以在使用路径渐变画刷填充目标区域前,处理需要指定对象外,还要指定路径的中心点颜色以及路径边界的颜色。

下面为路径渐变画刷的基本使用,构建一个中心点为红色的五角星:


private void Form1_Paint(object sender, PaintEventArgs e)  
       {  
           Graphics g = e.Graphics;  
           g.Clear(Color.White);  
  
           //构造五星的10个边的端点坐标  
           Point[] points =  
           {  
               new Point(75,0),new Point(100,50),  
               new Point(150,50),new Point(112,75),  
               new Point(150,150),new Point(75,100),  
               new Point(0,150),new Point(37,75),  
               new Point(0,50),new Point(50,50),  
               new Point(75,0)  
  
           };  
  
           //创建路径  
           GraphicsPath path = new GraphicsPath();  
  
           //在路径中添加直线  
           path.AddLines(points);  
  
           //创建路径渐变画刷  
           PathGradientBrush pathBrush = new PathGradientBrush(path);  
  
           //设置中心点颜色  
           pathBrush.CenterColor = Color.Red;  
  
           //设置每个端点的色彩  
           Color[] colors =   
          {  
             Color.Black,Color.Green,  
             Color.Blue,Color.White,  
             Color.Black,Color.Green,  
             Color.Blue,Color.White,  
             Color.Black,Color.Green  
           };  
  
           //设置路径渐变画刷的边缘色  
           pathBrush.SurroundColors = colors;  
  
  
           g.TranslateTransform(100,100);  
           g.FillPath(pathBrush,path);  
  
           //显示释放资源  
           path.Dispose();  
           pathBrush.Dispose();  
       } 
效果图:


原文摘自CSDN