-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparticles.min.js
1 lines (1 loc) · 2.58 KB
/
particles.min.js
1
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):n.squareParticles=t()}(this,function(){"use strict";return function(n){function t(){n.canvas.width=n.canvas.clientWidth,n.canvas.height=n.canvas.clientHeight}function i(){for(var t=0;t<s.length;t++)s[t].j();n.collision&&setTimeout(e,0),o&&requestAnimationFrame(i)}function e(){for(var n=0;n<s.length-1;n++)for(var t=s[n],i=n+1;i<s.length;i++){var e=s[i],a=t.i(),o=e.i();if(Math.abs(a[0]-o[0])<t.b&&Math.abs(a[1]-o[1])<t.b){a=t.f,o=t.b;var r=e.f,h=e.b,c=o+h,u=h*r[0],f=h*r[1],d=o*a[0],l=o*a[1];t.f=[(h*(r[0]-a[0])+d+u)/c,(h*(r[1]-a[1])+l+f)/c],e.f=[(o*(a[0]-r[0])+u+d)/c,(o*(a[1]-r[1])+f+l)/c]}}}function a(){this.h=function(){n.c&&(this.c="function"==typeof n.c?n.c():n.c),this.g=0,this.m="function"==typeof n.color?n.color():n.color,this.a=[Math.random()*r.drawingBufferWidth,r.drawingBufferHeight-Math.random()*r.drawingBufferHeight],this.b=n.min_size+(n.max_size-n.min_size)*Math.random(),this.f=[(n.min_speed+(n.max_speed-n.min_speed)*Math.random())*Math.sign(Math.random()-.5),(n.min_speed+(n.max_speed-n.min_speed)*Math.random())*Math.sign(Math.random()-.5)]},this.j=function(){var t=this.l();r.scissor(this.a[0],this.a[1],this.b,this.b),r.clearColor(t[0],t[1],t[2],1),r.clear(r.COLOR_BUFFER_BIT),this.a[0]+=this.f[0],this.a[1]-=this.f[1],n.aging&&this.g++,(0>this.a[1]||this.a[1]>r.drawingBufferHeight||0>this.a[0]||this.a[0]>r.drawingBufferWidth||n.c&&this.g>this.c)&&this.h()},this.l=function(){var n=this;return this.m.map(function(t){return t*n.g})},this.i=function(){return[this.a[0]+this.b/2,this.a[1]+this.b/2]},this.h()}var s=[],o=!0;if(function(){var t=window.innerHeight+window.innerWidth;n||(n={}),null==n.count&&(n.count=1200>t?Math.round(t/7):Math.round(t/9)),null==n.min_size&&(n.min_size=2),null==n.aging&&(n.aging=!0),null==n.color&&(n.color=function(){return[(1-Math.random())/100,0,(1-Math.random())/1e3]}),null==n.canvas?n.canvas=document.querySelector("canvas"):n.canvas.constructor==String&&(n.canvas=document.querySelector(n.canvas)),n.max_size=n.max_size||Math.round(t/400),n.max_speed=n.max_speed||5,n.min_speed=n.min_speed||.5,n.collision=n.collision||!1}(),!n.canvas)throw"Canvas element not found !";t(),window.addEventListener("resize",t);var r=n.canvas.getContext("webgl")||n.canvas.getContext("experimental-webgl");if(!r)throw"Your browser doesnt support WebGL";return r.viewport(0,0,r.drawingBufferWidth,r.drawingBufferHeight),r.enable(r.SCISSOR_TEST),function(){for(var t=0;t<n.count;t++)s.push(new a);i()}(),{stop:function(){o=!1},resume:function(){o=!0,i()}}}});