Пример. Пифагорово  дерево  задается  так:  "ствол" дерева-  вертикальный  отрезок  длиной  l.  От него вверх симметрично отходят две ветки так, чтобы  угол  между  ними  был  90  градусов,  их длина равна k*l, где k<1. Так повторяется для заданного   количества   уровней.   На   рисунке показано     дерево     Пифагора     при     k=0.7, имеющее 5 уровней.



void Pifagor( float x, float y, float l, float angle, int n)

{

   float k = 0.7, x1, y1;

   x1 = x + l*cos(angle);

   y1 = y - l*sin(angle);

   line (x, y, x1, y1);

   if ( n <= 1) return;

   Pifagor(x1, y1, k*l, angle+M_PI_4, n-1);

   Pifagor(x1, y1, k*l, angle-M_PI_4, n-1);

}




2009-12-19 • Просмотров [ 2695 ]