Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var size = {"x": 1080, "y":333};
- var canvas = document.getElementById("aled2");
- var ctx = canvas.getContext("2d");
- var color = [];
- var color_nb = 10 + Math.floor(Math.random() * parseInt(size.y / 3));
- for (var j= 0; j < color_nb; j++) {
- color.push(rand_rgb());
- }
- function rand_rgb() {
- return [Math.floor(Math.random() * 256), Math.floor(Math.random() * 256), Math.floor(Math.random() * 256), Math.floor(Math.random() * 256)]
- }
- var px = [];
- for (var i = 0; i < color_nb; i++) {
- px[parseInt(size.y / (color_nb + 1) * i)] = color[i];
- }
- function avg(a, b) {
- if (!a)
- return b;
- if (!b)
- return a;
- return [
- parseInt((a[0] + b[0]) / 2),
- parseInt((a[1] + b[1]) / 2),
- parseInt((a[2] + b[2]) / 2)
- ];
- }
- function avg3(a, b, c) {
- if (!c) return avg(a, b);
- return [
- parseInt((a[0] + b[0] + c[0]) / 3),
- parseInt((a[1] + b[1] + c[1]) / 3),
- parseInt((a[2] + b[2] + c[2]) / 3)
- ];
- }
- for (var x = -50; x < size.x; x++) {
- print_line(px, x);
- var new_px = [];
- for (var y = 0; y < size.y; y++) {
- switch (true) {
- case !!(px[y + 1] && px[y - 1]) :
- 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)];
- //new_px[y] = avg3(px[y - 1], px[y + 1], px[y]);
- break;
- case !!(px[y - 1]) :
- new_px[y] = px[y - 1];
- break;
- case !!(px[y + 1]) :
- new_px[y] = px[y + 1];
- break;
- case !!(px[y]) :
- new_px[y] = px[y];
- break;
- }
- }
- px = new_px;
- }
- function rgbToHex(r, g, b) {
- return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
- }
- function print_line(px, x) {
- for (var i = 0; i < px.length; i++) {
- if (px[i]) {
- ctx.fillStyle = rgbToHex(px[i][0], px[i][1], px[i][2]);
- ctx.fillRect(x, i, 1, 1);
- }
- }
- }
Add Comment
Please, Sign In to add comment