Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.16;
Скачать: CL | DM;

Вниз

построение синусоиды   Найти похожие ветки 

 
Demon2000   (2002-05-02 11:42) [0]

Народ, а можно сделать так, чтобы на событие onClick в Canvas`e рисовалась синусоида, причем ее параметры (амплитуда, угол) брались бы из поля edit? Большое спасибо.


 
Pat ©   (2002-05-02 12:03) [1]

Переделаешь, как тебе надо...давно писал, влом разбираться

function f(x:real):real;
begin
try
f:=(sin(3*x)+exp(1+x*x))/
(exp((x+1)*ln(2))*x+1-exp(5*x*x-1));
except
on EMathError do
end;{try}
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
y:array[0..1000] of real;
xn,xk:longint;
ymin,ymax,h:real;

begin
xn:=strtoint(edit1.text);//начальное значение
xk:=strtoint(edit2.text);//конечное значенеие
h:=(xk-xn)/(image1.Width);//длина одного пиксела
ymin:=f(xn);
ymax:=f(xn);

//заполнение массива значений функции
//вычисление максимального и минимального Y
for i:=0 to Image1.Width do
begin
y[i]:=f(xn+i*h);//проход по точкам
if y[i]>ymax then ymax:=y[i];
if y[i]<ymin then ymin:=y[i];
end;

//вывод кривой графика
image1.Canvas.FillRect(rect(0,0,image1.width,image1.height));
image1.Canvas.Pen.Color:=clRed;
image1.Canvas.Pen.Width:=2;
with image1.Canvas do
begin
moveto(0,image1.Height-
round((image1.Height)*(y[0]-ymin)/
(ymax-ymin)));
for i:=1 to image1.Width do
LineTo(i,image1.Height-
round((image1.Height)*(y[i]-ymin)/
(ymax-ymin)));
end;

end;




Страницы: 1 вся ветка

Текущий архив: 2002.05.16;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.015 c
3-49882
DeN_IS
2002-04-20 09:35
2002.05.16
Мастерам. Подскажите


1-50005
PaRL
2002-04-30 20:20
2002.05.16
Кто-нить объяснит мне>??


6-50080
Rub
2002-03-04 09:31
2002.05.16
Отправка почты с помощью NMSMTP - Не по русски


1-49927
UniQ
2002-05-03 19:05
2002.05.16
Изменение свойств динамически создаваемой формы


6-50070
DimaIv
2002-03-02 10:03
2002.05.16
Как испльзуя FastNet получить список файлов http?