procedure TForm1.Button1Click(Sender: TObject);
var
x: Real;
xg, yg, i: Integer;
begin
// 1. Рисуем ось Y (слева) и ось X (снизу)
Form1.Canvas.MoveTo(30, 20);
Form1.Canvas.LineTo(30, 280); // Ось Y
Form1.Canvas.MoveTo(20, 250);
Form1.Canvas.LineTo(420, 250); // Ось X (уровень y = 0)
// 2. Засечки и подписи по оси X (шаг в PI = 90 пикселей)
Form1.Canvas.MoveTo(30, 245); Form1.Canvas.LineTo(30, 255);
Form1.Canvas.TextOut(25, 260, '0');
Form1.Canvas.MoveTo(120, 245); Form1.Canvas.LineTo(120, 255);
Form1.Canvas.TextOut(115, 260, 'п');
Form1.Canvas.MoveTo(210, 245); Form1.Canvas.LineTo(210, 255);
Form1.Canvas.TextOut(205, 260, '2п');
Form1.Canvas.MoveTo(300, 245); Form1.Canvas.LineTo(300, 255);
Form1.Canvas.TextOut(295, 260, '3п');
Form1.Canvas.MoveTo(390, 245); Form1.Canvas.LineTo(390, 255);
Form1.Canvas.TextOut(385, 260, '4п');
// 3. Засечки и подписи по оси Y (масштаб: 1 ед. = 70 пикселей)
Form1.Canvas.MoveTo(25, 180); Form1.Canvas.LineTo(35, 180);
Form1.Canvas.TextOut(10, 172, '1');
Form1.Canvas.MoveTo(25, 110); Form1.Canvas.LineTo(35, 110);
Form1.Canvas.TextOut(10, 102, '2');
// 4. Стрелки осей
Form1.Canvas.MoveTo(30, 20); Form1.Canvas.LineTo(25, 28);
Form1.Canvas.MoveTo(30, 20); Form1.Canvas.LineTo(35, 28);
Form1.Canvas.TextOut(15, 20, 'Y');
Form1.Canvas.MoveTo(420, 250); Form1.Canvas.LineTo(412, 245);
Form1.Canvas.MoveTo(420, 250); Form1.Canvas.LineTo(412, 255);
Form1.Canvas.TextOut(425, 242, 'X');
// 5. Заголовок
Form1.Canvas.TextOut(50, 20, 'y = 1 - sin(2x)');
// 6. Построение графика функции
x := 0;
for i := 0 to 360 do
begin
xg := 30 + Round((90 / Pi) * x);
yg := 250 - Round(70 * (1 - Sin(2 * x)));
Form1.Canvas.Pixels[xg, yg] := clBlack;
x := x + (4 * Pi) / 360;
end;
end;