Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   дерево пифагора (классическое) (http://forum.oszone.net/showthread.php?t=205412)

ROR13 22-04-2011 15:28 1663935

дерево пифагора (классическое)
 
есть задание, частью которого является реализация дерева пифагора... обнаженное дерево написал... а вот с классическим проблема мб кто поможет?
вот собственно код простого дерева а как бы из него сделать обобщённое (обдуваемое)
собственно дерево
Код:

//========================

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;



Время: 19:27.

Время: 19:27.
© OSzone.net 2001-