使用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的插件教程(Plugin)
Sep 03 Javascript
Javascript下IE与Firefox下的差异兼容写法总结
Jun 18 Javascript
JS实现闪动的title消息提醒效果
Jun 20 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
Sep 01 Javascript
canvas知识总结
Jan 25 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
整理关于Bootstrap表单的慕课笔记
Mar 29 Javascript
无循环 JavaScript(map、reduce、filter和find)
Apr 08 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
May 02 Javascript
记一次vue-webpack项目优化实践详解
Feb 17 Javascript
Vue 同步异步存值取值实现案例
Aug 05 Javascript
JavaScript this关键字指向常用情况解析
Sep 02 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
ThinkPHP分页类使用详解
2014/03/05 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
python使用Tkinter显示网络图片的方法
2015/04/24 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
破解安装Pycharm的方法
2018/10/19 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
python gdal安装与简单使用
2019/08/01 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
商务英语应届生自我鉴定
2013/12/08 职场文书
公司财务总监岗位职责
2013/12/14 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
Java使用HttpClient实现文件下载
2022/08/14 Java/Android
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS