我想通过平滑的动画将我的图像在cos(20)
和-cos(20)
之间旋转。
使用branch()
函数进行树的递归构建。我无法想出如何使用循环来实现它。是否有内置函数或特定算法可以实现这一点?
let angles = 0;
var strokeValue = 1;
function setup() {
const canvas = createCanvas(540, 400);
frameRate(8);
}
function draw() {
background(220);
angle = PI/8;
translate(250, height);
// I think the rotate function should be here
branch(90);
}
function branch(length) {
strokeWeight(strokeValue);
line(1, 1, 1, -length);
translate(0, -length);
if (length > 4) {
//Right branches
push();
rotate(angle);
branch(length * 0.72);
pop();
// left branches
push();
rotate(-angle);
branch(length * 0.72);
pop();
push();
// middle
rotate(-angle * 0.2);
branch(length * 0.3);
pop();
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js"></script>