使用p5.js临摹动态图片


Posted in Javascript onNovember 04, 2019

本文实例为大家分享了p5.js临摹动态图片的具体代码,供大家参考,具体内容如下

1、临摹图片

使用p5.js临摹动态图片

2、图像运动规律

原图中一共有36个等大的四分之三圆形,按照一定的规律转动,可以等效为圆形不动,每个圆上有以其半径为边长的矩形在绕圆形的原点转动,每四个为一组,其他部分都是在重复这四个的转动规律

3、完整代码

function setup() 
{ 
 createCanvas(402,402); 
}
function draw()
{
 background(0); 
 var dx=0; 
 dx+=PI/180;
 var t=(millis()/5)*sin(dx);//返回自程序开始的毫秒数
 if(dx==PI) 
 { 
  dx=0;
 } 
 
 for(var i=0;i<6;i++)//每行每列六个圆形
 {  
  for(var j=0;j<6;j++)
  { 
   fill(255); 
   ellipse(i*66+36, j*66+36, 60, 60);//绘制半径30的圆形,间隔6
   fill(0); 
   translate(i*66+36, j*66+36);//矩形的移动,共四种运动状态
   if(i%2==0&&j%2==0) 
   {  
    rotate(-t); //逆时针旋转
    rect(0,0,30,30);//旋转的边长30黑色矩形
   }  
   else if(i%2==1&&j%2==0)
   { 
    rotate(t);//顺时针旋转
    rect(-30,0,30,30); 
   }  
   else if(i%2==1&&j%2==1) 
   {  
    rotate(-t); 
    rect(-30,-30,30,30); 
   }  
   else if(i%2==0&&j%2==1)
   {  
    rotate(t);
    rect(0,-30,30,30); 
   }  
   resetMatrix(); 
  } 
 }
}

4、临摹结果

使用p5.js临摹动态图片

5、拓展图像

使用p5.js临摹动态图片

运动规律:

一段螺旋型的运动弧线,中心颜色较深,越向外颜色越浅,形成一种线在向中心运动的趋势。绘制时是由无数个没有边框的圆形一起按照规律运动,形成线。

完整代码:

function setup()
{
 createCanvas(500, 500);
 noStroke(); 
}
function draw() {
 background(0); 
 for (var i =1;i <3000; i++)
 {
  drawcircle(255-0.1*i,255-0.1*i,255-0.1*i, i); 
  i++;
 }
}
function drawcircle( r, g, b, interval){
 fill(r, g, b);
 var x = 250; 
 var y = 250; 
 var t = millis() /3+ interval *0.5;
 var xi;
 var yi;i
 var radius = interval *15;
 xi = 0.01*radius * Math.cos(t * Math.PI/180);
 yi = 0.01*radius * Math.sin(t * Math.PI/180); 
 x += xi;
 y += yi;
 ellipse(x, y, 20,20);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 使用简明教程
Mar 05 Javascript
5种处理js跨域问题方法汇总
Dec 04 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
jquery合并表格中相同文本的相邻单元格
Jul 17 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
Sep 27 Javascript
详解Vue2.0 事件派发与接收
Sep 05 Javascript
jquery中done和then的区别(详解)
Dec 19 jQuery
Node.js Windows Binary二进制文件安装方法
May 16 Javascript
Vue 无限滚动加载指令实现方法
May 28 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
JS动态显示倒计时效果
Dec 12 Javascript
vue实现输入框自动跳转功能
May 20 Javascript
p5.js绘制创意自画像
Nov 04 #Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 #Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 #Javascript
vue中使用GraphQL的实例代码
Nov 04 #Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 #Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 #Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
Nov 04 #Javascript
You might like
构建简单的Webmail系统
2006/10/09 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
js时间控件只显示年月
2017/01/08 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
Python多线程实现同步的四种方式
2017/05/02 Python
python3 shelve模块的详解
2017/07/08 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
python内存管理机制原理详解
2019/08/12 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
自我鉴定思想方面
2013/10/07 职场文书
初婚未育证明
2014/01/15 职场文书
学生会干部自荐信
2014/02/04 职场文书
保护环境建议书300字
2014/05/13 职场文书
2014年路政工作总结
2014/12/10 职场文书
公务员年度个人总结
2015/02/12 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
七年级语文教学反思
2016/03/03 职场文书
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers