java编写一个递归方法,使用StdDraw方法画一颗以(三叉y形 分叉两长一短)为基础的树,线条初始宽度为10像素,线条宽度随递归逐渐变小
时间: 2024-05-02 17:19:03 浏览: 58
好的,这是一个关于Java编程的问题,我可以回答。以下是实现代码:
```
public class RecursiveTree {
public static void drawTree(double x, double y, double angle, double length, int depth, double lineWidth) {
if (depth == 0) return;
double x1 = x + length * Math.sin(angle);
double y1 = y + length * Math.cos(angle);
StdDraw.setPenRadius(lineWidth);
StdDraw.line(x, y, x1, y1);
drawTree(x1, y1, angle + Math.PI / 3, length * 0.7, depth - 1, lineWidth * 0.7);
drawTree(x1, y1, angle - Math.PI / 3, length * 0.6, depth - 1, lineWidth * 0.6);
drawTree(x1, y1, angle, length * 0.8, depth - 1, lineWidth * 0.8);
}
public static void main(String[] args) {
StdDraw.setCanvasSize(600, 600);
StdDraw.setXscale(0, 600);
StdDraw.setYscale(0, 600);
drawTree(300, 50, Math.PI / 2, 100, 9, 10);
}
}
```
这是一个递归方法,通过StdDraw方法画一颗以(三叉y形 分叉两长一短)为基础的树,线条初始宽度为10像素,线条宽度随递归逐渐变小。
阅读全文