zoukankan      html  css  js  c++  java
  • GdiPlus[18]: IGPPathGradientBrush 之 CenterColor、SurroundColors


    最简单的 IGPPathGradientBrush 就是有一个中心颜色和一组周边颜色的渐变.

    这里牵扯到 CenterColor、SurroundColors 属性和 SetSurroundColors 方法.

    测试一效果图:



    测试一代码:

    //使用 SetSurroundColors 方法设置周边色组:
    uses GdiPlus, GdiPlusHelpers;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Brush: IGPPathGradientBrush;
      Rect: TGPRect;
      Path: IGPGraphicsPath;
    begin
      Rect.Initialize(10, 10, 200, 150);
      Path := TGPGraphicsPath.Create;
      Path.AddEllipse(Rect);
    
      Brush := TGPPathGradientBrush.Create(Path);
      Brush.CenterColor := $FF00FF00;
      Brush.SetSurroundColors([$FF000000]);
    
      Canvas.ToGPGraphics.FillEllipse(Brush, Rect);
    end;
    
    //使用 SurroundColors 属性设置周边色组:
    uses GdiPlus, GdiPlusHelpers;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Brush: IGPPathGradientBrush;
      Rect: TGPRect;
      Path: IGPGraphicsPath;
      Colors: IGPColors;
    begin
      Rect.Initialize(10, 10, 200, 150);
      Path := TGPGraphicsPath.Create;
      Path.AddEllipse(Rect);
    
      Brush := TGPPathGradientBrush.Create(Path);
      Brush.CenterColor := $FF00FF00;
    
      Colors := TGPArray<TGPColor>.Create(1);
      Colors[0] := $FF000000;
      Brush.SurroundColors := Colors;
    
      Canvas.ToGPGraphics.FillEllipse(Brush, Rect);
    end;
    

    测试二效果图:



    测试二代码:

    //使用 SetSurroundColors 方法设置周边色组:
    uses GdiPlus, GdiPlusHelpers;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Brush: IGPPathGradientBrush;
      Rect: TGPRect;
      Path: IGPGraphicsPath;
    begin
      Rect.Initialize(10, 10, 200, 150);
      Path := TGPGraphicsPath.Create;
      Path.AddRectangle(Rect);
    
      Brush := TGPPathGradientBrush.Create(Path);
      Brush.CenterColor := $FFFFFFFF;
      Brush.SetSurroundColors([$FFFF0000, $FF00FF00, $FF0000FF, $FFFFFF00]);
    
      Canvas.ToGPGraphics.FillRectangle(Brush, Rect);
    end;
    
    //使用 SurroundColors 属性设置周边色组:
    uses GdiPlus, GdiPlusHelpers;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Brush: IGPPathGradientBrush;
      Rect: TGPRect;
      Path: IGPGraphicsPath;
      Colors: IGPColors;
    begin
      Rect.Initialize(10, 10, 200, 150);
      Path := TGPGraphicsPath.Create;
      Path.AddRectangle(Rect);
    
      Brush := TGPPathGradientBrush.Create(Path);
      Brush.CenterColor := $FFFFFFFF;
    
      Colors := TGPArray<TGPColor>.Create(4);
      Colors[0] := $FFFF0000;
      Colors[1] := $FF00FF00;
      Colors[2] := $FF0000FF;
      Colors[3] := $FFFFFF00;
      Brush.SurroundColors := Colors;
    
      Canvas.ToGPGraphics.FillRectangle(Brush, Rect);
    end;
    

  • 相关阅读:
    POJ 3904 Sky Code (容斥原理)
    HDU 4334 Trouble (暴力)
    UVA 10325 The Lottery( 容斥原理)
    HDU 2841 Visible Trees 数论+容斥原理
    UVA11806-Cheerleaders(容斥原理+二进制)
    HDU1695 GCD (欧拉函数+容斥原理)
    HDU 5651 xiaoxin juju needs help (组合数)
    最大子矩阵和 51Nod 1051 模板题
    最大子段和 模板题 51Nod 1049
    51Nod 1006 最长公共子序列Lcs问题 模板题
  • 原文地址:https://www.cnblogs.com/del/p/1624591.html
Copyright © 2011-2022 走看看