UNPKG

pathfinding

Version:

Comprehensive pathfinding library for grid based games

49 lines (43 loc) 1.14 kB
/** * @namespace PF.Heuristic * @description A collection of heuristic functions. */ module.exports = { /** * Manhattan distance. * @param {number} dx - Difference in x. * @param {number} dy - Difference in y. * @return {number} dx + dy */ manhattan: function(dx, dy) { return dx + dy; }, /** * Euclidean distance. * @param {number} dx - Difference in x. * @param {number} dy - Difference in y. * @return {number} sqrt(dx * dx + dy * dy) */ euclidean: function(dx, dy) { return Math.sqrt(dx * dx + dy * dy); }, /** * Octile distance. * @param {number} dx - Difference in x. * @param {number} dy - Difference in y. * @return {number} sqrt(dx * dx + dy * dy) for grids */ octile: function(dx, dy) { var F = Math.SQRT2 - 1; return (dx < dy) ? F * dx + dy : F * dy + dx; }, /** * Chebyshev distance. * @param {number} dx - Difference in x. * @param {number} dy - Difference in y. * @return {number} max(dx, dy) */ chebyshev: function(dx, dy) { return Math.max(dx, dy); } };