Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2012, 17:15   #11
Di-em
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 16
По умолчанию

одалели мы тебя наверно.......

ну у меня вот такая функция

x:=(exp(b*ln(a)))*(cos(a));
y:=(exp(b*ln(a)))*(sin(a));

логорифмическая спираль
Di-em вне форума Ответить с цитированием
Старый 11.02.2012, 23:23   #12
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

FrEeZaRiO
Такой код в cikloida :
Код:
procedure TForm1.cikloida;
var
a:extended;
b:extended;
x0:extended;
xn:extended;
x:extended;
y:extended;
begin
A:=strtofloat(edtA.text);
b:=strtofloat(edtb.text);
x0:=strtofloat(edtx0.text);
xn:=strtofloat(edtxn.text);
imgraf.canvas.Pen.Color:=clred;
memo1.lines.Clear;

x:=zoom*x0-(dx*scrollBar1.Position);
if x0-b=0 then y:=zoom*(x0*x0*x0*exp(a*x0*x0))-(dy*scrollBar2.Position)
else y:=zoom*(x0*x0*x0*exp(a*x0*x0))/(x0-b)-(dy*scrollBar2.Position);
memo1.lines.add('y='+floattostr(y));
imgraf.canvas.MoveTo(round(x)+round(imgraf.Height/2*zoom),round(y)+round(imgraf.width/2*zoom));
repeat
x:=zoom*x0-(dx*scrollBar1.Position);
if x0-b=0 then y:=zoom*(x0*x0*x0*exp(a*x0*x0))-(dy*scrollBar2.Position)
else y:=zoom*(x0*x0*x0*exp(a*x0*x0))/(x0-b)-(dy*scrollBar2.Position);
memo1.lines.add('y='+floattostr(y));
imgraf.canvas.LineTo(round(x)+round(imgraf.Height/2*zoom),round(y)+round(imgraf.width/2*zoom));
x0:=x0+0.1;
until x0>=xn;
Такие результаты - (см. рисунок 1).
Можно конечно y делить на 10000 или 100000 и говорить, что одно деление по OY = 10000*20 (100000*20), и тогда график будет более наглядный при разных значениях а,b,х0,xn. Но это Ты сам решай.
Изображения
Тип файла: jpg Безымянный.jpg (27.7 Кб, 158 просмотров)
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 12.02.2012, 00:10   #13
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Di-em
Вот код:
Код:
procedure TForm1.cikloida;
var
a0,an,b0,bn:extended;
max:extended;
x:extended;
y:extended;
begin
A0:=strtofloat(edtA0.text);
b0:=strtofloat(edtb0.text);
an:=strtofloat(edtAn.text);
bn:=strtofloat(edtBn.text);
imgraf.canvas.Pen.Color:=clred;

if abs(a0)+abs(an)>abs(b0)+abs(bn) then  max:=an
                                   else  max:=bn;
memo1.lines.Clear;

x:=(zoom*(exp(b0*ln(a0))*cos(a0)))-(dx*scrollBar1.Position);
y:=(zoom*(exp(b0*ln(a0))*sin(a0)))-(dy*scrollBar2.Position);
memo1.lines.add('y='+floattostr(y));
imgraf.canvas.MoveTo(round(x)+round(imgraf.Height/2*zoom),round(y)+round(imgraf.width/2*zoom));
repeat
x:=(zoom*(exp(b0*ln(a0))*cos(a0)))-(dx*scrollBar1.Position);
y:=(zoom*(exp(b0*ln(a0))*sin(a0)))-(dy*scrollBar2.Position);
memo1.lines.add('y='+floattostr(y));
imgraf.canvas.LineTo(round(x)+round(imgraf.Height/2*zoom),round(y)+round(imgraf.width/2*zoom));
a0:=a0+0.1;
b0:=b0+0.1;
until (a0>=max)or(b0>=max);
end;
Вот результат:
Изображения
Тип файла: jpg Безымянный.jpg (29.3 Кб, 145 просмотров)
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 12.02.2012, 12:45   #14
Di-em
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 16
По умолчанию

Вот спасибо! если сдам с меня благодарность, в личку номер вебмани напиши!
Di-em вне форума Ответить с цитированием
Старый 12.02.2012, 12:54   #15
Di-em
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 16
Печаль

Блин касяк......забыл сказать что у меня только b вводиться, а альфа т.е а
высчитываеться в цикле(
Di-em вне форума Ответить с цитированием
Старый 12.02.2012, 13:30   #16
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Ну вставь такой код
Код:
var
a0,an,b:extended;
x:extended;
y:extended;
begin
A0:=0.00001;
an:=50;
b:=strtofloat(edtb0.text);

imgraf.canvas.Pen.Color:=clred;

x:=(zoom*(exp(b*ln(a0))*cos(a0)))-(dx*scrollBar1.Position);
y:=(zoom*(exp(b*ln(a0))*sin(a0)))-(dy*scrollBar2.Position);
imgraf.canvas.MoveTo(round(x)+round(imgraf.Height/2*zoom),round(y)+round(imgraf.width/2*zoom));
repeat
x:=(zoom*(exp(b*ln(a0))*cos(a0)))-(dx*scrollBar1.Position);
y:=(zoom*(exp(b*ln(a0))*sin(a0)))-(dy*scrollBar2.Position);
imgraf.canvas.LineTo(round(x)+round(imgraf.Height/2*zoom),round(y)+round(imgraf.width/2*zoom));
a0:=a0+0.1;
until (a0>=an);
end;
и удали с формы все edit'ы , кроме одного и назови его edtb0.
Блин, ты хоть разберись в программе, ведь Тебе ж сдавать. Хоть вопросы задай что-ли. А web-money не имею =))). Да и по жизни альтруист.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 12.02.2012, 13:48   #17
Di-em
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 16
По умолчанию

Да мне в принципе все понятно.....у меня она готова была, только циферки расставить не мог )
Di-em вне форума Ответить с цитированием
Старый 12.02.2012, 18:33   #18
FrEeZaRiO
 
Регистрация: 06.02.2012
Сообщений: 5
По умолчанию

Вообще печально) Одни ошибки за ошибкой. он таки должен почти прямую линию рисовать? о_0
FrEeZaRiO вне форума Ответить с цитированием
Старый 12.02.2012, 18:53   #19
Di-em
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 16
По умолчанию

Спасибо тебе огромное
Di-em вне форума Ответить с цитированием
Старый 12.02.2012, 21:33   #20
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

FrEeZaRiO
Ты пиши ошибки сюда в виде " division by zero", "value is not integer".
У тебя график кубической функции, помноженной на экспоненту в степени. Ну вот ты прикинь, чему будет равен У при х=2, а=2, b=100 . А равно оно будет 237 с копейками. При x=3 y=621509. И ещё я бы порекомендовал бы вместо MoveTo и LineTo использовать
imgraf.canvas.pixels[round(x)+round(imgraf.Height/2*zoom),round(y)+round(imgraf.width/2*zoom)]:=clRed; и шаг у "x0" сделать значительно меньше.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
График delphi Junger Помощь студентам 0 06.12.2011 19:15
График. Delphi aleks8091 Помощь студентам 6 01.01.2010 18:55
Delphi. График Puzz1e Помощь студентам 9 03.06.2009 17:13
Delphi ->Excel->График по таблице->Delphi Avalonix БД в Delphi 2 30.10.2008 14:04
3D график в Delphi AVer Мультимедиа в Delphi 9 17.10.2008 07:04