*/
module.exports = function (modulation, width, height, renderer) {
- const response = [];
-
- const scale = 2 + Math.round(Math.random() * 4);
- const scaledHeight = Math.floor(height / scale);
- const scaledWidth = Math.floor(width / scale);
-
- for (let i = 0; i < scaledHeight; ++i) {
- const row = [];
- for (let j = 0; j < scaledWidth; ++j) {
- const red = ((modulation + i) * 255 / height) % 255;
- const blue = ((modulation + j) * 255 / width) % 255;
- const green = ((modulation + i * j) * 255 / (width * height)) % 255;
-
- const cell = [renderer(red, blue, green), ' '];
- row.push(cell.join(''));
- }
-
- let rowText = '';
- for (let j = 0; j < scale; ++j) {
- rowText += row.reverse().join('');
- }
-
- for (let j = 1; j < scale; ++j) {
- response[j * i] = rowText;
- response[(height - 1 - (j * i))] = rowText;
+ const response = [];
+
+ const scale = 2 + Math.round(Math.random() * 4);
+ const scaledHeight = Math.floor(height / scale);
+ const scaledWidth = Math.floor(width / scale);
+
+ for (let i = 0; i < scaledHeight; ++i) {
+ const row = [];
+ for (let j = 0; j < scaledWidth; ++j) {
+ const red = ((modulation + i) * 255 / height) % 255;
+ const blue = ((modulation + j) * 255 / width) % 255;
+ const green = ((modulation + i * j) * 255 / (width * height)) % 255;
+
+ const cell = [renderer(red, blue, green), ' '];
+ row.push(cell.join(''));
+ }
+
+ let rowText = '';
+ for (let j = 0; j < scale; ++j) {
+ rowText += row.reverse().join('');
+ }
+
+ for (let j = 1; j < scale; ++j) {
+ response[j * i] = rowText;
+ response[(height - 1 - (j * i))] = rowText;
+ }
}
- }
- return response.join('\n');
+ return response.join('\n');
};