есть задание, частью которого является реализация дерева пифагора... обнаженное дерево написал... а вот с классическим проблема мб кто поможет?
вот собственно код простого дерева а как бы из него сделать обобщённое (обдуваемое)
собственно дерево
Код:
//========================
procedure Draw(const Canvas : TCanvas; x, y, l, a, n: Real);
procedure Rect(const Canvas : TCanvas; x1, y1, l: Integer; a1, n: Real);
begin
Canvas.MoveTo(x1, y1);
Canvas.LineTo(x1 + Round(l * cos(a1)), y1 - Round(l * sin(a1)));
Canvas.LineTo(x1 + Round(l * sqrt(2) * cos(a1 + pi/4)),
y1 - Round(l * sqrt(2) * sin(a1 + pi/4)));
Canvas.LineTo(x1 + Round(l * cos(a1 + pi/2)), y1 - Round(l * sin(a1 + pi/2)));
Canvas.LineTo(x1, y1);
end;
begin
if l > n then
begin
Rect(Canvas, Round(x), Round(y), Round(l), a, n);
Draw(Canvas,
x - l*sin(a),
y - l * cos(a),
l/sqrt(2),
a + pi / 4 ,
n);
Draw( Canvas,
x - l * sin(a ) + l / sqrt(2) * cos(a + pi/4),
y - l * cos(a ) - l / sqrt(2) * sin(a + pi/4),
l / sqrt(2),
a - pi/4,
n);
end;
end;
//===================
а вот вызов
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Draw(form1.Canvas, form1.Width div 2, form1.Height - 100, 200, 0, 4);
//DrawBrn(form1.Canvas, 24, form1.Width div 2, form1.Height - 100, 200, 0, 0.86, 0.56);
end;