0?(x-ix)*ddx:(ix+1-x)*ddx,tmy=dy<0?(y-iy)*ddy:(iy+1-y)*ddy,d=0;for(;;){if(tmx<tmy)ix+=sx,d=tmx,tmx+=ddx;else iy+=sy,d=tmy,tmy+=ddy;if(d>20||f(ix,iy)==1)break}d*=cos(r-a),w[i]=d,h2=min(240,240/d),g=min(255,200/d)|0,h.fillStyle=`rgb(${g},${g},${g})`,h.fillRect(i,120-h2/2+rc*20,1,h2)}e.forEach(o=>{d=hypot(o.x-x,o.y-y),r=atan2(o.y-y,o.x-x)-a;if(abs(r)<1.2){sz=80/d,px=160+r*160;px>=0&&px<320&&d<w[px|0]*1.1&&(h.fillStyle=o.h>50?"#400":"#800",h.fillRect(px-sz/2,120-sz/2+rc*20,sz,sz*1.5),h.fillStyle="#f00",h.fillRe