Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] проблема с image

Ответить
Настройки темы
Delphi - [решено] проблема с image

Новый участник


Сообщения: 16
Благодарности: 1

Профиль | Отправить PM | Цитировать


Сначала было так:
Код: Выделить весь код
//критерий Михайлова
function mihailov(l:TStringList):boolean;
var
i,j,p,n,kv:byte;
w,u,v,up,vp,tan,tang:extended;
begin
image1.Canvas.MoveTo(0,trunc(image1.Height/2));
image1.Canvas.LineTo(image1.width,trunc(image1.Height/2));
image1.Canvas.MoveTo(trunc(image1.width/2),0);
image1.Canvas.LineTo(trunc(image1.width/2),image1.Height);
image1.Canvas.MoveTo(trunc(strtofloat(l[l.count-1])*10+image1.width/2),trunc(image1.Height/2));
n:=0;
kv:=0;
u:=0;
v:=0;
w:=0;
repeat
w:=w+0.01;
up:=u;
vp:=v;
j:=0;
u:=0;
v:=0;
if (v<>vp)and(up<>u) then tan:=tang;
for i:=1 to l.count do begin
j:=j+1;
p:=l.count-i;
case j of
1:u:=u+strtofloat(l[p])*(Exp((i-1)*Ln(w)));
2:v:=v+strtofloat(l[p])*(Exp((i-1)*Ln(w)));
3:u:=u+strtofloat(l[p])*(-Exp((i-1)*Ln(w)));
4:begin v:=v+strtofloat(l[p])*(-Exp((i-1)*Ln(w))); j:=0; end;
end;
end;
//Определяем, переходы по квадрантам
case kv of
0:if ((u>0)and(v>0)) then  begin kv:=1; n:=n+1; end;
1:if not ((u>0)and(v>0)) then if (u<=0)and(v>0) then begin kv:=2; n:=n+1; end;
2:if not ((u<0)and(v>0)) then if (u<0)and(v<=0) then begin kv:=3; n:=n+1; end;
3:if not ((u<0)and(v<0)) then if (u>=0)and(v<0) then begin kv:=4; n:=n+1; end;
4:if not ((u>0)and(v<0)) then if (u>0)and(v>=0) then begin kv:=1; n:=n+1; end;
end;
image1.Canvas.LineTo(trunc(u*0.1+image1.width/2),trunc(v*(-0.1)+image1.Height/2));
if (v<>vp)and(up<>u) then
tang:=trunc(arctan((v-vp)/(u-up))*10000)/10000;
until (tan=tang)and(tan<>0);
if n=l.Count-1 then mihailov:=true else mihailov:=false;
end;
Потом я решил убрать рисование графика и сделал так:
Код: Выделить весь код
//критерий Михайлова
function mihailov(l:TStringList):boolean;
var
i,j,p,n,kv:byte;
w,u,v,up,vp,tan,tang:extended;
begin
n:=0;
kv:=0;
u:=0;
v:=0;
w:=0;
repeat
w:=w+0.01;
up:=u;
vp:=v;
j:=0;
u:=0;
v:=0;
if (v<>vp)and(up<>u) then tan:=tang;
for i:=1 to l.count do begin
j:=j+1;
p:=l.count-i;
case j of
1:u:=u+strtofloat(l[p])*(Exp((i-1)*Ln(w)));
2:v:=v+strtofloat(l[p])*(Exp((i-1)*Ln(w)));
3:u:=u+strtofloat(l[p])*(-Exp((i-1)*Ln(w)));
4:begin v:=v+strtofloat(l[p])*(-Exp((i-1)*Ln(w))); j:=0; end;
end;
end;
//Определяем, переходы по квадрантам
case kv of
0:if ((u>0)and(v>0)) then  begin kv:=1; n:=n+1; end;
1:if not ((u>0)and(v>0)) then if (u<=0)and(v>0) then begin kv:=2; n:=n+1; end;
2:if not ((u<0)and(v>0)) then if (u<0)and(v<=0) then begin kv:=3; n:=n+1; end;
3:if not ((u<0)and(v<0)) then if (u>=0)and(v<0) then begin kv:=4; n:=n+1; end;
4:if not ((u>0)and(v<0)) then if (u>0)and(v>=0) then begin kv:=1; n:=n+1; end;
end;

if (v<>vp)and(up<>u) then
tang:=trunc(arctan((v-vp)/(u-up))*10000)/10000;
until (tan=tang)and(tan<>0);
if n=l.Count-1 then mihailov:=true else mihailov:=false;
end;
Как только я убрал строку image1.Canvas.LineTo(trunc(u*0.1+image1.width/2),trunc(v*(-0.1)+image1.Height/2)); стал ругаться на until (tan=tang)and(tan<>0);
Я всего лишь студент, код наверное не красивый, по этому заранее извиняюсь.

Отправлено: 21:49, 11-08-2011

 

Новый участник


Сообщения: 16
Благодарности: 1

Профиль | Отправить PM | Цитировать


сменил тип w,u,v,up,vp,tan,tang:extended; на Double все заработало.

Отправлено: 22:26, 11-08-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] проблема с image

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - Проблема с Silicon Image 3512 Shturman_666 Накопители (SSD, HDD, USB Flash) 16 08-05-2016 18:22
HDD - Проблема с Silicon Image 3112 megabat Накопители (SSD, HDD, USB Flash) 5 22-05-2011 09:15
Image Cataloger 1.01 OSZone Software Новости программного обеспечения 0 12-03-2011 20:30
Image Watermarks 1.5 OSZone Software Новости программного обеспечения 0 13-12-2009 11:30
Проблема с Windows Image and Fax Viewer Kumatoz Microsoft Windows 2000/XP 1 04-02-2006 00:53




 
Переход