GithubHelp home page GithubHelp logo

Comments (4)

kustomzone avatar kustomzone commented on June 15, 2024 1

Sure, i understand the goal of keeping the layout in an automatic functioning mode.

Perhaps an [alt] key or toggle switch (whichever doesn't interfere with keyboard shortcuts is fine) that slides a slight horizontal gap between the overlapped objects as a temporary state (but only when it's pressed or toggled) and snaps back to automatic positions when released, just so we can make another connection which will re-orient the layout, thus saving us from disconnecting or removing our construction.

from skov.

nicolas-p avatar nicolas-p commented on June 15, 2024

I am aware about this issue.

The graph layout algorithm has been by far the hardest thing to develop in this project. I tried many different (bad) ideas before converging towards the current algorithm that works satisfyingly in 95% of cases. But I know it's still not perfect.

So currently, if you end up in a situation where nodes overlap, the solution is to go back (disconnect nodes by placing the cursor on a connector and pressing X) and try to wire them up in a different order.

I am not in favor of allowing manual re-positionning. If the automatic layout algorithm doesn't work as expected, then the right thing to do is to improve the algorithm, not to fall back on the easy solution of manual layout.

from skov.

nicolas-p avatar nicolas-p commented on June 15, 2024

I've thought a bit about it and I think the right thing to do is to build a safety mechanism at the end of the graph layout algorithm so that if it generates a bad layout with overlapping nodes, the problematic nodes will be moved so that they don't overlap. The layout will still look bad, but at least it will be usable.

from skov.

nicolas-p avatar nicolas-p commented on June 15, 2024

This issue has become irrelevant in New Skov (see #12).

from skov.

Related Issues (12)

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.