Читайте также: |
|
function TForm1.II(х: real): integer;
{функция масштабирования по оси ОХ}
Begin
II:=I1+Trunc((x-X1)*(I2-I1)/(Х2-Х1));
end;
function TForm1.JJ(y: real): integer;
(функция масштабирования по оси OY}
Begin
JJ:=J2+Trunc((y-Yl)*(J1-J2)/(Y2-Y1));
end;
График функции строится отрезками прямых линии, соединяющих узловые точки. Для того чтобы график выглядел достаточно плавным, необходимо взять около 60 точек по горизонтали.
Проект состоит из одного модуля, на форме которого расположены компоненты Panel1, Image1, SpinEdit1 и BitBtn1. Компонент SpinEdit1 предназначен для изменения множителя у функции F=A*Exp(-Sqr(x-0.5)).
При активизации проекта вызывается метод FormActivate.
Активизация проекта
procedure TForm1.FormActivate(Sender: TObject);
Begin
(Задание окна на экране}
With Image1 do
Begin
Il:=0; J1:=0; I2:=Width; J2:=Height;
end;
{вычисление шага по оси ОХ}
h:=(x2-xl)/n;
SetGraphic;
end;
в котором определяются габариты окна на экране, определяется шаг по горизонтальной оси и вызывается метод SetGraphic, выводящий график.
Процедура построения графика
procedure TForm1.SetGraphic;
var i: integer;
Begin
With Image1.Canvas do
Begin
Pen.Color:=clWhite;
Brush.Color:=clWhite;
RectAngle(0,0,Width,Height);
{Построение осей координат}
Pen.Color:=clBlack;
MoveTo(II(0),JJ(Y1));
LineTo(II(O),JJ(Y2));
MoveTo(II(x1),JJ(0));
LineTo(II(x2),JJ(0));
{Построение графика функции отрезками}
x:=x1; y:=F(x);
MoveTo(II(x),JJ(y));
for i:=1 to n do
Begin
x:=x+h; y:=F(x);
LineTo(II(x),JJ(y));
end;
end;
end;
При щелчке мышью на компоненте SpinEdit1 изменяется значение SpinEdit1. Value и вызывается процедура перерисовки графика.
Дата добавления: 2015-07-12; просмотров: 171 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Волгоград | | | Часть I. |