1 line
1.7 KiB
JavaScript
1 line
1.7 KiB
JavaScript
window.wallpaperPropertyListener={applyUserProperties:function(a){if(a.model){clearTimeout(timer);timer=0;document.getElementsByClassName('model')[0].innerHTML='';model=a.model.value;balanceSpeed(model);generate()}if(a.color||a.backgroundcolor){const b=(c,d)=>{const e=d.split(' ').map(f=>Math.ceil(f*255));document.getElementsByClassName(c)[0].style.color=`rgb(${e})`};if(a.color)b('model',a.color.value);if(a.backgroundcolor)b('bg',a.backgroundcolor.value)}if(a.animationspeed){basedAnimationSpeed=a.animationspeed.value;balanceSpeed(model)}if(a.stopanimation){clearTimeout(timer);timer=0;stopA=a.stopanimation.value;if(!stopA){document.getElementsByClassName('model')[0].innerHTML='';generate()}}}};let animationSpeed=50,stopA=!1,timer;generate();function balanceSpeed(){animationSpeed=basedAnimationSpeed}function generate(){let A=1,B=1;const generateFrame=()=>{const b=Array(1760).fill(" "),z=Array(1760).fill(0);A+=.07;B+=.03;for(let j=0;j<6.28;j+=.07){const ct=Math.cos(j),st=Math.sin(j);for(let i=0;i<6.28;i+=.02){const sp=Math.sin(i),cp=Math.cos(i),h=ct+2,D=1/(sp*h*Math.sin(A)+st*Math.cos(A)+5),t=sp*h*Math.cos(A)-st*Math.sin(A);const x=Math.floor(40+21*D*(cp*h*Math.cos(B)-t*Math.sin(B))),y=Math.floor(12+10.5*D*(cp*h*Math.sin(B)+t*Math.cos(B))),o=x+80*y,N=Math.floor(8*((st*Math.sin(A)-sp*ct*Math.cos(A))*Math.cos(B)-sp*ct*Math.sin(A)-st*Math.cos(A)-cp*ct*Math.sin(B)));if(y<22&&y>=0&&x>=0&&x<79&&D>z[o]){z[o]=D;b[o]=".,-~:;=!*#$@"[Math.max(N,0)]}}}const formattedOutput=[];for(let i=0;i<22;i++)formattedOutput.push(b.slice(i*80,(i+1)*80).join(''));document.getElementsByClassName('model')[0].innerHTML=formattedOutput.join("\n")};const timeoutRender=()=>{generateFrame();if(!stopA)timer=setTimeout(timeoutRender,animationSpeed)};timeoutRender()}
|