使用p5.js临摹动态图片

本文实例为大家分享了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,30,30);//旋转的边长30黑色矩形
   }
   else if(i%2==1&&j%2==0)
   {
    rotate(t);//顺时针旋转
    rect(-30,30);
   }
   else if(i%2==1&&j%2==1)
   {
    rotate(-t);
    rect(-30,-30,30);
   }
   else if(i%2==0&&j%2==1)
   {
    rotate(t);
    rect(0,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,i);
  i++;
 }
}
function drawcircle( r,g,b,interval){
 fill(r,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);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据复制操作的两种方式。‌在聊深浅拷贝之前咱得了解一下js中的两种数据类型:
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:重建二叉树、反向输出链表每个节点 题目 重建二叉树: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列 {1,2,4,7,3,5,6,8} 和中序遍历序列 {
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须了解的知识点,现在迎来了ES6+的时代,因为箭头函数的出现,所以感觉有必要对 this 问题梳理一下,所以刚好总结一下JavaScript中this指向的问题。
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)