0x2bcbb6fd…89a7sent to0x0a1bbd57…3676·#18,468,189·view on Etherscan
1;for(let n,c=0;c<=r;c++){if(n=[...s.sh[c%s.sh.length]],"rot"in s||"sc"in s){let t=createVector();for(let r=0;r<n.length;r+=2)t.set(n[r],n[r+1]),"sc"in s&&t.mult(s.sc),"rot"in s&&t.rotate(s.rot),n[r]=t.x,n[r+1]=t.y}2<n.length?s.pts.push({bz:!0,ax:n[0]+t[0],ay:n[1]+t[1],bx:n[2]+t[0],by:n[3]+t[1],x:n[4]+t[0],y:n[5]+t[1]}):s.pts.push({bz:!1,x:n[0]+t[0],y:n[1]+t[1]})}this.P.set(s.pts[0].x,s.pts[0].y),this.p1.set(this.P),this.p2.set(this.P)}this.F.push(s)}tick(){this.action()}hold(){if(!(0<this.W&&u-this.created<this.W)){if("posRef"in this)if("dad"==this.posRef)this.translate(this.dad.P.x,this.dad.P.y);else{let s=L.find((s=>s.tag==this.posRef));this.translate(s.P.x,s.P.y)}this.activated=u,this.mT=0,this.action=this.update;for(let s of this.FData)"rf"in s?"dad"==s.rf?this.aF({o:this.dad,...s}):"xy"==s.rf?this.aF({o:{P:{x:s.ox,y:s.oy}},...s}):L.filter((t=>t.tag==s.rf)).forEach((t=>this.aF({o:t,...s}))):this.aF(s),delete this.FData}}update(){this.p2.set(this.p1);for(let s of this.tweens)this.tween(s);for(let s of this.F)this.dF(s);this.vel.limit(this.limit),this.P.add(this.vel),this.vel.mult(this.D);let s=D[this.Y];if(0<this.R.dy){if(this.history.push(this.P.copy()),this.history.length<this.R.dy)return;this.p1=this.history.shift()}else this.p1=this.P;if("none"==this.R.ty);else if("net"==this.R.ty){if(this.history.push([this.p1.x,this.p1.y]),null!=this.prev){let t=this.p1.dist(this.prev.p1);s.fill(this.C[0],this.C[1],this.C[2],this.A),s.noStroke();for(let r=0;r<t;r++){let n=lerp(this.prev.history[this.mT][0],this.p1.x,r/t),c=lerp(this.prev.history[this.mT][1],this.p1.y,r/t);"vp"in this.R&&(n+=this.G*random(-this.R.vp,this.R.vp),c+=this.G*random(-this.R.vp,this.R.vp));let a=this.G+("vg"in this.R?this.G*random(-this.R.vg,this.R.vg):0);s.circle(n*C,c*C,a*C)}}}else if("bv"==this.R.ty){let t=this.p1.dist(this.p2);s.noStroke();for(let r=0;r<t;r++){let n=lerp(this.p2.x,this.p1.x,r/t),c=lerp(this.p2.y,this.p1.y,r/t);"vp"in this.R&&(n+=this.G*random(-this.R.vp,this.R.vp),c+=this.G*random(-this.R.vp,this.R.vp));let a=this.G+("vg"in this.R?this.G*random(-this.R.vg,this.R.vg):0);if("vb"in this.R){let t=255*random(-this.R.vb,this.R.vb);s.fill(this.C[0]+t,this.C[1]+t,this.C[2]+t,this.A+("va"in this.R?255*random(-this.R.va,this.R.va):0))}else s.fill(this.C[0],this.C[1],this.C[2],this.A+("va"in this.R?255*random(-this.R.va,this.R.va):0));s.circle(n*C,c*C,a*C)}}else"line"==this.R.ty&&(s.stroke(this.C[0],this.C[1],this.C[2],this.A),s.strokeWeight(this.G*C),s.line(this.p2.x*C,this.p2.y*C,this.p1.x*C,this.p1.y*C));this.mT++,this.mT>this.L&&A.delete(this)}dF(s){if("fix"==s.ty){let t=s.o.P.x+s.gp*s.vr*cos(s.dr),r=s.o.P.y+s.gp*s.vr*sin(s.dr);this.dst.set(t-this.P.x,r-this.P.y),this.dst.mult(s.f),this.vel.add(this.dst)}else if("pull"==s.ty)this.dst.set(s.o.P.x-this.P.x,s.o.P.y-this.P.y),0!=s.sk&&this.dst.rotate(s.sk),this.dst.mult(s.f),this.vel.add(this.dst);else if("push"==s.ty)this.dst.set(s.o.P.x-this.P.x,s.o.P.y-this.P.y),this.dst.mult(-20/max(this.dst.mag(),.001)*s.f),this.vel.add(this.dst);else if("vec"==s.ty)this.vel.add(s.md*cos(s.dr),s.md*sin(s.dr)),s.dr+=s.va;else if("brown"==s.ty){if(1==s.ch||0==int(random(s.ch))){let t=this.vel.heading()+random(-1,1)*s.am;this.vel.add(s.md*cos(t),s.md*sin(t))}}else if("ns"==s.ty){let t=s.dr+(2*noise(s.vv,this.dix*s.vi,this.mT*s.vt)-1)*s.am;this.vel.add(s.md*cos(t),s.md*sin(t))}else if("n-c"==s.ty)s._a=s._a*s.dp+(2*noise(s.vv,this.dix*s.vi,this.mT*s.vt)-1)*s.am,this.vel.add(s.md*cos(s.dr+s._a),s.md*sin(s.dr+s._a));else if("n-f"==s.ty)s._a=s._a*s.dp+(2*noise(s.vv,this.P.x*s.sc,this.P.y*s.sc)-1)*s.am,this.vel.add(s.md*cos(s.dr+s._a),s.md*sin(s.dr+s._a));else if("shape"==s.ty&&this.mT<s.len){let t,r,n=constrain(this.mT/s.len,0,.999)*(s.pts.length-1);s.pts[int(n)+1].bz?(t=bezierPoint(s.pts[int(n)].x,s.pts[int(n)+1].ax,s.pts[int(n)+1].bx,s.pts[int(n)+1].x,fract(n)),r=bezierPoint(s.pts[int(n)].y,s.pts[int(n)+1].ay,s.pts[int(n)+1].by,s.pts[int(n)+1].y,fract(n))):(t=lerp(s.pts[int(n)].x,s.pts[int(n)+1].x,fract(n)),r=lerp(s.pts[int(n)].y,s.pts[int(n)+1].y,fract(n))),this.dst.set(t-this.P.x,r-this.P.y),this.dst.mult(s.f),this.vel.add(this.dst)}}tween(t){let r;"t"==t.src?r=this.mT/(this.L+1):"ang"==t.src?r=(this.vel.heading()+PI)/TWO_PI:"dang"==t.src&&(r=(this.dad.vel.heading()+PI)/TWO_PI),"C"==t.prop?this.C=s(t.cs,this.calcCrv(t,r)):t.obj[t.prop]=this.calcCrv(t,r)}calcCrv(s,t){let r=0;return"fix"==s.cv?r=s.v:"pow"==s.cv?(t=fract(t*s.cy),r=0>s.pw?1-pow(1-t,abs(s.pw)):pow(t,s.pw)):"wg"==s.cv?r=constrain(t+random(-s.vv,s.vv),0,.999999):"circ"==s.cv?(t=fract(t*s.cy),r=cos(asin(2*t-1))):"sin"==s.cv?r=pow(.5*sin(t*TWO_PI*s.cy+(s.ph-.25)*TWO_PI)+.5,s.pw):"peak"==s.cv?r=(t=fract(t*s.cy))<s.lc?pow(t/s.lc,s.pw):pow(map(t,s.lc,1,1,0),s.pw):"bump"==s.cv?(t=fract(t*s.cy))>s.lc-s.sp/2&&t<s.lc+s.sp/2&&(r=sin(map(t,s.lc-s.sp/2,s.lc+s.sp/2,0,PI))):"ns"==s.cv&&(n=noise(s.vv,this.dix*s.vi,t*s.vt),c=s.cn,r=constrain(c*(n-.5)+.5,0,1)),s.mn+r*(s.mx-s.mn);var n,c}}m.keyTyped=()=>{if(" "===key&&(R=!R,console.log("go:",R)),"r"===key&&reset(),"f"===key){let s=fullscreen();fullscreen(!s)}"s"===key&&saveCanvas(w,"Delirium_Blooms_x"+C,"jpg");let s=parseInt(key);!isNaN(s)&&0<s&&(C=2,W=!0,reset())},m.windowResized=()=>{resizeCanvas(int(windowHeight/16*9),windowHeight),C=ceil(height/1600),W=!1,reset()}}();