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 相关文章推荐
解放web程序员的输入验证
Oct 06 Javascript
List Information About the Binary Files Used by an Application
Jun 11 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
Oct 29 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
Dec 10 Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
Jun 12 Javascript
学习JavaScript设计模式之装饰者模式
Jan 19 Javascript
AngularJS中使用HTML5手机摄像头拍照
Feb 22 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
Oct 15 Javascript
详解AngularJS ui-sref的简单使用
Apr 24 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
js实现盒子滚动动画效果
Aug 09 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
我的论坛源代码(九)
2006/10/09 PHP
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
form自动提交实例讲解
2017/07/10 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
设定php简写功能的方法
2019/11/28 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
Python正规则表达式学习指南
2016/08/02 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
详解用python生成随机数的几种方法
2019/08/04 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
python实现简单的五子棋游戏
2020/09/01 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
2014新年寄语
2014/01/20 职场文书
超市员工管理制度
2015/08/06 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python