Kreslenie farebného prechodu
Plochy s farebným prechodom vyzerajú oveľa lepšie a prirodzenejšie ako jednofarbné. Stačí iba trochu matematiky s jednotlivými zložkami farby a je to.
procedure DrawGradient(Canvas: TCanvas; Color1, Color2: TColor; Rect: TRect); var Y, R, G, B: Integer; begin for Y := Rect.Top to Rect.Bottom do begin R := Round(GetRValue(Color1) + ((GetRValue(Color2) - GetRValue(Color1)) * Y / (Rect.Bottom - Rect.Top))); G := Round(GetGValue(Color1) + ((GetGValue(Color2) - GetGValue(Color1)) * Y / (Rect.Bottom - Rect.Top))); B := Round(GetBValue(Color1) + ((GetBValue(Color2) - GetBValue(Color1)) * Y / (Rect.Bottom - Rect.Top))); Canvas.Pen.Color := RGB(R, G, B); Canvas.Pen.Width := 2; Canvas.Pen.Style := psInsideFrame; Canvas.MoveTo(Rect.Left, Y); Canvas.LineTo(Rect.Right, Y); end; end; procedure TForm1.Button1Click(Sender: TObject); begin DrawGradient(Canvas,clBlue,clRed,ClientRect); end;