-
Notifications
You must be signed in to change notification settings - Fork 0
/
minified.html
1 lines (1 loc) · 4.45 KB
/
minified.html
1
<canvas id='c'><script>var V={};V.U={x:0,y:1,z:0};V.Z={x:0,y:0,z:0};V.W={x:255,y:255,z:255};V.ddpp=function(e,d){return(e.x*d.x)+(e.y*d.y)+(e.z*d.z)};V.ccpp=function(e,d){return{x:(e.y*d.z)-(e.z*d.y),y:(e.z*d.x)-(e.x*d.z),z:(e.x*d.y)-(e.y*d.x)}};V.scale=function(b,d){return{x:b.x*d,y:b.y*d,z:b.z*d}};V.uuvv=function(b){return V.scale(b,1/V.length(b))};V.add=function(e,d){return{x:e.x+d.x,y:e.y+d.y,z:e.z+d.z}};V.add3=function(e,d,f){return{x:e.x+d.x+f.x,y:e.y+d.y+f.y,z:e.z+d.z+f.z}};V.sstt=function(e,d){return{x:e.x-d.x,y:e.y-d.y,z:e.z-d.z}};V.length=function(b){return Math.sqrt(V.ddpp(b,b))};V.rrtt=function(b,f){var e=V.scale(f,V.ddpp(b,f));return V.sstt(V.scale(e,2),b)};var c=document.getElementById("c"),width=500*.5,height=300*.5;c.width=width;c.height=height;c.style.cssText="width:"+(width*3)+"px;height:"+(height*4)+"px";c.parentNode.style.cssText="text-align:center";var ctx=c.getContext("2d"),dd=ctx.getImageData(0,0,width,height);var s={};s.c={p:{x:0,y:-5,z:16},fov:45,v:{x:0,y:0,z:0}};s.l=[{x:-30,y:-10,z:20}];s.o=[{p:{x:0,y:300,z:-10},cc:{x:175,y:195,z:255},ss:.2,ll:.2,aa:.8,rr:295},{p:{x:0,y:5,z:-8},cc:{x:105,y:255,z:105},ss:.4,ll:.7,aa:.1,rr:4},{p:{x:0,y:2.5,z:-8},cc:{x:105,y:255,z:105},ss:.4,ll:.7,aa:.1,rr:3},{p:{x:0,y:.2,z:-8},cc:{x:105,y:255,z:105},ss:.4,ll:.7,aa:.1,rr:2},{p:{x:0,y:-1.7,z:-8},cc:{x:105,y:255,z:105},ss:.4,ll:.7,aa:.1,rr:1},{p:{x:7,y:1.2,z:-8},cc:{x:255,y:255,z:255},ss:.2,ll:.7,aa:.1,rr:.2},{p:{x:7,y:2,z:-8},cc:{x:255,y:0,z:0},ss:.2,ll:.7,aa:.1,rr:.8},{p:{x:7,y:2.1,z:-8},cc:{x:255,y:255,z:255},ss:.2,ll:.7,aa:.1,rr:.8},{p:{x:7,y:4,z:-8},cc:{x:255,y:0,z:0},ss:.2,ll:.7,aa:.1,rr:1.6},{p:{x:0,y:-2.9,z:-8},cc:{x:255,y:255,z:0},ss:.8,ll:1.5,aa:.5,rr:.3},{p:{x:1.3,y:-.9,z:-7},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:.3,y:-.6,z:-6.2},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:-.7,y:-.3,z:-6.2},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:-1.7,y:.1,z:-6.9},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:1.9,y:.6,z:-6.7},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:1.3,y:1,z:-5.7},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:.6,y:1.3,z:-5.3},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:-.6,y:1.8,z:-5.1},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:-1.9,y:2.2,z:-5.6},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:2.8,y:2.7,z:-6.2},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:1.4,y:3.3,z:-4.6},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:0,y:3.8,z:-4.2},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:-1.1,y:4.2,z:-4.2},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:-2.3,y:4.7,z:-4.7},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1},{p:{x:-2.9,y:5,z:-5.2},cc:{x:0,y:0,z:255},ss:3,ll:4,aa:2,rr:.1}];function render(i){var r=i.c,m=i.o,n=i.l;var t=V.uuvv(V.sstt(r.v,r.p)),p=V.uuvv(V.ccpp(t,V.U)),a=V.uuvv(V.ccpp(p,t)),q=Math.tan(Math.PI*(r.fov/2)/180),b=height/width*q,j=q*2/(width-1),u=b*2/(height-1);var d,k;var g={p:r.p};for(var f=0;f<width;f++){for(var e=0;e<height;e++){var v=V.scale(p,(f*j)-q),h=V.scale(a,(e*u)-b);g.v=V.uuvv(V.add3(t,v,h));k=trace(g,i,0);d=(f*4)+(e*width*4),dd.data[d+0]=k.x;dd.data[d+1]=k.y;dd.data[d+2]=k.z;dd.data[d+3]=255}}ctx.putImageData(dd,0,0)}function trace(b,e,h){if(h>2){return}var f=iiss(b,e);if(f[0]===Infinity){return V.W}var g=f[0],a=f[1];var d=V.add(b.p,V.scale(b.v,g));return surface(b,e,a,d,ssnn(a,d),h)}function iiss(b,f){var e=[Infinity,null];for(var d=0;d<f.o.length;d++){var a=f.o[d],g=ssii(a,b);if(g!==undefined&&g<e[0]){e=[g,a]}}return e}function ssii(e,a){var g=V.sstt(e.p,a.p),d=V.ddpp(g,a.v),f=V.ddpp(g,g),b=(e.rr*e.rr)-f+(d*d);if(b<0){return}else{return d-Math.sqrt(b)}}function ssnn(a,b){return V.uuvv(V.sstt(b,a.p))}function surface(n,p,j,h,o,f){var m=j.cc,l=V.Z,k=0;if(j.ll){for(var e=0;e<p.l.length;e++){var g=p.l[0];if(!lv(h,p,g)){continue}var d=V.ddpp(V.uuvv(V.sstt(g,h)),o);if(d>0){k+=d}}}if(j.ss){var a=trace({p:h,v:V.rrtt(n.v,o)},p,++f);if(a){l=V.add(l,V.scale(a,j.ss))}}k=Math.min(1,k);return V.add3(l,V.scale(m,k*j.ll),V.scale(m,j.aa))}function lv(e,b,a){var d=iiss({p:e,v:V.uuvv(V.sstt(e,a))},b);return d[0]>-.005}var l=0,c=0,p=0;function tick(){l+=.1;c+=.05;p+=.2;s.o[5].p.x=Math.sin(p)*7;s.o[5].p.z=-8+Math.cos(p)*7;s.o[5].p.y=1.2+(Math.cos(p*9)/7);s.o[6].p.x=Math.sin(p)*7;s.o[6].p.z=-8+Math.cos(p)*7;s.o[6].p.y=2+(Math.cos(p*9)/7);s.o[7].p.x=Math.sin(p)*7;s.o[7].p.z=-8+Math.cos(p)*7;s.o[7].p.y=2.1+(Math.cos(p*9)/7);s.o[8].p.x=Math.sin(p)*7;s.o[8].p.z=-8+Math.cos(p)*7;s.o[8].p.y=4+(Math.cos(p*9)/7);s.l[0].x=Math.sin(l)*30;s.l[0].z=Math.cos(l)*20;s.c.p.y=-5+Math.cos(c);render(s);setTimeout(tick,30)}tick();</script>