使用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 相关文章推荐
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
JavaScript中使用Substring删除字符串最后一个字符
Nov 03 Javascript
js中判断对象是否为空的三种实现方法
Dec 23 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
Oct 16 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
vue监听scroll的坑的解决方法
Sep 07 Javascript
vue axios同步请求解决方案
Sep 29 Javascript
Webpack的dll功能使用
Jun 28 Javascript
Vue自定义指令封装节流函数的方法示例
Jul 09 Javascript
element-ui表格数据转换的示例代码
Aug 24 Javascript
你不知道的SpringBoot与Vue部署解决方案
Nov 09 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
Feb 08 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
删除数组元素实用的PHP数组函数
2008/08/18 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
17个Python小技巧分享
2015/01/23 Python
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
python计算时间差的方法
2015/05/20 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
python reduce 函数使用详解
2017/12/05 Python
Python基于多线程操作数据库相关问题分析
2018/07/11 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
终端业务员岗位职责
2013/11/27 职场文书
同学聚会策划方案
2014/06/06 职场文书
选秀节目策划方案
2014/06/06 职场文书
学校督导评估方案
2014/06/10 职场文书
村创先争优活动总结
2014/08/28 职场文书
大一新生期末自我评价
2014/09/12 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
Python深度学习之实现卷积神经网络
2021/06/05 Python