BrU32

JS Canvas Orb + Plasma SRC V1

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