本文介绍了p5。js毕达哥拉斯树的实现代码,分享给大家,具体如下:
效果如下:
<强>主要方法强>
-
<李>翻译()李>
<李>旋转()李>
<李>矩形()李>
<李> push() 李>
<李> pop() 李>
<李> map() 李>
<强>主要思想强>
递归
<强>草图强>
<强>一,毕达哥拉斯树的递归函数强>
函数Pythagorian (x) { noStroke (); 填满(107,142,35岁的地图(x, 0, 150, 255));//根据正方形边长设置填充色 矩形(0,0,x, x);//绘制当前的正方形 如果(x & lt;=3)返回0;//当正方形边长小于3时,结束递归/*绘制右上角的正方形*/push (); 旋转(π/2 - t);//坐标轴顺时针旋转约37度 翻译(0,- x/5 * 3 - x/5 * 4);//坐标轴向上平移3边+ 4边的长度 Pythagorian (x/5 * 4);//递归调用毕达哥拉斯函数 pop ();/*绘制左上角的正方形*/push (); 旋转(- t);//坐标轴逆时针旋转约53度 翻译(0,- x/5 * 3);//坐标轴向上平移3边的长度 Pythagorian (x/5 * 3);//递归调用毕达哥拉斯函数 pop (); } >之前<强>二、声明变量,创建画布强>
var=100;//最大正方形边长 var t;//4边所对应的角度 函数设置(){ t=53.1301024/360 * 2 *π;//约为53度 createCanvas (windowWidth windowHeight);//创建画布 背景(255); noLoop();//画()函数只执行一次 }<强>三,开始绘制毕达哥拉斯树强>
函数画(){ 翻译(windowWidth/2, windowHeight - * 2);//将坐标系平移至画布中间底部 Pythagorian (a);//调用毕达哥拉斯递归函数 } >之前绘制毕达哥拉斯树完整代码
var=100; var t; 函数设置(){ t=53.1301024/360 * 2 *π; createCanvas (windowWidth windowHeight); 背景(255); noLoop (); } 函数画(){ 翻译(windowWidth/2, windowHeight - * 2); Pythagorian(一个); } 函数Pythagorian (x) { noStroke (); 填满(107,142,35岁的地图(x, 0, 150, 255)); 矩形(0,0,x, x); 如果(x & lt;=3)返回0; push (); 旋转(π/2 - t); 翻译(0,- x/5 * 3 - x/5 * 4); Pythagorian (x/5 * 4); pop (); push (); 旋转(- t); 翻译(0,- x/5 * 3); Pythagorian (x/5 * 3); pop (); }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
p5。js毕达哥拉斯树的实现代码