var
Form1: TForm1;
rnd,x1,x2,x3,y1,y2,y3,FinalAge:integer;
c:char;
ot:string;
cc,AngleR,AngleL,StartAngle,ConCoef : Real;
//
procedure Line(x1,y1,x2,y2:real; C:TCanvas);
begin
c.Moveto(round(x1),round(y1));
c.lineto(round(x2),round(y2));
end;
Procedure TriS(age:integer;x1,y1,x2,y2,x3,y3:real);
var
xd,yd,xe,ye,xf,yf:real;
begin
inc(age);
if age= FinalAge then
begin
line(x1,y1,x2,y2, Form1.Image1.Canvas);
line(x2,y2,x3,y3, Form1.Image1.Canvas);
line(x3,y3,x1,y1, Form1.Image1.Canvas);
Form1.Image1.Canvas.Refresh;
end
else
begin
xd:=round((x1+x2)/2);
yd:=round((y1+y2)/2);
xe:=round((x2+x3)/2);
ye:=round((y2+y3)/2);
xf:=round((x1+x3)/2);
yf:=round((y1+y3)/2);
TriS(age,x1,y1,xd,yd,xf,yf);
TriS(age,xd,yd,x2,y2,xe,ye);
TriS(age,xf,yf,xe,ye,x3,y3);
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Image1.Canvas.Brush.Color:=clWhite;
Image1.Canvas.rectangle(0,0,image1.Width,image1.Height);
x1:=10;
y1:=10;
x2:=320;
y2:=470;
x3:=630;
y3:=10;
Image1.Canvas.CleanupInstance;
Image1.Canvas.rectangle(0,0,640,480);
if spinedit1.value >0 then
begin
Finalage:=Spinedit1.Value;
Tris(0,x1,y1,x2,y2,x3,y3);
end;
end;
Procedure drawtree(age,kx,ky,r:integer; naklon:real);
var
sx,sy:integer;
begin
r:=round(r-0.2*r);
inc(AGe);
if age=FinalAge then
begin
Line(kx,ky,round(kx + R * cos(naklon)), round(ky + R * sin(naklon)),form1.Image2.Canvas);
sx:=round(kx + R * cos(naklon));
sy:=round(ky + R * sin(naklon));
Line(sx,sy,round(sx + R * cos(naklon-angleL)), round(sy + R * sin(naklon-angleL)), form1.Image2.Canvas);
Line(sx,sy,round(sx + R * cos(naklon+angleR)), round(sy + R * sin(naklon+angleR)),form1.Image2.Canvas);
end
else
begin
sx:=round(kx + R * cos(naklon));
sy:=round(ky + R * sin(naklon));
drawtree(age,sx,sy,r+random(rnd),naklon-angleL);
drawtree(age,sx,sy,r+random(rnd),naklon+angleR);
Line(kx,ky,round(kx + R * cos(naklon)), round(ky + R * sin(naklon)),form1.Image2.Canvas);
end;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
StartX,StartY,StartHeight:integer;
ot,tm:string;
i,j,iter,Total:longint;
StartH,StartM,StartS,StartS1,StopH,StopM,StopS,StopS1:word;
begin
ConCoef:=(pi/180);
AngleL:=spinedit3.value*ConCoef;
AngleR:=Spinedit4.value*ConCoef;
StartHeight:=spinedit7.Value;
StartAngle:=3/2*pi;
StartX:=320;
StartY:=480;
Color:=15;
RND:=0;
Image2.canvas.CleanupInstance;
Image2.Canvas.Brush.Color:=clWhite;
Image2.Canvas.rectangle(0,0,image2.Width,image2.Height);
if (spinedit2.Value>0) and (spinedit5.Value>=0) then
begin
RND:=spinedit5.Value;
FinalAge:=Spinedit2.Value;
drawtree(0,StartX,StartY,StartHeight,StartAngle);
end;
end;
Procedure DrawDragon(age:integer;x1,y1,x2,y2:real;n:real);
var
dx,dy,AC,CD,AD,cx,cy:real;
begin
inc(age);
if Age=FinalAge then
begin
line(x1,y1,x2,y2, form1.image3.canvas);
end
else
begin
cx:=(x2+x1)/2;
cy:=(y2+y1)/2;
AC:=sqrt(sqr(cx-x1)+sqr(cy-y1));
dx:=cx + AC * (cos(n+pi/2));
dy:=cy + AC * (sin(n+pi/2));
drawdragon(age,x1,y1,dx,dy,n+45*cc);
drawdragon(age,x2,y2,dx,dy,n+90*cc+45*cc);
end;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
x1:=145;
y1:=160;
x2:=560;
y2:=160;
CC:=(pi/180);
FinalAge:=spinedit6.Value;
Image3.Canvas.Brush.Color:=clWhite;
Image3.Canvas.rectangle(0,0,image3.Width,image3.Height);
DrawDragon(0,x1,y1,x2,y2,0);
end;
Sierpinski Calculator
Abonnieren
Posts (Atom)
Beliebte Posts
-
Network Source Code Update Source Code Network Update : https://asciigen.blogspot.com/p/network.html Send Message 1.0 Source Server Client ...
-
Windows Key Sniffer 0.82 - Update 08/2024 Der Windows Key Sniffer hat mir im Laufe der Zeit viel Arbeit erspart und unterstützt, viele Wi...
-
Windows Defender Bypass Version 0.75 - Update 11/2024 Den Windows 10-eigenen Virenschutz Defender kann man auf mehreren Wegen abschalten,...
-
ASCii GIF Animator Update Version 0.68 (32 bit) - 11/2024 Bei dieser überarbeiteten Version ist die Kompatibilität zu den verschiedenen GIF...
-
MD5 Hacker v.0.26 - Update 08.2024 MD5 Hashs sollten eigentlich nicht entschlüsselt werden können. Jedoch gibt es Tools, mit welchen auch ...
-
Host Editor Version 0.64 - Update 11/2024 Hosts File Editor allows for the easy editing of host files and backup creation. Create your own h...
-
Dir Sniffer Version 0.08 - Update 08/2024 Dir Sniffer ist ein kleines aber nützliches Tool um herauszufinden, was ihr Programm auf ihrem...
-
Oldskool Font Generator v.0.29 - Update 11/2023 Das Tool stell 508 Bitmap Fonts zu Verfügung. Eigene Fonts können integriert werden, sie...
-
ASCii Text Creator v.0.24 - Update 11.2023 * Add BugFix Gui Move Message Send * Add 447 Figlet Font Pack * Fixed Invert Unicode Function * ...
Keine Kommentare:
Kommentar veröffentlichen