Advertisement
ipsBruno

(Javascript) Espiral em Canvas!

Feb 11th, 2014
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. *  Simples espiral em Canvas
  3. *  jsfiddle.net/tmVK7/
  4. */
  5.  
  6. <canvas style="background-color:black" id='canvas' width=800 height=600></canvas>
  7.  
  8. <script>
  9.     cnv = document.getElementById('canvas').getContext('2d')
  10.  
  11.     cnv.fillStyle="white"
  12.  
  13.     // representar o tamanho máximo da tela onde movimenta os quadrados
  14.  
  15.     var w = 800
  16.     var h = 600
  17.  
  18.     // tempo para cada frame
  19.     var t = 1;
  20.  
  21.     // voltas da espiral
  22.     v = 5;
  23.  
  24.  
  25.     // escala inicial da espiral!
  26.     e = 350
  27.  
  28.     // calcular o centro da espiral
  29.     cx = w/2
  30.     cy = h/2
  31.  
  32.  
  33.     // número de pontos a ser escrito a cada volta da espiral
  34.     p = 1000
  35.  
  36.     // ponto atual em que está sendo escrito
  37.     a = 0;
  38.  
  39.     // Chamar função recursiva que vai executar o movimento dos quadrados
  40.     executarMovimento()
  41.  
  42.  
  43.     // Criando a função
  44.     function executarMovimento() {
  45.  
  46.         // aumentar o ponto
  47.         a ++;
  48.        
  49.         // verificar se todas voltas da espiral foram feitas
  50.         if(a < p * v ) {
  51.        
  52.  
  53.             // calcular o circulo a ser feito
  54.                 r = a / p* Math.PI * 2
  55.  
  56.                 px = Math.cos(r)*e+cx
  57.            
  58.                 py = Math.sin(r)*e+cy
  59.    
  60.             // desenhar o ponto
  61.             cnv.fillRect(px,py,1,1);
  62.  
  63.             // diminuir a escala do circulo para formar a espiral a cada volta
  64.             e -= (e/p);
  65.  
  66.             // cronometrar próxima volta da espiral
  67.             setTimeout( executarMovimento , t);
  68.  
  69.         }
  70.        
  71.        
  72.          }
  73.  
  74. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement