使用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转换字符串为dom对象(字符串动态创建dom)
May 10 Javascript
web前端开发也需要日志
Dec 09 Javascript
Javascript 多浏览器兼容总结(实战经验)
Oct 30 Javascript
jQuery Form 页面表单提交的小例子
Nov 15 Javascript
javascript检测是否联网的实现代码
Sep 28 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
Web前端开发之水印、图片验证码
Nov 27 Javascript
Html5 js实现手风琴效果
Apr 17 Javascript
js实现textarea限制输入字数
Feb 13 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
Aug 16 Javascript
js瀑布流布局的实现
Jun 28 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
PHP6 先修班 JSON实例代码
2008/08/23 PHP
php 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
javascript版2048小游戏
2015/03/18 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python抓取手机号归属地信息示例代码
2016/11/28 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
浅析python内置模块collections
2019/11/15 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
python进度条显示之tqmd模块
2020/08/22 Python
机关干部作风建设剖析材料
2014/10/23 职场文书
展览会邀请函
2015/02/02 职场文书
四群教育工作总结
2015/08/10 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL