本例效果图:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
procedure FormClick(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
BoolArr: array[Boolean] of string = ('余弦曲线', '正弦曲线');
var
f: Boolean = True;
procedure TForm1.FormClick(Sender: TObject);
begin
f := not f;
Repaint;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
x: Integer;
y,radian: Double;
begin
Canvas.Pen.Width := 2;
Canvas.Pen.Color := clRed;
Canvas.MoveTo(0, ClientWidth div 2);
for x := 0 to ClientWidth do
begin
radian := x / ClientWidth * 4 * pi;
if f then y := Sin(radian) else y := Cos(radian);
y := (1-y) * ClientHeight / 2;
Canvas.LineTo(Round(x), Round(y));
end;
Text := BoolArr[f];
end;
end.