树木曲线
/* 树木曲线*/
#include "glib.h"
int N=7; /*递归次数*/
double sx=320.0,sy=390.0; /*开始点坐标*/
double leng1=120.0; /*根到第一分枝点的长度*/
double branch[][2]={{30.0,0.7},{-30.0,0.7},END};
/*树木曲线描绘函数*/
void tree(double leng,int n)
{
int i=0;
if (n<=N)
{
setcolor(n);
if (1==n) /*根到第一分枝点的树干描画*/
{
move(leng);
tree(leng,n+1);
}
else
while (END!=branch[i][0])
{
turn(branch[i][0]);
move(branch[i][1]*leng);
tree(branch[i][1]*leng,n+1);
turn(180.0);
warp(branch[i][1]*leng);
turn(180-branch[i][0]);
i++;
}
}
else /*果实的描画 */
{
setcolor(15);
warp(leng*0.3);
circle(LPX,LPY,leng*0.3);
setfillstyle(1,15);
floodfill(LPX,LPY,15);
turn(180.0);
warp(leng*0.3);
turn(180.0);
}
setcolor(n-1);
}
void main(void)
{
ginit();
setlp(sx,sy);
setangle(90.0);
tree(leng1,1);
gend();
}

浙公网安备 33010602011771号