Guest User

Untitled

a guest
Dec 17th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. var size = {"x": 1080, "y":333};
  2.  
  3. var canvas = document.getElementById("aled2");
  4. var ctx = canvas.getContext("2d");
  5.  
  6. var color = [];
  7. var color_nb = 10 + Math.floor(Math.random() * parseInt(size.y / 3));
  8.  
  9. for (var j= 0; j < color_nb; j++) {
  10. color.push(rand_rgb());
  11. }
  12.  
  13. function rand_rgb() {
  14. return [Math.floor(Math.random() * 256), Math.floor(Math.random() * 256), Math.floor(Math.random() * 256), Math.floor(Math.random() * 256)]
  15. }
  16.  
  17. var px = [];
  18. for (var i = 0; i < color_nb; i++) {
  19. px[parseInt(size.y / (color_nb + 1) * i)] = color[i];
  20. }
  21.  
  22. function avg(a, b) {
  23. if (!a)
  24. return b;
  25. if (!b)
  26. return a;
  27. return [
  28. parseInt((a[0] + b[0]) / 2),
  29. parseInt((a[1] + b[1]) / 2),
  30. parseInt((a[2] + b[2]) / 2)
  31. ];
  32. }
  33.  
  34. function avg3(a, b, c) {
  35. if (!c) return avg(a, b);
  36. return [
  37. parseInt((a[0] + b[0] + c[0]) / 3),
  38. parseInt((a[1] + b[1] + c[1]) / 3),
  39. parseInt((a[2] + b[2] + c[2]) / 3)
  40. ];
  41. }
  42.  
  43. for (var x = -50; x < size.x; x++) {
  44. print_line(px, x);
  45. var new_px = [];
  46. for (var y = 0; y < size.y; y++) {
  47. switch (true) {
  48. case !!(px[y + 1] && px[y - 1]) :
  49. new_px[y] = [avg(px[y + 1], px[y - 1]), avg(px[y], px[y - 1]), avg(px[y + 1], px[y]), px[y], px[y + 1], px[y - 1]][Math.floor(Math.random() * 6)];
  50. //new_px[y] = avg3(px[y - 1], px[y + 1], px[y]);
  51. break;
  52. case !!(px[y - 1]) :
  53. new_px[y] = px[y - 1];
  54. break;
  55. case !!(px[y + 1]) :
  56. new_px[y] = px[y + 1];
  57. break;
  58. case !!(px[y]) :
  59. new_px[y] = px[y];
  60. break;
  61. }
  62. }
  63. px = new_px;
  64. }
  65.  
  66.  
  67.  
  68. function rgbToHex(r, g, b) {
  69. return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
  70. }
  71.  
  72. function print_line(px, x) {
  73. for (var i = 0; i < px.length; i++) {
  74. if (px[i]) {
  75. ctx.fillStyle = rgbToHex(px[i][0], px[i][1], px[i][2]);
  76. ctx.fillRect(x, i, 1, 1);
  77. }
  78. }
  79. }
Add Comment
Please, Sign In to add comment