Zdravím vás, píšu program na vykreslování fraktálů (tzv. vločka).
Tady přikládám zdroják, tento je bez problému sestaven, ale během běhu programu mi to spadne tam kde mám koment "problém" nevím proč. Hodnota argumentu u arctan může být cokoli z R takže jsem v koncích. děkuji
CreateDir('Fraktal');
for i:=1 to pocetperiod do
begin
Fname[i]:=fr+rad+IntToStr(i)+tx;
assign(F[i],Fname[i]);
rewrite(f[i]);
close(f[i]);
end;
x:=cos(pi/2);
y:=sin(pi/2);
append(f[1]);
writeln(F[1],x:0:6,',',y:0:6);
for i:=2 to poctvar+1 do
begin
x:=cos(pi/2+((i-1)*2*pi)/(poctvar));
y:=sin(pi/2+(2*pi*(i-1))/(poctvar));
writeln(F[1],x:0:6,',',y:0:6);
end;
close(f[1]);
for i:=2 to pocetperiod do
begin
reset(f[i-1]);
append(F[i]);
readln(F[i-1],Name1);
j:=0;
Aname:='';
repeat
j:=j+1;
Aname:=Aname+Name1[j];
until(Name1[j+1]=',') ;
A.x:=strtoreal(Aname);
j:=j+1;
Bname:='';
repeat
j:=j+1;
Bname:=Bname+Name1[j];
until(j=Length(Name1));
A.y:=strtoreal(Bname);
writeln(F[i],Name1);
while not eof(F[i-1]) do
begin
readln(F[i-1],Name2);
j:=0;
Aname:='';
repeat
j:=j+1;
Aname:=Aname+Name2[j];
until(Name2[j+1]=',') ;
B.x:=strtoreal(Aname);
j:=j+1;
Bname:='';
repeat
j:=j+1;
Bname:=Bname+Name2[j];
until(j=Length(Name1));
B.y:=strtoreal(Bname);
x:=(2*A.x+B.x)/3;
y:=(2*A.y+B.y)/3;
writeln(F[i],x:0:6,',',y:0:6);
x:=cos(arctan((y-A.y)/(x-A.x))-(2*pi/poctvar))+x; //problem
y:=sin(arctan((y-A.y)/(x-A.x))-(2*pi/poctvar))+y; //problem
writeln(F[i],x:0:6,',',y:0:6);
x:=(A.x+2*B.x)/3;
y:=(A.y+2*B.y)/3;
writeln(F[i],x:0:6,',',y:0:6);
writeln(F[i],B.x:0:6,',',B.y:0:6);
A:=B;
end;
close(F[i]);
close(F[i-1]);
end;
end.
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Návštěvník

Nahlásit jako SPAM
IP: 212.47.23.–
Super člen
Věrný člen
Zjistit počet nových příspěvků
































