孤独的猫

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

线段构成的递归图形

/*由线段构成的递归曲线*/
#include "glib.h"
int n_rot=5;            /*旋转对称次数*/
int N=5;               /*递归次数*/
double ang,scale=0.38;    /*scale缩小率*/
double leng1=120.0;       /*中心到下个分枝点的长度*/

void recurs(double leng,int n)
{
  int i;
  double s;
  if (n<=N)
  {
 setcolor(n);
 for (i=0;i<n_rot;i++)
 {
   if (1!=n && !(n_rot%2))
  s=(i+0.5)*ang;
   else
  s=i*ang;
   turn(s);
   move(leng);
   recurs(leng*scale,n+1);
   turn(180.0);
   warp(leng);
   turn(180-s);
 }
  }
  setcolor(n-1);
}

void main(void)
{
  ginit();
  setbkcolor(15);
  ang=360.0/n_rot;
  setlp(320.0,200.0);
  setangle(90.0);
  recurs(leng1,1);
  gend();
}

posted on 2011-03-04 21:40  孤独的猫  阅读(246)  评论(0)    收藏  举报