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 相关文章推荐
jQuery布局插件UI Layout简介及使用方法
Apr 03 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
Aug 13 Javascript
checkbox勾选判断代码分析
Jun 11 Javascript
javascript实现数独解法
Mar 14 Javascript
JavaScript模拟鼠标右键菜单效果
Dec 08 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
Dec 25 Javascript
js实现本地时间同步功能
Aug 26 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
Oct 26 Javascript
vue-cli webpack 引入swiper的操作方法
Sep 15 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
Oct 10 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
Mar 03 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的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
php多文件上传实现代码
2014/02/20 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
python文件路径操作方法总结
2020/12/21 Python
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
应聘教师自荐信
2013/10/12 职场文书
保险公司年会主持词
2014/03/22 职场文书
党风廉政建设责任书
2014/04/14 职场文书
标准毕业生自荐信
2014/06/24 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL