sim-1 / OpenSC2K-master /src /utils /calculatePathBetweenCells.js
Omnibus's picture
Upload 131 files
4ee4376
raw
history blame contribute delete
557 Bytes
export default function (start, end) {
let dx = end.x - start.x;
let dy = end.y - start.y;
let nx = Math.abs(dx);
let ny = Math.abs(dy);
let sx = dx > 0? 1 : -1;
let sy = dy > 0? 1 : -1;
let point = { x: start.x, y: start.y };
let cells = [];
cells.push({ x: start.x, y: start.y });
for (let ix = 0, iy = 0; ix < nx || iy < ny;) {
if ((0.5 + ix) / nx < (0.5 + iy) / ny) {
point.x += sx;
ix++;
} else {
point.y += sy;
iy++;
}
cells.push({ x: point.x, y: point.y });
}
return cells;
}