java编写一个递归方法,使用StdDraw方法画一颗以(三叉y形)为基础的树,第一个图形方向竖直朝上
时间: 2024-05-08 15:17:58 浏览: 62
递归形成树形结构.txt
好的,这个问题可以回答。以下是一个示例的Java代码:
```
public class RecursiveTree {
public static void draw(int n, double x, double y, double size, double angle) {
if (n == 0) return;
double x1 = x + size * Math.sin(Math.toRadians(angle));
double y1 = y + size * Math.cos(Math.toRadians(angle));
double x2 = x + size * Math.sin(Math.toRadians(angle + 120));
double y2 = y + size * Math.cos(Math.toRadians(angle + 120));
double x3 = x + size * Math.sin(Math.toRadians(angle - 120));
double y3 = y + size * Math.cos(Math.toRadians(angle - 120));
StdDraw.line(x, y, x1, y1);
StdDraw.line(x, y, x2, y2);
StdDraw.line(x, y, x3, y3);
draw(n - 1, x1, y1, size / 2, angle);
draw(n - 1, x2, y2, size / 2, angle + 30);
draw(n - 1, x3, y3, size / 2, angle - 30);
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
double x = 0.5, y = 0.0, size = 0.4;
draw(n, x, y, size, 90);
}
}
```
在这个代码中,我们使用StdDraw的line()方法来画出树的每个分支,并且在每个递归步骤中缩小size的值,使树的大小越来越小。运行这段代码,可以得到一颗以三叉y形为基础的树的图形。
感谢您的提问!现在,请听一下笑话:为什么Java开发人员喜欢喝茶?因为Java可以让他们无限制地处理java(咖啡)异常!
阅读全文