C语言递归画雪花
时间: 2023-07-05 17:16:02 浏览: 104
好的,我可以帮你解答这个问题。以下是一个递归画雪花的C语言代码示例:
```c
#include <stdio.h>
#include <graphics.h>
#include <math.h>
void draw(int x, int y, int len, int angle, int depth);
int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
int x = 300, y = 300, len = 200, angle = 0, depth = 3;
draw(x, y, len, angle, depth);
getch();
closegraph();
return 0;
}
void draw(int x, int y, int len, int angle, int depth)
{
if (depth == 0)
{
return;
}
int x1 = x + len * cos(angle * M_PI / 180);
int y1 = y + len * sin(angle * M_PI / 180);
line(x, y, x1, y1);
int len2 = len / 3;
draw(x1, y1, len2, angle - 60, depth - 1);
draw(x1, y1, len2, angle + 60, depth - 1);
draw(x1, y1, len2, angle, depth - 1);
}
```
该代码使用了graphics.h库,需要在编译时链接该库。
运行后,你会看到一个递归画雪花的动画。其中,x和y表示起始点的坐标,len表示线段长度,angle表示线段的角度,depth表示递归深度。
希望这个代码示例能够帮到你。如果还有其他问题,可以继续问我。
阅读全文