Download this example
procedure
TForm1.FormCreate(Sender: TObject);
{ Draw 1 pixcel width line
}
procedure DrawLine(X,Y,H:Integer; Step:Real);
Var
R, C : Integer;
Begin
For R:=0 To H Do
Begin
{
Change fill color }
C:=Round(R*Step);
{
Red -> Green }
Image1.Canvas.Pen.Color:=RGB(255-C,C,0);
{
Fill area by drawing lines }
Image1.Canvas.MoveTo(X,Y+R);
Image1.Canvas.LineTo(X+1,Y+R);
End;
End;
Var
Angle, X, Y, H, H2, W : Integer;
Step : Real;
begin
{ Get form size }
H:=Image1.Height;
W:=Image1.Width;
{ Fill image area by form color
}
Image1.Canvas.Brush.Color:=clBlack;
Image1.Canvas.Pen.Color:=clBlack;
Image1.Canvas.Rectangle(0,0,W,H);
{ Set fill size }
H2:=150;
{ Set fill step size }
Step:=255/H2;
Angle:=0;
For X:=1 to W Do
Begin
Y:=Round(100*Sin(Angle*(Pi/180)));
DrawLine(X,(H Div 3)-Y,H2,Step);
Inc(Angle);
If Angle>360 Then Angle:=0;
End;
end;