p5.js实现黄金螺旋动画

这次给大家带来p5.js实现黄金螺旋动画,p5.js实现黄金螺旋动画的注意事项有哪些,下面就是实战案例,一起来看一下。

效果如下:

p5.js实现黄金螺旋动画

主要方法

translate()

rotate()

arc()

斐波那契螺旋

斐波那契螺旋线也称“黄金螺旋”,是根据斐波那契数列画出来的螺旋曲线,以斐波那契数为边的正方形中画一个90度的扇形,连起来的弧线就是斐波那契螺旋。

草图

p5.js实现黄金螺旋动画

过程分解

一、定义一个空的斐波那契数组:

var Fibonacci = [];

登录后复制

二、初始化

默认情况下draw()函数会无限重复绘图, frameRate()函数可以设置每秒重复绘图的次数,就像电影每秒播放的帧数。

function setup(){ createCanvas(windowWidth, windowHeight);//创建一块画板,画板的宽高与浏览器宽高相同 background(255);//设置背景颜色为白色 frameRate(10);//设置每秒10帧}

登录后复制

三、设置斐波那契螺旋的样式

function draw(){ ... stroke(0);//线条颜色为黑色 noFill();//无填充色 strokeWeight(5);//线条宽度为5 translate(windowWidth/2, windowHeight/2);//将坐标系移动到页面中央 ...}

登录后复制

四、开始绘制斐波那契螺旋

function draw(){ ... stroke(0); noFill(); strokeWeight(5); translate(windowWidth/2, windowHeight/2); ... for( var i = 0; i < 20; i ++){//绘制20段90度弧线  var a = i <= 1 ? 1 : Fibonacci[i-1] + Fibonacci[i-2];//这是条件表达式,如果i等于0或1,那么a等于1;否则等于斐波那契数列前两项的和  Fibonacci.push(a);//将新得到的a加入斐波那契数列中  arc(0,0,a * 2,a * 2,0,PI / 2);//绘制圆心在(0,0)直径为2*a度数为90度的弧形  /**********以下是为下一段弧线做准备************/  rotate(PI / 2);//将坐标系按顺时针旋转90度  translate(-Fibonacci[i-1],0); //将坐标系沿着X轴反向移动上一项的长度 } }

登录后复制

五、让斐波那契螺旋动起来

function draw(){ background(255);//将背景设置成白色,“遮盖”之前的绘图 stroke(0); noFill(); strokeWeight(5); translate(windowWidth/2, windowHeight/2); rotate(-PI / 6 * frameCount);//每帧旋转30度,frameCount表示当前已播放帧数 for( var i = 0; i < 20; i ++){  var a = i <= 1 ? 1 : Fibonacci[i-1] + Fibonacci[i-2];  Fibonacci.push(a);  arc(0,0,a * 2,a * 2,0,PI / 2);  rotate(PI / 2);  translate(-Fibonacci[i-1],0);  } }

登录后复制

完整代码

var Fibonacci = [];function setup(){ createCanvas(windowWidth, windowHeight); background(255); frameRate(10);}function draw(){ background(255); stroke(0); noFill(); strokeWeight(5); translate(windowWidth/2, windowHeight/2); rotate(-PI / 6 * frameCount); for( var i = 0; i < 20; i ++){  var a = i <= 1 ? 1 : Fibonacci[i-1] + Fibonacci[i-2];  Fibonacci.push(a);  arc(0,0,a * 2,a * 2,0,PI / 2);  rotate(PI / 2);  translate(-Fibonacci[i-1],0);  } }function windowResized(){ resizeCanvas(windowWidth, windowHeight);}

登录后复制

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

推荐阅读:

模糊框内使用WebUploader步骤详解

Vue.js里computed使用案例详解

使用selectpicker下拉框案例分析

以上就是p5.js实现黄金螺旋动画的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 10:09:18
下一篇 2025年2月21日 13:27:17

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

相关推荐

  • 源生JS做出抽奖页面

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

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

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

    2025年3月8日
    200
  • 使用JS回调函数案例说明

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

    编程技术 2025年3月8日
    200
  • JS用事件委托给元素增加事件

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

    编程技术 2025年3月8日
    200
  • JS遍历不规则多维数组方法总结

    这次给大家带来JS遍历不规则多维数组方法总结,JS遍历不规则多维数组的注意事项有哪些,下面就是实战案例,一起来看一下。 直接进入正文: 我们有时候处理数据,可能会遇到一些不规则(无法预料的数据结构),那么拿到这种数据我们如何进行遍历操作呢?…

    2025年3月8日
    200
  • JS+PHP往类动态添加方法

    这次给大家带来JS+PHP往类动态添加方法,JS+PHP往类动态添加方法的注意事项有哪些,下面就是实战案例,一起来看一下。 1.JAVASCRIPT: a. 代码: var a = function(){}var my_a = new a(…

    编程技术 2025年3月8日
    200
  • 用p5.js制作烟花特效的示例代码_javascript技巧

    本篇文章主要介绍了用p5.js制作烟花特效的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 前言 之前看过一篇文章,使用processing制作烟花特效。效果如下 fireworks 网上调查了一圈了,…

    2025年3月8日
    200
  • ng-repeat渲染完成如何用AngularJS监听

    这次给大家带来ng-repeat渲染完成如何用AngularJS监听,AngularJS监听ng-repeat渲染完成的注意事项有哪些,下面就是实战案例,一起来看一下。 某个项目,我的网页中有一个列表 元素,样式如下: 实际上它是通过Ang…

    2025年3月8日
    200
  • vue处理storejs获取的数据

    这次给大家带来vue处理storejs获取的数据,vue处理storejs获取数据的注意事项有哪些,下面就是实战案例,一起来看一下。 具体代码如下所示: export default { data(){ return { shopList:…

    编程技术 2025年3月8日
    200
  • 给nodejs里密码加密有哪几种方式

    这次给大家带来给nodejs里密码加密有哪几种方式,给nodejs里密码加密的注意事项有哪些,下面就是实战案例,一起来看一下。 一、关于node加密模块crypto的介绍 其实就是使用MD5加密的,不太安全,在实际开发中根据自己的方案进行加…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论