Показать сообщение отдельно
  #3  
Старый 03.12.2011, 22:04
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Примерно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  I,                    // Переменая счётчика
  xc, yc  : Integer;    // Координаты центра О
  y, x,                 // Координаты x и y
  A, B, C : Real;       // Коэффициенты квадратного трёхчлена
begin
  // Укажем некоторые значения
  xc := Img.Width div 2;
  yc := Img.Height div 2;
  x := - Img.Width;
  A := StrToFloat(edit1.Text);
  B := StrToFloat(edit2.Text);
  C := StrToFloat(edit3.Text);

  with Img.Canvas do
  begin
    // Отрисовка координатных осей.
    FillRect(ClientRect);
    MoveTo(10, yc);
    LineTo(Img.Width - 10, yc);
    MoveTo(xc, 10);
    LineTo(xc, Img.Height - 10);

    Pen.Color := clRed;
    I := 10;
    repeat
      if I <> xc then
      begin
        MoveTo(I, yc + 3);
        LineTo(I, yc - 3);
      end;
      inc(I, 10);
    until I > Img.Width - 10;

    I := 10;
    repeat
      if I <> yc then
      begin
        MoveTo(xc + 3, I);
        LineTo(xc - 3, I);
      end;
      inc(I, 10);
    until I > Img.Height - 10;

    // Построение графика.
    for I := 1 to 500000 do
    begin
      x := x + 0.01;
      y := A * sqr(x) + B * x + C;
      if (y < 200) and (y > -200 ) then
        Pixels[Round(x * 10) + xc, yc - Round(y)] := ClBlue;
    end;
  end;
end;
для правильной установки деления осей и упрощения подсчёта, Img.Width = 560, Img.Height = 380.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием