Построение графиков
Для построения графиков по данным из внешних файлов сначала нужно загрузить эти данные в списки ListBox
Подготовка к построению графика
x0:=…; y0:=…; {начало координат} form1.Canvas.moveto(x0,10); form1.Canvas.lineTo(x0,form1.Height-50); {Ось Oy} form1.Canvas.moveto(10,y0); form1.Canvas.lineTo(form1.Width-
mx:=…; my:=…;
{масштаб по x и по y -
количество пикселей на 1 деление}
Построение графиков
x:=StrToFloat(ListBox1.Items[0]); y:=StrToFloat(ListBox2.Items[0]); {начальная точка} xe:=round(x0+x*mx);
ye:=round(y0-y*my); {экранные координаты} form1.Canvas.moveTo(xe,ye);
for i:=1 to ListBox1.Count-1 do begin x:=StrToFloat(ListBox1.Items[i]); y:=StrToFloat(ListBox2.Items[i]); {очередная точка} xe:=round(x0+x*mx);
ye:=round(y0-y*my); form1.Canvas.lineTo(xe,ye);
end;
Запуск
Построение графиков
При построении графиков функций масштаб по обеим координатам одинаковый
m:=…; |
{ масштаб } |
x0:=…; y0:=…; |
{начало координат} |
a:=…; b:=…; |
{ отрезок } |
x:=a; |
|
|
y:=sin(x); |
|
|
xe:=round(x0+x*m); |
|
ye:=round(y0-y*m); |
{начальная точка} |
Form1.Canvas.moveTo(xe,ye); while x<=b do begin
x:=x+1/m;
y:=sin(x);
xe:=round(x0+x*m); ye:=round(y0-y*m); {очередная точка} Form1.Canvas.lineTo(xe,ye);
end;
13