]>
Commit | Line | Data |
---|---|---|
1 | 'use strict'; | |
2 | ||
3 | /** | |
4 | * Draws moving gradient boxes | |
5 | * | |
6 | * @function GradientsScreen | |
7 | * @implements IScreen | |
8 | */ | |
9 | module.exports = function (modulation, width, height, renderer) { | |
10 | ||
11 | let response = ''; | |
12 | ||
13 | for (let i = 0; i < height; ++i) { | |
14 | for (let j = 0; j < width; ++j) { | |
15 | const red = ((modulation + i) * 255 / height) % 255; | |
16 | const blue = ((modulation + j) * 255 / width) % 255; | |
17 | const green = ((modulation + i * j) * 255 / (width * height)) % 255; | |
18 | ||
19 | response = response + renderer(red, blue, green); | |
20 | response = response + ' '; | |
21 | } | |
22 | ||
23 | if (i < height - 1) { | |
24 | response = response + '\n'; | |
25 | } | |
26 | } | |
27 | ||
28 | return response; | |
29 | }; |