Вправа 6.4 (11 кл.)

Написати программу для відображення графіка функції y = x2.
У коді врахувати можливість трансформування координатних осей до математичних та врахування масштабу відобреження


Розв'язання
procedure TForm1.PaintBox1Click(Sender: TObject);
var x,y:real;
    i:integer;
begin
    PaintBox1.Canvas.Pen.Color:=clGray;
    for i := 0 to 9 do begin
        PaintBox1.Canvas.MoveTo(i*40,0);
        PaintBox1.Canvas.LineTo(i*40,400);
    end;
    for i := 0 to 9 do begin
        PaintBox1.Canvas.MoveTo(0,i*40);
        PaintBox1.Canvas.LineTo(400,i*40);
    end;
    PaintBox1.Canvas.Pen.Color:=clBlack;
    PaintBox1.Canvas.Pen.Width:=3;
    PaintBox1.Canvas.MoveTo(199,0);
    PaintBox1.Canvas.LineTo(199,400);
    PaintBox1.Canvas.MoveTo(0,199);
    PaintBox1.Canvas.LineTo(400,199);
    PaintBox1.Canvas.MoveTo(194,10);
    PaintBox1.Canvas.LineTo(199,0);
    PaintBox1.Canvas.MoveTo(204,10);
    PaintBox1.Canvas.LineTo(199,0);
    PaintBox1.Canvas.MoveTo(390,195);
    PaintBox1.Canvas.LineTo(400,200);
    PaintBox1.Canvas.MoveTo(390,204);
    PaintBox1.Canvas.LineTo(400,200);
    PaintBox1.Canvas.Font.Size :=12;
    PaintBox1.Canvas.TextOut(185,10,'Y');
    PaintBox1.Canvas.TextOut(185,203,'0');
    PaintBox1.Canvas.TextOut(380,203,'X');
    PaintBox1.Canvas.Pen.Color:=clRed;
    PaintBox1.Canvas.Pen.Width:=2;
    PaintBox1.Canvas.MoveTo(0,0);
    x:=-4;
    while x<4 do begin
      y:=sqr(x);
      PaintBox1.Canvas.LineTo(round(40*x+200),round(200-40*y));
      x:=x+0.1;
    end;
end;

Немає коментарів:

Дописати коментар