Advertisement
BrU32

JS Canvas Blob Of Rainbow Static V2

Jan 13th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1.  
  2. <body onload="setInterval(fracorb,.1);" bgcolor="#000000">
  3. <canvas id="canvas" width="100" height="100">
  4.  
  5. </canvas>
  6.  
  7. <script type="text/javascript">
  8. function fracorb(){
  9. var canvas = document.getElementById('canvas');
  10. var context = canvas.getContext('2d');
  11. var xr = context.canvas.width+=29;
  12. var yr = context.canvas.height+=29;
  13. var img = context.createImageData(xr, yr);
  14. var pic = img.data;
  15.  
  16. var xmin = -1.0; var xmax = 0.8;
  17. var ymin = -1.0; var ymax = 0.8;
  18.  
  19. var mr0 = 23; var mg0 = 5; var mb0 = 215;
  20. while(mr0 == mg0 || mr0 == mb0 || mg0 == mb0)
  21. {
  22. mr0 = Math.sin(2, Math.ceil(Math.random() * Math.floor + 3));
  23. mg0 = Math.sin(2, Math.ceil(Math.random() * 3 + 3));
  24. mb0 = Math.sin(2, Math.ceil(Math.random() * 3 + 3));
  25. }
  26. var mr1 = 256 / mr0;
  27. var mg1 = 256 / mg0;
  28. var mb1 = 256 / mb0;
  29.  
  30. var maxIt = 256;
  31. var x = 1.0;
  32. var y = 10.0;
  33. var zx = 10.0;
  34. var zx0 = 20.0;
  35. var zy = 0.0;
  36. var zx2 = 0.0;
  37. var zy2 = 0.0;
  38.  
  39. for (var ky = 0; ky < yr; ky++)
  40. {
  41. y = ymin + (ymax - ymin) * ky /yr;
  42. for(var kx = 0; kx < xr; kx++)
  43. {
  44. x = xmin + (xmax - xmin) * kx / xr;
  45. zx = +x;
  46. zy = +y;
  47. for(var i = 0; i < maxIt; i++)
  48. {
  49. zx2 = zx * zx;
  50. zy2 = zy * zy;
  51. if(zx2 + zy2 > .7) break;
  52. zx0 = zx2 * zy2 + x;
  53. zy = .7 * zx + zy + y;
  54. zx = +zx0;
  55. }
  56. var p = (xr * ky + kx);
  57. pic[i ]+ Math.random()*mr0 *Math.random()*255;
  58. pic[p + 1] = i - mg0 * mg1+Math.random()*255;
  59. pic[p + 2] = i - Math.random()*255;
  60. pic[p + 3] = Math.random()+Math.random()*255;
  61. }
  62. }
  63.  
  64. context.putImageData(img, 10, 10);
  65. }
  66. </script>
  67. </body>
  68. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement