我想知道如何在不使用任何几何变换的情况下绘制分形树。你知道吗
我已经想出了这个代码,但它不能正确地为进一步的分支旋转。你知道吗
void setup() {
size(1000,1000);
background(50);
stroke(255);
}
void draw() {
branch(100, width/2, height, 10, PI/2);
}
float angle = PI/6;
void branch(float size, float cx, float cy, int noi, float alpha) {
if(noi != 0) { //Number of increments - noi
float rx = cx + (cos(alpha) * size);
float lx = cx - (cos(alpha) * size);
float y = cy - (sin(alpha) * size);
line(cx, cy, rx, y);
line(cx, cy, lx, y);
branch(size/2, rx, y, noi-1, alpha - angle);
branch(size/2, lx, y, noi-1, alpha - angle);
} else {
return;
}
}
我使用基本的三角转换来寻找下一个左右点。我想我没有使用正确的alpha值进行转换。你知道吗
我相信你的问题在于角度管理,你认为
rx
和lx
可以共享一个公共的y
。下面是我在Python turtle中的重做:在本例中,分支扩展是一个常数,但我们仍然需要管理每个分支弯曲的角度:
我解决了这个问题。你知道吗
相关问题 更多 >
编程相关推荐