Four color circular gradient
Four color circular gradient
The RGB macro selects a red, green, blue (RGB) color based on the arguments supplied and the color capabilities of the output device. The intensity for each argument is in the range 0 through 255. If all three intensities are zero, the result is black. If all three intensities are 255, the result is white.
Following procedure create gradient at startup.
procedure TForm1.FormCreate(Sender: TObject); Var Max, Xo, Yo, Radius, C, R, H, W, L : Integer; Angle, Step : Real; begin { Get form size } H:=Image1.Height; W:=Image1.Width; { Fill area with form color } Image1.Canvas.Pen.Color:=Form1.Color; Image1.Canvas.Brush.Color:=Form1.Color; Image1.Canvas.Rectangle(0,0,W,H); Max:=360; Image1.Canvas.Pen.Width:=5; { Set fill size } L:=Max Div 4; { Set fill step size } Step:=255/L; { Set circle coodinates } Xo:=W Div 2; Yo:=H Div 2; Radius:=(H Div 2)-30; C:=0; Angle:=0; For R:=0 To Max Do Begin { Select color for gradient starting from RED to YELLOW } { Change fill color } If R<=L Then Begin C:=Round(R*Step); { Red -> Green } Image1.Canvas.Pen.Color:=RGB(255-C,C,0) End Else If R<=2*L Then Begin C:=Round((R-L)*Step); { Green -> Blue } Image1.Canvas.Pen.Color:=RGB(0,255-C,C) End Else If R<=3*L Then Begin C:=Round((R-2*L)*Step); { Blue -> Yellow } Image1.Canvas.Pen.Color:=RGB(C,C,255-C); End Else If R<=4*L Then Begin C:=Round((R-3*L)*Step); { Yellow -> Red } Image1.Canvas.Pen.Color:=RGB(255,255-C,0); End; { Fill area by drawing lines } Image1.Canvas.MoveTo(Xo,Yo); Image1.Canvas.LineTo(Xo+Round(Radius*Sin(R*(Pi/180))), Yo-Round(Radius*Cos(R*(Pi/180)))); End; end;
Download This Delphi Tutorials.
Download materials for this article (Delphi - Tutorials)
four-color-circular-gradient.zip
File size: 4 KB, File type: zip
Total downloads: 211, Upload date: February 10 - 2009