22 lines
640 B
Plaintext
22 lines
640 B
Plaintext
procedure DrawTree(Image: TImage; X1, Y1: integer; Angle: double; Depth: integer);
|
|
var X2,Y2: integer;
|
|
begin
|
|
if Depth = 0 then exit;
|
|
X2:=trunc(X1 + cos(DegToRad(Angle)) * Depth * 5);
|
|
Y2:=trunc(Y1 + sin(DegToRad(Angle)) * Depth * 5);
|
|
Image.Canvas.Pen.Color:=ColorMap47[MulDiv(High(ColorMap47),Depth,11)];
|
|
Image.Canvas.Pen.Width:=MulDiv(Depth,5,10);
|
|
Image.Canvas.MoveTo(X1,Y1);
|
|
Image.Canvas.LineTo(X2,Y2);
|
|
DrawTree(Image, X2, Y2, Angle - 10, Depth - 1);
|
|
DrawTree(Image, X2, Y2, Angle + 35, Depth - 1);
|
|
end;
|
|
|
|
|
|
procedure ShowFactalTree(Image: TImage);
|
|
begin
|
|
ClearImage(Image,clBlack);
|
|
DrawTree(Image, 250, 350, -90, 11);
|
|
Image.Invalidate;
|
|
end;
|