使用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 相关文章推荐
jscript之List Excel Color Values
Jun 13 Javascript
javascript脚本调试方法小结
Nov 24 Javascript
取得窗口大小 兼容所有浏览器的js代码
Aug 09 Javascript
JS实现图片放大镜效果的方法
Feb 27 Javascript
JS模拟键盘打字效果的方法
Aug 05 Javascript
angularjs指令之绑定策略(@、=、&amp;)
Apr 13 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
AngularJS ui-router刷新子页面路由的方法
Jul 23 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
Vue2.x通用编辑组件的封装及应用详解
May 28 Javascript
微信小程序自定义组件实现环形进度条
Nov 17 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中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
js 计算图片内点个数的示例代码
2019/04/04 Javascript
深入了解js原型模式
2019/05/30 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
js编写简易的计算器
2020/07/29 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
python使用cPickle模块序列化实例
2014/09/25 Python
python实现井字棋游戏
2020/03/30 Python
python3中int(整型)的使用教程
2017/03/23 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
造型师求职自荐信
2013/09/27 职场文书
高考自主招生自荐信
2013/10/20 职场文书
高校学生干部的自我评价分享
2013/11/04 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
3.12植树节活动总结2014
2014/03/13 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers