Доброго времени суток.
Действительно, уже было.. .А что, ссылочка http://www.realcoding.net/article/view/1601 не помогла? Какой еще текст вам надо?
======Начало цитаты ==========
Процедура DrawGraph
Ну вот и все с теорией и я приведу полный код функции, а потом разберем его.
Type TFunc = function (x: real): real;
procedure DrawGraph (f: TFunc; a: real; b: real; C: TCanvas);
var x, y, h: real;
max, min: real;
sx, sy: real;
xmid, ymid: integer;
begin
sx := (c.ClipRect.Right)/(b-a);
h := 1/sx;
xmid := c.ClipRect.Right div 2;
ymid := c.ClipRect.Bottom div 2;
x := a;
max := f( x);
min := max;
while x<=b do
begin
y := f( x);
if y<min>max then max := y;
x := x + h;
end;
sy := c.ClipRect.Bottom/ (max-min);
c.Brush.Color := clBlack;
c.FillRect(Rect(0, 0, c.ClipRect.Right, c.ClipRect.Bottom));
c.Pen.Color := clYellow;
c.MoveTo(0, ymid);
c.LineTo(c.ClipRect.Right, ymid);
c.MoveTo(xmid, 0);
c.LineTo(xmid, c.ClipRect.Bottom);
x := a;
y := f(x);
c.Pen.Color := clWhite;
c.MoveTo(xmid+round(sx*x), ymid-round(sy*y));
while x<=b do
begin
y := f(x);
c.LineTo(xmid+round(sx*x), ymid-round(sy*y));
x := x + h;
end;
end;
Ну и, наконец, нарисовали график нужной нам функции.
Небольшой пример:
Положим на форму одну кнопку и один компонент TImage. Создадим обработчик функции OnClick для кнопки примерно следующего характера, и следующую функцию для расчета функции
function f(x: real): real;
begin
Result := sin(x)*cos(x);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DrawGraph (f, -10, 10, Image1.Canvas);
end;
======Конец цитаты========
Как я уже писал, вам нужно, вместо предложенной в статье, сделать реализацию своей функции плюс поставить свои границы при вызове DrawGraph.
Для справки, график будет представлять собой половину синусоиды.
Удачи!
Другие языки программирования и технологии
построить программу вывода значения ф-ции y=А*sin(wx) в виде графика, где A=0,5, w=2, x на [0;п] ,на делфи.. . нужен текс
ты это вчера спрашивал.. . Сколько можно? Уже Дельфи бы выучил бы давно
Похожие вопросы
- Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания. Pascal
- помогите пожалуйста!!3.Напишите процедуру Input(A) для заполнения массива целых чисел A размером 10 x 10: 0 0 0 ...0 0
- Скажите сколько месяцев нужно изучать Делфи что бы написать программу вывода даты, дня недели и года в окно ?
- С++.Почему при удачном выходе из ф-ции main() она должна возвращать 0?
- Pascal-Напишите программу: ввод полные ФИО, вывод полное Ф и инициалы И. О. Можно ли упростить то что получилось у меня?)
- Почему при делении дробных чисел пишет результат 0 на С++? x1=(b+pow(d,0.5))/2/a;
- если я создам сайт, который неявно будет использовать какие-то ф-ции с другого сайта, это законно? пояснения внутри.
- isdigit() Непонятное поведение ф-ции
- Составить программу, печатающую значение true, если указанное явление истинно, и false в противном случае.
- Как прикрутить в данную программу вывод всех вычислительный действий программы?