nengo / nengo-gui

Nengo interactive visualizer
Other
99 stars 38 forks source link

Thinking about aligning / distributing plots #857

Open tbekolay opened 7 years ago

tbekolay commented 7 years ago

For some of us, manually dragging a plot next to another plot results in a solid minute of ensuring that two plots are precisely aligned through slow, meticulous mouse movements. It would be nice to have some additional ways of placing objects (both netgraph items and components) other than dragging and dropping. One place we can look for inspiration on how to do this is SVG editors.

Inkscape has a set of buttons for aligning and distributing SVG elements. The documentation is here, which describes all of the buttons. This video gives a super quick introduction to the most often used buttons.

One issue with that method of aligning / distributing is that it requires a robust concept of "selecting" things in the GUI, which we currently don't have. There'll have to be some thought about how to do that, especially with touch interfaces.

Adobe Illustrator (and Inkscape, with recent versions and/or tweaking) does a lot through attempting to intelligently place things where it thinks you want them to go through snapping. So, if you drag a plot such that the top edge is within a few pixels of another plot's top edge, it will snap to the other plot's top edge so that they're exactly aligned, meaning you don't have to move things as precisely. You can also automatically or manually make grids for quickly making and aligning shapes. These are tricky to get right, but they're a big reason why people use Adobe's graphic design tools over other options.

tbekolay commented 7 years ago

A few other related suggestion from @celiasmith in #249 (moving here to keep the number of issues down):