- Author:
- John Lyon
- Twitter:
- @
- GitHub:
- Facebook:
- Google+:
- +
- Reddit:
- /r/
- Pouet:
- Website:
- Compo:
- classic
- Demo link:
- https://js1k.com/2010-first/demo/206
- Shortlink:
- https://js1k.com/206
- Blog post:
- please update here!
- Bytes:
- 718
- Chars:
- 718
- Submission
W=this,d=document,si=setInterval,s=d.body.style,C=d.getElementById('c'),c=C.getContext('2d'),M=Math,t=val=0,pi=M.PI,z=M.sin,y=M.cos,r=M.random,
s.overflow='hidden';w = C.width = W.innerWidth -200;h = C.height = W.innerHeight -200;r1 = r()*2;r2 = r()*3;
function p(x){x=(x+1)/2;return ~~(256 * x);};
function dist(a,b,c,d){return M.sqrt((a-c)*(a-c)+(b-d)*(b-d));};
si(function(){t+= 0.008;c.fillStyle = "#999";c.fillRect(0,0,w,h);for(i=0;i<60;i++){for(j=0;j<40;j++){
val = z(dist(z(y(-t)*i/17.*r1),-y(z(t)*j/17.*r2),w/3+y(t*pi),h+y(r1/10)^2/30))+1-z(M.log(t*pi+r2))+y((r2))/10
c.fillStyle = "rgb("+ p(z(pi*val*2)) +","+ p(z(pi*val)) + ","+ p(z(pi*val/2)) +")";
c.fillRect(i*w/60,j*h/40,i+1*w/60,j+1*h/40);}}},33)
- Description
- Pretty simple plasma zoomer
- Base64 encoded
Vz10aGlzLGQ9ZG9jdW1lbnQsc2k9c2V0SW50ZXJ2YWwscz1kLmJvZHkuc3R5bGUsQz1kLmdldEVsZW1lbnRCeUlkKCdjJyksYz1DLmdldENvbnRleHQoJzJkJyksTT1NYXRoLHQ9dmFsPTAscGk9TS5QSSx6PU0uc2luLHk9TS5jb3Mscj1NLnJhbmRvbSwNCnMub3ZlcmZsb3c9J2hpZGRlbic7dyA9IEMud2lkdGggPSBXLmlubmVyV2lkdGggLTIwMDtoID0gQy5oZWlnaHQgPSBXLmlubmVySGVpZ2h0IC0yMDA7cjEgPSByKCkqMjtyMiA9IHIoKSozOw0KZnVuY3Rpb24gcCh4KXt4PSh4KzEpLzI7cmV0dXJuIH5+KDI1NiAqIHgpO307DQpmdW5jdGlvbiBkaXN0KGEsYixjLGQpe3JldHVybiBNLnNxcnQoKGEtYykqKGEtYykrKGItZCkqKGItZCkpO307DQpzaShmdW5jdGlvbigpe3QrPSAwLjAwODtjLmZpbGxTdHlsZSA9ICIjOTk5IjtjLmZpbGxSZWN0KDAsMCx3LGgpO2ZvcihpPTA7aTw2MDtpKyspe2ZvcihqPTA7ajw0MDtqKyspew0KdmFsID0geihkaXN0KHooeSgtdCkqaS8xNy4qcjEpLC15KHoodCkqai8xNy4qcjIpLHcvMyt5KHQqcGkpLGgreShyMS8xMCleMi8zMCkpKzEteihNLmxvZyh0KnBpK3IyKSkreSgocjIpKS8xMA0KYy5maWxsU3R5bGUgPSAicmdiKCIrIHAoeihwaSp2YWwqMikpICsiLCIrIHAoeihwaSp2YWwpKSArICIsIisgcCh6KHBpKnZhbC8yKSkgKyIpIjsNCmMuZmlsbFJlY3QoaSp3LzYwLGoqaC80MCxpKzEqdy82MCxqKzEqaC80MCk7fX19LDMzKQ==
- Original source
W = this,
d = document,
si = setInterval,
s = d.body.style,
C = d.getElementById('c'),
c = C.getContext('2d'),
M = Math,
t = val = 0,
pi = M.PI,
z = M.sin,
cos = M.cos,
rnd = M.random, s.overflow='hidden';
w = C.width = W.innerWidth -200;
h = C.height = W.innerHeight -200;
r1 = rnd()
r2 = rnd()
function n256(x) {
x = (x + 1) / 2;
return ~~(256 * x);
};
function dist(a,b,c,d){
return M.sqrt((a - c) * (a - c) + (b - d) * (b - d));
};
si(function(){
t+= 0.008;
c.fillStyle = "#999";
c.fillRect(0,0,w,h);
for(i=0;i<60;i++){
for(j=0;j<40;j++){
val = z(dist(z(cos(-t)*i/17.*r1),-cos(z(t)*j/17.*r2),w/3+cos(t*pi),h+cos(r1/10)^2/30)) + 1 -z(M.log(t*pi)) + cos((r2))/30
c.fillStyle = "rgb("+ n256(z(pi*val*2)) +","+ n256(z(pi*val)) + ","+ n256(z(pi*val/2)) +")";
c.fillRect(i*w/60,j*h/40,i+1*w/60,j+1*h/40);
}
}
},33)