使用p5.js临摹动态图片
本文实例为大家分享了p5.js临摹动态图片的具体代码,供大家参考,具体内容如下
1、临摹图片
2、图像运动规律
原图中一共有36个等大的四分之三圆形,按照一定的规律转动,可以等效为圆形不动,每个圆上有以其半径为边长的矩形在绕圆形的原点转动,每四个为一组,其他部分都是在重复这四个的转动规律
3、完整代码
functionsetup() { createCanvas(402,402); } functiondraw() { background(0); vardx=0; dx+=PI/180; vart=(millis()/5)*sin(dx);//返回自程序开始的毫秒数 if(dx==PI) { dx=0; } for(vari=0;i<6;i++)//每行每列六个圆形 { for(varj=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黑色矩形 } elseif(i%2==1&&j%2==0) { rotate(t);//顺时针旋转 rect(-30,0,30,30); } elseif(i%2==1&&j%2==1) { rotate(-t); rect(-30,-30,30,30); } elseif(i%2==0&&j%2==1) { rotate(t); rect(0,-30,30,30); } resetMatrix(); } } }
4、临摹结果
5、拓展图像
运动规律:
一段螺旋型的运动弧线,中心颜色较深,越向外颜色越浅,形成一种线在向中心运动的趋势。绘制时是由无数个没有边框的圆形一起按照规律运动,形成线。
完整代码:
functionsetup() { createCanvas(500,500); noStroke(); } functiondraw(){ background(0); for(vari=1;i<3000;i++) { drawcircle(255-0.1*i,255-0.1*i,255-0.1*i,i); i++; } } functiondrawcircle(r,g,b,interval){ fill(r,g,b); varx=250; vary=250; vart=millis()/3+interval*0.5; varxi; varyi;i varradius=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); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。