帮我写一个processing程序,内容是一颗树不断生长树枝
时间: 2024-05-11 17:20:28 浏览: 14
以下是一个简单的Processing程序,可以画出一棵不断生长的树。
```java
float angle = 0;
float angleRange = 60;
float branchLength = 100;
float branchShrinkFactor = 0.7;
float branchThickness = 10;
float branchThicknessShrinkFactor = 0.7;
void setup() {
size(800, 600);
stroke(0, 255, 0);
strokeWeight(branchThickness);
frameRate(30);
}
void draw() {
background(255);
// 根据时间变化角度和长度
angle = sin(millis() / 500.0) * angleRange;
branchLength += sin(millis() / 1000.0) * 5;
// 绘制树干
pushMatrix();
translate(width / 2, height);
line(0, 0, 0, -branchLength);
translate(0, -branchLength);
branch(branchLength);
popMatrix();
}
void branch(float len) {
if (len > 5) {
// 绘制左侧分支
pushMatrix();
rotate(angle);
line(0, 0, 0, -len * branchShrinkFactor);
translate(0, -len * branchShrinkFactor);
branch(len * branchShrinkFactor);
popMatrix();
// 绘制右侧分支
pushMatrix();
rotate(-angle);
line(0, 0, 0, -len * branchShrinkFactor);
translate(0, -len * branchShrinkFactor);
branch(len * branchShrinkFactor);
popMatrix();
// 缩小树枝粗细
branchThickness *= branchThicknessShrinkFactor;
strokeWeight(branchThickness);
}
}
```
该程序使用了递归来实现树枝的生长,每次绘制树枝时,会继续调用`branch()`函数来绘制左右两侧的分支。树枝的长度和角度会根据时间变化,使得树的生长看起来更加自然。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)