Другие языки программирования и технологии

Помогите нарисовать график функции Y=3x+6x(в квадрате). в delphi

Y=3x+6x(в квадрате).
Во-первых: на каком промежутке рисовать график? Если, например, от 0 до 1000 то вот так:

1. Создай форму и расположи на ней кнопку (Button1) и пустую картинку (Image1)
2. Растяни форму и картинку по максимуму, чтобы больше графика влезло. Например так, чтобы размер Image1 был 1000 на 1000 пикселей.
3. В обработчике кнопки пиши:

-------------------------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);

// Здесь мы задаем переменные x и y. Они обе целочисленные, т. к. координаты на экране
// монитора могут быть только целочисленные
var x,y: integer;
begin

// Задаем черный цвет для отрисовки графика
image1.Canvas.Pen.Color:=clBlack;
// Устанавливаем курсор в точку 0,1000 (чтобы график выглядел как надо)
image1.Canvas.moveto(0,1000);

// В цикле перемещаемся по всем Х-ам от 0 до 1000
// при этом для каждого Х высчитываем свой Y
for i:=0 to 1000 do begin
y:=x+x+x+x*x+x*x+x*x+x*x+x*x+x*x;
// Рисуем каждый отрезочек графика
Image1.canvas.lineto(x,1000-y);
end;

-------------------------------------------------------------------------------------

В данном случае я заменил в формуле 3*х на X+X+X. Дело в том, что операция умножения нагружает комп намного больше чем операция сложения, поэтому лучше все умножения заменять на сложения.
По этой же причине я заменил и 6*x(в квадрате) на x*x+x*x+x*x+x*x+x*x+x*x
Кирилл
Кирилл
9 425
Лучший ответ
например выводи то4ками

while i<2 do
begin
x:=i
y:=3*i+6*i*i;

form1.canvas.pixel[x,y]
i:=i+.01
end;

njkmrj cbynfrcbp vj;tn xenm-xenm yt nfrjq f cvscjk nfr