Как нарисовать график функции?

Материал из DRKB


procedure TForm1.Button3Click(Sender: TObject);
var
  x, y: array[1..50] of Double;
  i: Integer;
  scalex, scaley, ymin, ymax, xmin, xmax: Double;
begin
  for i := 1 to 50 do
  begin
    y[i] := sin(i * 0.5);
    x[i] := i;
  end;
  xmin := x[1];
  xmax := x[1];
  ymin := y[1];
  ymax := y[1];
  for i := 2 to 50 do
  begin // или используйте ymin := MinValue(y); и т.д.
    if y[i] < ymin then ymin := y[i];
    if y[i] > ymax then ymax := y[i];
    if x[i] < xmin then xmin := x[i];
    if x[i] > xmax then xmax := x[i];
  end;
  scalex := PaintBox1.Width / (xmax - xmin);
  scaley := PaintBox1.Height / (ymax - ymin);
  with PaintBox1.canvas do
  begin
    MoveTo(Trunc(scalex * (x[1] - xmin)), PaintBox1.Height - Trunc(scaley * (y[1] - ymin)));
    for i := 2 to 50 do
      LineTo(Trunc(scalex * (x[i] - xmin)), PaintBox1.Height - Trunc(scaley * (y[i] - ymin)));
  end;
end;


ID: 04098



Забавная штука синусы:

for i:=1 to 500 do
  PaintBox1.Canvas.Pixels[Round(sin(i*5)*10+50), Round(sin(i*10)*10+50)] := RGB(0,0,0);


Author: Baa
Source: http://forum.vingrad.ru
ID: 04099