Giter Site home page Giter Site logo

Comments (8)

brean avatar brean commented on August 16, 2024

Hi Arun,

The returned path is a list of coordinates in a 2D-Array representing a map. If you like to visualize that as SVG-path you have to calculate the positions based on your cell size. I think easiest would be to use a SVG-Polyline to represent it as line. If you like to use SVG M and L you could copy from the buildSvgPath-Function in visual/js/view.js: https://github.com/qiao/PathFinding.js/blob/master/visual/js/view.js#L254:L265

Andreas

from pathfinding.js.

arunkumar413 avatar arunkumar413 commented on August 16, 2024

@brean

Instead of poly line which which makes the attribute lengthy, I was thinking it's better to indentify the bends in the path aray and convert them into a few H and V commands of svg path.

from pathfinding.js.

brean avatar brean commented on August 16, 2024

Hi Arun,
yes, it will be twice as long but why is that a problem?
If you really want you can calculate the difference between one points position and the next and then see if y or x changed and then create your string accordingly. Note that you are not able to display diagonal movement with only H and V.

from pathfinding.js.

arunkumar413 avatar arunkumar413 commented on August 16, 2024

If I serialize and save It might need more memory. Also I created small circles using the path array. But it created a random path as opposed to smoother horizontal and vertical lines.

Here is the configuration:

grid = new pathfinding.Grid(1000, 1000);
  finder = new pathfinding.AStarFinder({
    allowDiagonal: false,
    heuristic: pathfinding.Heuristic.manhattan,
    weight: 1,
  });

and code to create the circles to trace the path


  path.forEach(function (item, index) {
    return s.circle(item[0], item[1], 1).attr("fill", "#ff0000");
  });

connection

from pathfinding.js.

killmenot avatar killmenot commented on August 16, 2024

@arunkumar413 you can research how it's implemented in react-flow. In the past I created my own react-flow edge implementation which use PathFinding.js to calculate the path

from pathfinding.js.

arunkumar413 avatar arunkumar413 commented on August 16, 2024

@killmenot I'd like to create my own as well but I'm not understanding why it created a random path instead of a Manhattan path.

Here what does the cell size refer to? I'm using svg and dimensions are in pixels only.

from pathfinding.js.

arunkumar413 avatar arunkumar413 commented on August 16, 2024

I have isolated the issue for you here: https://stackblitz.com/edit/react-febp9q?file=src%2FApp.js

I also used the buildSVGPath function but it didn't create a manhattan path

from pathfinding.js.

arunkumar413 avatar arunkumar413 commented on August 16, 2024

It's working as expected if I apply the weight other than 1

weight: 2

from pathfinding.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.