Елочка размером в 1 килобайт

Нашел этот скрипт на сайте http://js1k.com/2010-xmas/demo/856. Удивительно, но автор скрипта уложился в 1 килобайт, весь код могу разместить тут прямо на блоге:

1
2
3
4
5
6
7
8
9
10
<canvas id="c" height="446" width="446"></canvas>
<script>
var b = document.body;
var c = document.getElementsByTagName('canvas')[0];
var a = c.getContext('2d');
document.body.clientWidth; // fix bug in chrome.
</script>
<script>
M=Math;Q=M.random;J=[];U=16;T=M.sin;E=M.sqrt;for(O=k=0;x=z=j=i=k&lt;200;)with(M[k]=k?c.cloneNode(0):c){width=height=k?32:W=446;with(getContext('2d'))if(k>10|!k)for(font='60px Impact',V='rgba(';I=i*U,fillStyle=k?k==13?V+'205,205,215,.15)':V+(147+I)+','+(k%2?128+I:0)+','+I+',.5)':'#cca',i&lt;7;)beginPath(fill(arc(U-i/3,24-i/2,k==13?4-(i++)/2:8-i++,0,M.PI*2,1)));else for(;x=T(i),y=Q()*2-1,D=x*x+y*y,B=E(D-x/.9-1.5*y+1),R=67*(B+1)*(L=k/9+.8)>>1,i++<w ;)if(D&lt;1)beginPath(strokeStyle=V+R+','+(R+B*L>>0)+',40,.1)'),moveTo(U+x*8,U+y*8),lineTo(U+x*U,U+y*U),stroke();for(y=H=k+E(k++)*25,R=Q()*W;P=3,j<h ;)J[O++]=[x+=T(R)*P+Q()*6-3,y+=Q()*U-8,z+=T(R-11)*P+Q()*6-3,j/H*20+((j+=U)>H&Q()>.8?Q(P=9)*4:0)>>1]}setInterval(function G(m,l){A=T(D-11);if(l)return(m[2]-l[2])*A+(l[0]-m[0])*T(D);a.clearRect(0,0,W,W);J.sort(G);for(i=0;L=J[i++];a.drawImage(M[L[3]+1],207+L[0]*A+L[2]*T(D)>>0,L[1]>>1)){if(i==2e3)a.fillText('С Новым годом!',U,345);if(!(i%7))a.drawImage(M[13],((157*(i*i)+T(D*5+i*i)*5)%W)>>0,((113*i+(D*i)/60)%(290+i/99))>>0);}D+=.02},1)
</h></w></script>

Чтобы вставить этот скрипт в блог, ничего не ломая в блоге, я создал статичную страничку elka.html и добавил туда вышеуказанный скрипт между тегами body.

Далее, в посте вставил код:

1
2
3
4
<div align="center">
<iframe frameborder="no" scrolling="no" height="400" width="446" src="http://semeyka.kz/wp-content/themes/blocks/custom/elka.html">
</iframe>
</div>

Вот и все. И никаких рисунков. Правда процессор грузит, у меня на 25%.

PS: так как елочка страшно тормозит под FireFox и Opera, под IE даже не проверял, то елочку спрятал в этот же пост под кат.

________________
Оценить: +1Оценить: +2Оценить: +3Оценить: +4Оценить: +5 (1 голосов, средняя оценка: 5,00 из 5)
Загрузка...

Автор: Bola | 23 декабря 2010 | Рубрика Айтишное
  1. Bola
    23 декабря 2010 в 19:01 | #1

    Елочка сильно тормозит под FireFox и Opera. В IE не проверял. Шустро работает под Chrome. У кого как?

  2. Bola
    23 декабря 2010 в 19:17 | #2

    Автор рассказывает, как он сделал эту елочку:

    http://www.romancortes.com/blog/how-i-did-the-1kb-christmas-tree/

  3. Ship
    23 декабря 2010 в 21:35 | #3

    У меня нормально. Помню в далеком 94-м на уроках мы писали проги «Ёлочка». На Бейсике. У кого даже мигающая была. А у одного сокурсника была реальная ветка елки, без прорисовки каждой линии. Чисто с помощью циклов написал. И это на CGA-шных экранах (320х200). Как вспомнишь, так приятно на душе становится.

  4. Zloy
    30 декабря 2010 в 15:56 | #4

    Прикольно,
    ее можно к себе в блог поставить? например в жж

    • Bola
      30 декабря 2010 в 20:51 | #5

      Можно. Я ж код дал. Скопируй второй кусок кода и вставь в пост.

Оставить комментарий

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
58 / 0,502 / 30.34mb