gpt4 book ai didi

python - 仅使用线函数绘制分形树

转载 作者:行者123 更新时间:2023-12-01 00:56:58 27 4
gpt4 key购买 nike

我正在尝试找出如何在不使用任何几何变换的情况下绘制分形树。

我已经想出了这段代码,但它无法正确旋转以用于进一步的分支。

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 值进行转换。

Right now i get this

Trying to draw this

最佳答案

我解决了这个问题。

void setup() {
size(1000,1000);
background(50);
stroke(255);
}

void draw() {
branch(100, width/2, height/2, 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, rx, y);

branch(size*0.66, rx, y, noi-1, alpha - angle);
branch(size*0.66, rx, y, noi-1, alpha + angle);

} else {
return;

}

}

关于python - 仅使用线函数绘制分形树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56172369/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com