aboutsummaryrefslogtreecommitdiff
path: root/lib/screens/gradients.js
blob: 9694fc64f9b73554b5425fc8c90279d4de21b070 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'use strict';

/**
 * Draws moving gradient boxes
 *
 * @function GradientsScreen
 * @implements IScreen
 */
module.exports = function (modulation, width, height, renderer) {

    let response = '';

    for (let i = 0; i < height; ++i) {
        for (let j = 0; j < width; ++j) {
            const red = ((modulation + i) * 255 / height) % 255;
            const blue = ((modulation + j) * 255 / width) % 255;
            const green = ((modulation + i * j) * 255 / (width * height)) % 255;

            response = response + renderer(red, blue, green);
            response = response + ' ';
        }

        if (i < height - 1) {
            response = response + '\n';
        }
    }

    return response;
};