使用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 相关文章推荐
浅谈Javascript事件模拟
Jun 27 Javascript
js 连接数据库如何操作数据库中的数据
Nov 23 Javascript
Javascript图像处理—平滑处理实现原理
Dec 28 Javascript
js中的前绑定和后绑定详解
Aug 01 Javascript
js类式继承的具体实现方法
Dec 31 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
Jun 01 Javascript
jquery属性,遍历,HTML操作方法详解
Sep 17 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
Dec 23 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
vuejs前后端数据交互之从后端请求数据的实例
Aug 11 Javascript
js设计模式之单例模式原理与用法详解
Aug 15 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/11/19 PHP
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
简单实现jquery隔行变色
2017/11/09 jQuery
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
python的unittest测试类代码实例
2017/12/07 Python
Python中创建二维数组
2018/10/17 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
Python之字典对象的几种创建方法
2020/09/30 Python
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
半年思想汇报
2013/12/30 职场文书
共产党员公开承诺书
2014/03/25 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书