simple-ascii-chart
Version:
Simple ascii chart generator
51 lines (50 loc) • 1.95 kB
JavaScript
;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.drawHeatmap = exports.getZTile = void 0;
var constants_1 = require("../constants");
var coords_1 = require("./coords");
var getZTile = function (z) {
if (z === 0)
return constants_1.TILES.EMPTY;
if (z === 1)
return constants_1.TILES.LOW;
if (z === 2)
return constants_1.TILES.MEDIUM;
if (z === 3)
return constants_1.TILES.HIGH;
return constants_1.TILES.FULL;
};
exports.getZTile = getZTile;
var drawHeatmap = function (_a) {
var index = _a.index, arr = _a.arr, graph = _a.graph, scaledX = _a.scaledX, scaledY = _a.scaledY, scaledZ = _a.scaledZ;
if (index - 1 >= 0) {
var _b = __read(arr[index - 1], 3), prevX_1 = _b[0], prevY_1 = _b[1], prevZ_1 = _b[2];
var _c = __read(arr[index], 3), currX = _c[0], currY_1 = _c[1], currZ_1 = _c[2];
Array((0, coords_1.distance)(currY_1, prevY_1))
.fill('')
.forEach(function (_, steps, array) {
var step = Math.round(prevY_1) + steps * (currY_1 > prevY_1 ? 1 : -1);
var ratio = steps / array.length;
var scaledZZ = Math.round((prevZ_1 || 0) + ratio * ((currZ_1 || 0) - (prevZ_1 || 0)));
graph[step + 1][prevX_1 + 1] = (0, exports.getZTile)(scaledZZ || 0);
});
}
graph[scaledY + 1][scaledX + 1] = (0, exports.getZTile)(scaledZ || 0);
};
exports.drawHeatmap = drawHeatmap;