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 相关文章推荐
网站内容禁止复制和粘贴、另存为的js代码
Feb 26 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
JavaScript函数柯里化详解
Apr 29 Javascript
Vue-Router进阶之滚动行为详解
Sep 13 Javascript
聊聊Vue.js的template编译的问题
Oct 09 Javascript
详解VueJs中的V-bind指令
May 03 Javascript
node puppeteer(headless chrome)实现网站登录
May 09 Javascript
JavaScript解析及序列化JSON的方法实例分析
Jan 04 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
Jan 30 Javascript
详解关于React-Router4.0跳转不置顶解决方案
May 10 Javascript
微信小程序实现下滑到底部自动翻页功能
Mar 07 Javascript
JS时间戳与日期格式互相转换的简单方法示例
Jan 30 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
php引用传值实例详解学习
2013/11/06 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
js实现选项卡效果
2020/03/07 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
营销与策划应届生求职信
2013/11/04 职场文书
小学庆六一活动方案
2014/02/28 职场文书
防沙治沙典型材料
2014/05/07 职场文书
工商管理专业自荐信
2014/06/03 职场文书
如何利用STAR法则制作留学文书?
2019/08/26 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS