# 再学 GDI+[66]: 路径画刷(6) - SetInterpolationColors、GetRectangle

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
end;

var
Form1: TForm1;

implementation

{\$R *.dfm}

uses GDIPOBJ, GDIPAPI;

procedure TForm1.FormPaint(Sender: TObject);
var
g : TGPGraphics;
path: TGPGraphicsPath;
rt: TGPRect;
const
pts: array[0..2] of TGPPoint = ((X:90; Y:10), (X:10; Y:160), (X:160; Y:160));
colors: array[0..2] of TGPColor = (aclGreen, aclAqua, aclBlue);
pos: array[0..2] of Single = (0.0, 0.25, 1.0); {颜色位置需要 >=0、<=1, 是百分比}
begin
{三角}
g := TGPGraphics.Create(Canvas.Handle);
path := TGPGraphicsPath.Create;
pb.SetInterpolationColors(@colors, @pos, Length(colors)); {SetInterpolationColors}
g.FillPath(pb, path);

{矩形}
pb.GetRectangle(rt); {GetRectangle}
path.Reset;
pb.Free;
pb.SetInterpolationColors(@colors, @pos, Length(colors));
g.TranslateTransform(160, 0);
g.FillPath(pb, path);

{椭圆}
path.Reset;
pb.Free;
pb.SetInterpolationColors(@colors, @pos, Length(colors));
g.TranslateTransform(160, 0);
g.FillPath(pb, path);

pb.Free;
path.Free;
g.Free;
end;

end.



object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 164
ClientWidth = 491
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnPaint = FormPaint
PixelsPerInch = 96
TextHeight = 13
end


posted on 2008-06-28 20:00  万一  阅读(1951)  评论(4编辑  收藏