java编写一个递归方法,使用StdDraw方法画一颗以y形为基础的树
时间: 2024-04-29 21:24:59 浏览: 80
好的,下面是一个递归的实现,可以画一颗以y形为基础的树:
```
public class TreeDraw {
public static void drawTree(double x, double y, double length, double angle, int generations) {
if (generations == 0) return;
double x2 = x + length * Math.sin(Math.toRadians(angle));
double y2 = y + length * Math.cos(Math.toRadians(angle));
StdDraw.line(x, y, x2, y2);
drawTree(x2, y2, length * 0.7, angle + 25, generations - 1);
drawTree(x2, y2, length * 0.7, angle - 25, generations - 1);
}
public static void main(String[] args) {
StdDraw.setCanvasSize(800, 800);
StdDraw.setXscale(-1, 1);
StdDraw.setYscale(-1, 1);
StdDraw.enableDoubleBuffering();
drawTree(0, -0.8, 0.4, 90, 7);
StdDraw.show();
}
}
```
这个代码使用 `StdDraw` 方法画一颗树,树的基础是 `y` 形,初始位置在 `(0, -0.8)`,树的长度是 `0.4`,第一层树枝的角度是 `90` 度,总共有 `7` 层,可以根据需要修改。
阅读全文