p5.js码绘“跳动的小正方形”的实现代码


Posted in Javascript onOctober 22, 2019

作业成果展示

p5.js码绘“跳动的小正方形”的实现代码

实验原理

主要是要实现小正方形的上下来回运动,并且每个小正方形的跳动有一定的时间差视觉上要呈现依次跳动的感觉。

本来我想用一个if语句来实现这个功能!但是想了很久没想到正确的代码……后来经同学提醒用了sin函数!真的很好用!

var y1=posY+30sin(t);
var y2=posY+28sin(t-1);
var y3=posY+26sin(t-2);
var y4=posY+24sin(t-3);
var y5=posY+22sin(t-4);
var y6=posY+20sin(t-5);

这种sin函数不但能实现依照时间上下做简谐运动,而且只需要改变sin前面的振幅和里面的参数就能够做到小正方形的依次跳动。

小正方形的圆角变化也是用了sin函数,不过因为rect后面控制角的参数是不接受负数的所以用了var b=abs(a)取绝对值。

代码

let posY;
function setup() {
createCanvas(630, 500);//创建画布
noStroke();//不给物体描边
frameRate(60);//帧率设为60
}
function draw() {
background(220);//画布的背景颜色
//为小正方形圆角变化做准备
var t=millis()/400; 
posY=height*0.46;
var a=20*sin(t*0.7);
var b=abs(a);//取绝对值
//为小正方形上下运动做准备
var y1=posY+30*sin(t);
var y2=posY+28*sin(t-1);
var y3=posY+26*sin(t-2);
var y4=posY+24*sin(t-3);
var y5=posY+22*sin(t-4);
var y6=posY+20*sin(t-5);
var y11=posY+30*cos(t);
var y22=posY+28*cos(t-1);
var y33=posY+26*cos(t-2);
var y44=posY+24*cos(t-3);
var y55=posY+22*cos(t-4);
var y66=posY+20*cos(t-5);
//画小正方形
fill(211);
rect(10, y1, 15, 15,b);
fill(192)
rect(30, y2, 20,20,b);
fill(169)
rect(60, y3, 30,30,b);
fill(128)
rect(100, y4, 40,40,b);
fill(105)
rect(150, y5, 50,50,b);
fill(0)
rect(210, y6, 60,60,b);
fill(r, g, b, 127)//每次点击一下最中间的小正方形都会改变它的颜色
rect(280,posY ,70,70,b);
fill(0)
rect(360, y66, 60,60,b);
fill(105)
rect(430, y55, 50,50,b);
fill(128)
rect(490, y44, 40,40,b);
fill(169)
rect(540, y33, 30,30,b);
fill(192)
rect(580, y22, 20,20,b);
fill(211);
rect(605, y11, 15, 15,b);
}

//关于鼠标点击做出响应的函数
function mouseClicked() {
let d = dist(mouseX, mouseY, 360, 200);
 if (d < 100) {
 // Pick new random color values
 r = random(255);
 g = random(255);
 b = random(255);
 }}

总结

以上所述是小编给大家介绍的p5.js码绘“跳动的小正方形”的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
[HTML/CSS/Javascript]WWTJS
Sep 25 Javascript
Javascript 面向对象(二)封装代码
May 23 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
Jul 05 Javascript
JavaScript 事件对象介绍
Apr 13 Javascript
JavaScript实现的简单幂函数实例
Apr 17 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
Mar 01 Javascript
基于rem的移动端响应式适配方案(详解)
Jul 07 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
微信网页登录逻辑与实现方法
Apr 29 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 Javascript
js blob类型url的视频下载问题的解决
Nov 29 Javascript
微信小程序绑定手机号获取验证码功能
Oct 22 #Javascript
微信小程序开发之转发分享功能
Oct 22 #Javascript
微信小程序转发事件实现解析
Oct 22 #Javascript
小程序点击图片实现png转jpg
Oct 22 #Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
Oct 22 #Javascript
微信小程序实现左侧滑动导航栏
Apr 08 #Javascript
微信小程序自定义组件components(代码详解)
Oct 21 #Javascript
You might like
从PHP的源码中深入了解stdClass类
2014/04/18 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
jQuery Validate插件实现表单验证
2016/08/19 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
Python中threading模块join函数用法实例分析
2015/06/04 Python
python从入门到精通(DAY 2)
2015/12/20 Python
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
浅谈django中的认证与登录
2016/10/31 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
python实现抽奖小程序
2020/04/15 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
十一个高级MySql面试题
2014/10/06 面试题
涉外文秘个人求职的自我评价
2013/10/07 职场文书
致200米运动员广播稿
2014/02/06 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
任命书格式模板
2015/09/22 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书