毕达哥拉斯树怎样用JS实现

这次给大家带来毕达哥拉斯怎样用JS实现,毕达哥拉斯树用JS实现的注意事项有哪些,下面就是实战案例,一起来看一下。

效果如下:

毕达哥拉斯树怎样用JS实现

主要方法

translate()

rotate()

rect()

push()

pop()

map()

主要思想

递归

草图

毕达哥拉斯树怎样用JS实现

过程分解

一、毕达哥拉斯树的递归函数

function Pythagorian(x){ noStroke(); fill(107, 142, 35,map(x, 0, a, 150, 255));//根据正方形边长设置填充色 rect(0,0,x,x);//绘制当前的正方形  if(x <= 3) return 0;//当正方形边长小于3时,结束递归 /* 绘制右上角的正方形 */  push(); rotate(PI / 2 - t);//坐标轴顺时针旋转约37deg translate(0,-x/5 * 3 - x/5*4);//坐标轴向上平移3边+4边的长度 Pythagorian(x/5*4);//递归调用毕达哥拉斯函数 pop();  /* 绘制左上角的正方形 */ push(); rotate( - t);//坐标轴逆时针旋转约53deg translate(0,-x/5 * 3);//坐标轴向上平移3边的长度 Pythagorian(x/5*3);//递归调用毕达哥拉斯函数 pop();  }

登录后复制

二、声明变量、创建画布

var a = 100; //最大正方形边长var t;//4边所对应的角度function setup(){ t = 53.1301024 / 360 * 2 * PI;//约为53deg createCanvas(windowWidth, windowHeight);//创建画布 background(255); noLoop();//draw()函数只执行一次}

登录后复制

三、开始绘制毕达哥拉斯树

function draw(){ translate(windowWidth/2, windowHeight - a * 2);//将坐标系平移至画布中间底部 Pythagorian(a);//调用毕达哥拉斯递归函数}

登录后复制

绘制毕达哥拉斯树完整代码

var a = 100;var t;function setup(){ t = 53.1301024 / 360 * 2 * PI; createCanvas(windowWidth, windowHeight); background(255); noLoop();}function draw(){ translate(windowWidth/2, windowHeight - a * 2); Pythagorian(a); }function Pythagorian(x){ noStroke(); fill(107, 142, 35,map(x, 0, a, 150, 255)); rect(0,0,x,x);  if(x <= 3) return 0;  push(); rotate(PI / 2 - t); translate(0,-x/5 * 3 - x/5*4); Pythagorian(x/5*4); pop();  push(); rotate( - t); translate(0,-x/5 * 3); Pythagorian(x/5*3); pop();  }

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

JS原始值与引用值有哪些储存方式

Vue如何将过滤器格式化

Angular中第三方UI框架、控件使用步骤详解

以上就是毕达哥拉斯树怎样用JS实现的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2764751.html

(0)
上一篇 2025年3月8日 10:36:06
下一篇 2025年3月7日 10:19:10

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • js-cookie使用步骤详解

    这次给大家带来js-cookie使用步骤详解,js-cookie使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Cookie是网站设计者放置在客户端的小文本文件,一般后台语言使用的比较多,可以实现用户个性化的一些需求。js-cook…

    编程技术 2025年3月8日
    200
  • url、href、src在JS中的使用

    这次给大家带来url、href、src在JS中的使用,url、href、src在JS中使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一、URL的概念 统一资源定位符(或称统一资源定位器/定位地址、URL地址等,英语:Uniform…

    2025年3月8日 编程技术
    200
  • js验证出生日期正则表达式

    这次给大家带来js验证出生日期正则表达式,实现js验证出生日期正则表达式的注意事项有哪些,下面就是实战案例,一起来看一下。 简言 在表单验证中,经常会用正则表达式做出生日期校验。本文把出生日期分割成几个部分,分步地介绍了实现一个出生日期校验…

    2025年3月8日
    200
  • Vue.js中computed使用详解

    这次给大家带来Vue.js中computed使用详解,Vue.js中computed使用的注意事项有哪些,下面就是实战案例,一起来看一下。 JS属性: JavaScript有一个特性是 Object.defineProperty ,它能做很…

    编程技术 2025年3月8日
    200
  • JS事件委托使用详解

    这次给大家带来JS事件委托使用详解,JS事件委托使用的注意事项有哪些,下面就是实战案例,一起来看一下。 事件委托(也叫事件代理),其实这个问题也简单,要想弄明白事件委托,我们先要把事件冒泡的机制搞清楚。举个事件冒泡的例子: 点击 var u…

    编程技术 2025年3月8日
    200
  • p5.js实现斐波那契螺旋动画步骤详解

    这次给大家带来p5.js实现斐波那契螺旋动画步骤详解,p5.js实现斐波那契螺旋动画的注意事项有哪些,下面就是实战案例,一起来看一下。 效果如下: 主要方法 translate() rotate() arc() 斐波那契螺旋 斐波那契螺旋线…

    2025年3月8日
    200
  • JS实现摩天轮抽奖

    这次给大家带来JS实现摩天轮抽奖,JS实现摩天轮抽奖的注意事项有哪些,下面就是实战案例,一起来看一下。  效果图: 图片素材 : 代码如下,复制即可使用: 幸运抽奖页面 /*CSS代码*/ *{ padding:0; margin:0; }…

    2025年3月8日
    200
  • nodejs搭建本地服务器并处理跨域

    这次给大家带来nodejs搭建本地服务器并处理跨域,nodejs搭建本地服务器并处理跨域的注意事项有哪些,下面就是实战案例,一起来看一下。 最近把以前用jquery写的一个小demo拿出来运行的,刚开始的时候忘了开启本地服务导致控制台一直报…

    2025年3月8日
    200
  • JS回调函数实例详解

    这次给大家带来JS回调函数实例详解,使用JS回调函数的注意事项有哪些,下面就是实战案例,一起来看一下。 在说回调函数之前,不妨先看一段代码,相信有点js基础的同学都能明白他的含义: document.getElementById(‘demo…

    编程技术 2025年3月8日
    200
  • JS给动态添加元素增加事件(附代码)

    这次给大家带来JS给动态添加元素增加事件(附代码),JS给动态添加元素增加事件的注意事项有哪些,下面就是实战案例,一起来看一下。 我们在日常开发中有时会通过js创建一些元素,但是如果使用原始的for循环给创建的节点添加事件的方法往往行不通:…

    2025年3月8日
    200

发表回复

登录后才能评论