Re: [Inkscape-devel] Inkscape style connectors - usability suggestion
Hello Arcadie,
my suggestion was to drop default predefined points, as the whole outline would be an infinite set of possible connection points. When ever a user drops an handle near to the outline, an instance of an connection point would be generated, positioned on the outline path next to the place of dropping the handle.
This instance would hold a float which indicates the relative position of the connector on the given outline. eg.: float pos between 0 and 1, a value of 0.5 would define a position on the outline path half way between the start and the end of the path.
This placement would be valid and appropriate even if the object gets scaled. As a result no predefined points are really necessary. One could build the outline out of different paths and maybe additional single point paths and only allow a subset of them to accept connectors, to specialize the objects behavior. But that would depend on the objects intended behavior and would be specific to the objects template.
Hans
My idea was to compute a number (8) of points on the outer shape of the object that would correspond to vertices and midpoints for a rectangle, and to north, east, south, west along with north-east, east-south, south-west and west-north directions in the case of a circle or an ellipse.
For a more complex shape the idea was to compute the points which lie along these directions on the outer boundary of the shape. Another idea that appeared on the list was to place a number of equidistant points along the outer boundary of the shape.
On Oct 1, 2011, at 6:57 AM, Hans-Jürgen Hay wrote:
my suggestion was to drop default predefined points, as the whole outline would be an infinite set of possible connection points. When ever a user drops an handle near to the outline, an instance of an connection point would be generated, positioned on the outline path next to the place of dropping the handle.
This instance would hold a float which indicates the relative position of the connector on the given outline. eg.: float pos between 0 and 1, a value of 0.5 would define a position on the outline path half way between the start and the end of the path.
The zero-to-one-distance-along-the-path was a key aspect that has come up a few times. That's fairly consistent with other SVG features. It would be very good to have support for sliding these in the UI, and thus be able to reuse it both for connector points and for text-on-path anchor points.
One thing to keep in mind, though, is that very often people will want the anchor points to stay at fixed locations on the shape. For diagramming this often starts with top, bottom, left, right.
If the connectible outline is defined as a list of path+distance +layout_hint structs, specific to each object template, anchor points could just be zero size paths. For objects that are allowed to change aspect ratio or shape, having the outline path segmented would also prevent the connection points to shift to unintended locations on the outline when changing the aspect or shape. In addition the template designer would have maximum freedom in the layout of the set of connectable points, like allowing points inside of the shape or at a specific distance to the shape, to become anchor points or anchor paths.
Each object/shape template probably will have very different and unforeseen requirements. As a generic preset for all templates, the full outline probably is a more general concept than betting on some idea of possibly useful points.
Hans
Am Samstag, den 01.10.2011, 10:40 -0700 schrieb Jon Cruz:
The zero-to-one-distance-along-the-path was a key aspect that has come up a few times. That's fairly consistent with other SVG features. It would be very good to have support for sliding these in the UI, and thus be able to reuse it both for connector points and for text-on-path anchor points.
One thing to keep in mind, though, is that very often people will want the anchor points to stay at fixed locations on the shape. For diagramming this often starts with top, bottom, left, right.
participants (2)
-
Hans-Jürgen Hay
-
Jon Cruz