用processing编程如何实现毕达哥拉斯树 求具体代码
发布网友
发布时间:2022-04-25 02:09
我来回答
共2个回答
懂视网
时间:2022-05-15 04:59
这篇文章主要介绍了p5.js 毕达哥拉斯树的实现代码,现在分享给大家,也给大家做个参考。
本文介绍了p5.js 毕达哥拉斯树的实现代码,分享给大家,具体如下:
效果如下:
主要方法
translate()
rotate()
rect()
push()
pop()
map()
主要思想
递归
草图
过程分解
一、毕达哥拉斯树的递归函数
二、声明变量、创建画布
三、开始绘制毕达哥拉斯树
绘制毕达哥拉斯树完整代码
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
ajax文件上传成功 解决浏览器兼容问题
Ajax发送和接收二进制字节流数据的方法
laypage前端分页插件实现ajax异步分页
热心网友
时间:2022-05-15 02:07
void setup()
{
size(600,600);
background(0);
noFill();
stroke(255,200);
frameRate(1);
}
boolean zmianaK = true;
int ii = 1;
void draw()
{
if(ii < 18)
{ background(1);
dPitagorejskie(100,height/2-50, 55, 0.25, 0.4, ii);
ii++;
}
}
void dPitagorejskie(float X, float Y, float D, float wspP, float wspH, int ilRek)
{
pushMatrix();
translate(X,Y);
rectMode(CENTER);
dPitagorejskieR(D, wspP, wspH, ilRek);
rectMode(CORNER);
popMatrix();
}
void dPitagorejskieR(float D, float wspP, float wspH, int ilRek)
{
if(ilRek > 0 && (wspP <= 1))
{
ilRek--;
rect(0,0,D,D);
pushMatrix();
translate(D/2,0);
float H = wspH*D;
float rA = wspP*D;
float rB = (1-wspP)*D;
float A = dist(0, -D/2, H, rA-D/2); //przeciwprostokatna A
float B = dist(0, D/2, H, D/2-rB); //przeciwprostokatna A
float alfa = atan(H/rA);
float beta = atan(H/rB);
translate(H/2, rA/2-D/2);
rotate(-alfa);
translate(A/2, 0);
dPitagorejskieR(A, zmianaK ? 1-wspP : wspP, wspH, ilRek);
popMatrix();
translate(D/2,D/2);
translate(H/2, -rB/2);
rotate(beta);
translate(B/2, 0);
dPitagorejskieR(B, zmianaK ? 1-wspP : wspP, wspH, ilRek);
}
}