使用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 $.ajax入门应用二
Nov 19 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
利用JS判断用户是否上网(连接网络)
Dec 23 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
javascript动态创建链接的方法
May 13 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
May 16 Javascript
javascript单例模式的简单实现方法
Jul 25 Javascript
详解JavaScript语言的基本语法要求
Nov 20 Javascript
js命名空间写法示例
Dec 18 Javascript
解析javascript图片懒加载与预加载的分析总结
Oct 27 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
elementUI Tree 树形控件的官方使用文档
Apr 25 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函数指定默认值方法的小例子
2013/12/04 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python简单判断序列是否为空的方法
2015/06/30 Python
Python实现计算最小编辑距离
2016/03/17 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
专业实习自我鉴定
2013/10/29 职场文书
劲霸男装广告词
2014/03/21 职场文书
毕业实习单位意见
2015/06/04 职场文书
《藏戏》教学反思
2016/02/23 职场文书