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脚本复制网页上的一个表格的不错实现方法
Dec 29 Javascript
在IE模态窗口中自由查看HTML源码的方法
Mar 08 Javascript
Javascript 各浏览器的 Javascript 效率对比
Jan 23 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
Mar 05 Javascript
实用的Jquery选项卡TAB示例代码
Aug 28 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
jquery删除table当前行的实例代码
Oct 07 Javascript
Vue form 表单提交+ajax异步请求+分页效果
Apr 22 Javascript
微信小程序Redux绑定实例详解
Jun 07 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
May 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
PHP4实际应用经验篇(5)
2006/10/09 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
Python执行时间的几种计算方法
2020/07/31 Python
征用土地赔偿协议书
2014/09/26 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP