|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
построение графиков функции
вывести график функции на отрезке [a,b], значения a b задаются пользователем. для построения графика используется вся доступная область формы, причем если во время работы программы пользователь изменит размер окна, то график должен быть нарисован заново, с учетом реальных размеров окна. координаты ОХ и ОУ должны быть промасштабированы 10-ю точками каждая.
y=(2*((ln|x-a|)/(a+b*x))^0.5)^1/3 |
#2
|
||||
|
||||
1. Помещаем на форму 2 Edit для ввода а и b
2. В событии формы OnPaint пишем код: цикл от а до б в цикле свою формулу. (шаг чем меньше, тем лучше нарисует) 3. Рисуем на форме Form1.Canvas.Pixels[x,y]:=clRed; If end Then begin; |
#3
|
||||
|
||||
Дополнение: Все-таки лучше не через Pixels, а через MoveTo() в начале и LineTo() далее. Тогда график будет всегда выглядеть линией без разрывов.
jmp $ ; Happy End! The Cake Is A Lie. |
#4
|
|||
|
|||
а код можете написать, все таки раздел для начинающих
|
#5
|
||||
|
||||
Раздел для начинающих, а не для халявных прог.
Код:
x:=0; y:=func(x); Canvas.MoveTo(round(x),round(y)); while x<ClientWidth do begin x:=x+0.01; y:=func(x); Canvas.LineTo(round(x),round(y)); end; jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 21.12.2011 в 01:18. |
#6
|
|||
|
|||
вот нормальный код:
var a,b:real; k:integer; begin a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); for k:=1 to 8 do begin chart1.SeriesList[0].AddXY(k,exp((1/3)*ln(2*exp(0.5*ln((ln(abs(k-a)))/(a+b*k)))))); end; end; |