mirror of
https://github.com/direct-img/vibegif.direct-img.link.git
synced 2026-10-29 11:44:51 +00:00
21 lines
1.3 KiB
JavaScript
21 lines
1.3 KiB
JavaScript
// stick insect: it rocks back and forth like a twig in the breeze with its feet planted, antennae swaying, it blinks
|
|
const{sin,cos,PI,min,max}=Math,T=2*PI
|
|
export const frames=24,delay=85,rim=3,rimColor='#111'
|
|
export default(c,t)=>{
|
|
const s=sin(T*t),dx=10*s,dy=-3*cos(T*t*2),bl=t>.62&&t<.68
|
|
c.fillStyle=c.strokeStyle='#fff';c.lineWidth=5
|
|
c.translate(128,128);c.scale(.9,.9);c.translate(-128,-124)
|
|
for(const[hx,hy,kx,ky,fx]of[[64,156,34,176,18],[108,146,96,180,80],[150,136,180,166,200]])
|
|
c.beginPath(),c.moveTo(hx+dx,hy+dy),c.lineTo(kx+dx,ky+dy),c.lineTo(fx,210),c.stroke()
|
|
c.save();c.translate(dx,dy)
|
|
c.lineWidth=16;c.beginPath();c.moveTo(18,150);c.quadraticCurveTo(24,164,40,160);c.lineTo(176,128);c.stroke()
|
|
c.lineWidth=3;for(const i of[0,1])c.beginPath(),c.moveTo(202,104),c.bezierCurveTo(214,84-8*i,226+4*sin(T*t*2+i),74-10*i,244-10*i,66-18*i+5*sin(T*t+i*2)),c.stroke()
|
|
c.lineWidth=6;c.beginPath();c.ellipse(194,118,22,19,-.2,0,T);c.fill();c.stroke()
|
|
c.fillStyle=c.strokeStyle='#111'
|
|
c.lineWidth=3;for(const x of[64,108,150])c.beginPath(),c.moveTo(x-1,163-.235*(x-40)-8),c.lineTo(x+1,163-.235*(x-40)+5),c.stroke()
|
|
if(bl)c.lineWidth=3.5,c.beginPath(),c.arc(201,111,6,.15*PI,.85*PI),c.stroke()
|
|
else c.beginPath(),c.arc(201,113,6,0,T),c.fill()
|
|
c.lineWidth=3;c.beginPath();c.arc(205,122,5,.15*PI,.75*PI);c.stroke()
|
|
c.restore()
|
|
}
|