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 相关文章推荐
背景音乐每次刷新都可以自动更换
Feb 01 Javascript
Cookie 注入是怎样产生的
Apr 08 Javascript
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
快速查找数组中的某个元素并返回下标示例
Sep 03 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
js简单工厂模式用法实例
Jun 30 Javascript
微信小程序 教程之注册程序
Oct 17 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
Bootstrap 网格系统布局详解
Mar 19 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
JS如何监听div的resize事件详解
Dec 03 Javascript
vue.js 使用原生js实现轮播图
Apr 26 Vue.js
微信小程序绑定手机号获取验证码功能
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
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
基于jquery的超简单上下翻
2010/04/20 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
django 创建过滤器的实例详解
2017/08/14 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
python编程的核心知识点总结
2021/02/08 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
高级Java程序员面试题
2016/06/23 面试题
数控技校生自我鉴定
2014/03/02 职场文书
运动会入场词
2015/07/18 职场文书
oracle重置序列从0开始递增1
2022/02/28 Oracle
德劲DE1102数字调谐收音机机评
2022/04/07 无线电