Загрузка данных


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Label1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  x: Double;
  xg, yg, i: Integer;
begin
  // 1. Рисуем оси координат
  Form1.Canvas.MoveTo(400, 20);
  Form1.Canvas.LineTo(400, 320);
  Form1.Canvas.MoveTo(5, 170);
  Form1.Canvas.LineTo(420, 170);

  // 2. Наносим засечки и подписи на ось X
  Form1.Canvas.MoveTo(10, 165);
  Form1.Canvas.LineTo(10, 175);
  Form1.Canvas.TextOut(10, 180, '-2п');

  Form1.Canvas.MoveTo(108, 165);
  Form1.Canvas.LineTo(108, 175);
  Form1.Canvas.TextOut(108, 180, '-3/2п');

  Form1.Canvas.MoveTo(205, 165);
  Form1.Canvas.LineTo(205, 175);
  Form1.Canvas.TextOut(205, 180, '-п');

  Form1.Canvas.MoveTo(303, 165);
  Form1.Canvas.LineTo(303, 175);
  Form1.Canvas.TextOut(303, 180, '-п/2');

  // 3. Наносим засечки и подписи на ось Y
  Form1.Canvas.MoveTo(395, 40);
  Form1.Canvas.LineTo(405, 40);
  Form1.Canvas.TextOut(415, 30, '1');

  Form1.Canvas.MoveTo(395, 105);
  Form1.Canvas.LineTo(405, 105);
  Form1.Canvas.TextOut(410, 100, '0,5');

  Form1.Canvas.TextOut(405, 175, '0');

  Form1.Canvas.MoveTo(395, 235);
  Form1.Canvas.LineTo(405, 235);
  Form1.Canvas.TextOut(410, 235, '-0,5');

  Form1.Canvas.MoveTo(395, 300);
  Form1.Canvas.LineTo(405, 300);
  Form1.Canvas.TextOut(415, 295, '-1');

  // 4. Рисуем стрелки осей
  Form1.Canvas.MoveTo(400, 20);
  Form1.Canvas.LineTo(405, 25);
  Form1.Canvas.MoveTo(400, 20);
  Form1.Canvas.LineTo(395, 25);
  Form1.Canvas.TextOut(380, 20, 'Y');

  Form1.Canvas.MoveTo(420, 170);
  Form1.Canvas.LineTo(415, 165);
  Form1.Canvas.MoveTo(420, 170);
  Form1.Canvas.LineTo(415, 175);
  Form1.Canvas.TextOut(435, 170, 'X');

  // 5. Заголовок
  Form1.Canvas.TextOut(20, 20, 'y=sin (2x+1)');

  // 6. Вычисление точек и построение графика
  x := -2 * Pi;
  for i := 0 to 390 do
  begin
    xg := 400 + Round((195 / Pi) * x);
    yg := 170 - Round(130 * Sin(2 * x + 1));
    Form1.Canvas.Pixels[xg, yg] := clBlack;
    x := x + Pi / 195;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Form1.Close;
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
end;

end.