Four color circular gradient

Four color circular gradient

Four color circular gradient

This tutorial shows how to create four color circular gradients.

DownloadDownload This Tutorials

Bookmark:

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.

Four color circular gradient

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)

Download - four-color-circular-gradient.zipfour-color-circular-gradient.zip
       File size: 4 KB, File type: zip
       Total downloads: 182, Upload date: February 10 - 2009

Leave a comment