Bug 105618 - Weaknesses in creating Bézier curve
Summary: Weaknesses in creating Bézier curve
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
Version:
(earliest affected)
5.4.0.0.alpha0+
Hardware: x86 (IA32) Windows (All)
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: needsUXEval
Depends on: 94699
Blocks: Shapes
  Show dependency treegraph
 
Reported: 2017-01-30 17:18 UTC by Regina Henschel
Modified: 2023-05-06 18:38 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
Sequential steps to create a curve with Inkscape (4.87 KB, image/png)
2017-02-21 16:26 UTC, Heiko Tietze
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Regina Henschel 2017-01-30 17:18:40 UTC
Start in Impress or Draw and read the help text "Drawing Curves". 
Activate the tool "Curve".
Click at the position of the start point and drag holding down the mouse button.

Problem: The user does not know, what he is drawing. Actually he is going to set the first control point and line he sees is a help line.

Release mouse button and move mouse. Now you can see the curve, which will be created.

Now try different ways to continue
A   Double click to end drawing. An end point of the Bézier curve is generated and the user is back to object mode with green handles. A second control point was generated at the same place as the end point, but the user does not see this control point.
B   Click and release mouse button. Move mouse around. A line is tied to the mouse cursor. What kind of line? Same help line to a control as in the beginning? The mouse pointer has the same graphic! No, it is a direct part of the curve, a second segment, a straight segment.
C   Click and hold the mouse button pressed. Now you get a dashed line. From moving around you guess, that it is a help line to the second control point. Release button. Suddenly the curve jumps to the opposite side. A very unexpected behavior. Actually this click-hold-down-drag creates a symmetric endpoint, so that the first control of the second segment is automatically determined. It is not possible to set this control point in a way, that second control point of first segment and first control point of second segment are at the same side of the curve, and it is impossible to set them independently.
D   Alt-click the end position. The curve is closed, but the drawing is not finished. You can continue and create a second subpath of the same object. The help does not mention it in text "Drawing Curves".

The UI for drawing a Bézier curve needs improvements
Suggestions:
Show all control points and all help lines while creating a Bézier curve.
Always show different line styles for help lines and parts of the curve.
Create the second and following segments the same way as the first segment.
Add help text for use of Alt-key to the text "Drawing Curves".

Please have a look at Inkscape or Corel Draw to see other UI concepts.

I think, the UX team should have a look and find a more intuitive way of drawing a "polyBézierCurve".
Comment 1 Heiko Tietze 2017-02-04 12:07:33 UTC
We should have a look how others do the trick. Was also looking for the ticket regarding the numerical input for bezier curves but didn't found it. Would be an alternative way to deal with the issue. 

But "graphic stack", really?
Comment 2 Regina Henschel 2017-02-04 15:40:24 UTC
I don't know which component it should be. It is a problem in the UI of Draw, Impress and Writer. Calc has the additional problem, that the "Edit Points" toolbar does not exist. Therefore in Calc it is possible to draw a Bézier curve and to switch to point edit mode, but you cannot alter the Bézier curve properties.
Comment 3 Heiko Tietze 2017-02-21 16:26:49 UTC
Created attachment 131387 [details]
Sequential steps to create a curve with Inkscape

(In reply to Regina Henschel from comment #0)
> Show all control points and all help lines while creating a Bézier curve.
That requires an assumption of the curve. You can draw a straight line with the curve today by double-clicking the second point. 

> Always show different line styles for help lines and parts of the curve.
Yes, but isn't that how it works today? Control points are connected with dashed lines in Draw 5.3 at least.

> Create the second and following segments the same way as the first segment.
You mean to connect another Bezier curve after the first rather than adding a line? Alternatively we could just end after the second click - and allow to add segments/points later. One could also argue that right click to delete the last point is not obvious, but users can easily try it out.

> Add help text for use of Alt-key to the text "Drawing Curves".
Don't get this.

> Please have a look at Inkscape or Corel Draw to see other UI concepts.
Inkscape works very similar. You start with a straight line and have to click once in order to see a curve and a second time to finish it. But unless you double-clicked, segments will be added. Inkscape supports the user with coloring and keeps the first helpline active, however. Good idea.

What also would be really helpful is when the coordinates would be shown at the control (not only for curves). The statusbar is way too far away to attract the attention when a curve is being drawn or modified. And when we could edit the end points as well as the control points we'd have a perfect tool.
Comment 4 Regina Henschel 2017-02-21 18:17:55 UTC
(In reply to Heiko Tietze from comment #3)
> Created attachment 131387 [details]
> Sequential steps to create a curve with Inkscape
> 
> (In reply to Regina Henschel from comment #0)
> > Show all control points and all help lines while creating a Bézier curve.
> That requires an assumption of the curve. You can draw a straight line with
> the curve today by double-clicking the second point.

Yes, that is one of the automatic reductions. But it is not the usual way to use Bézier tool, because the more suitable tool for such a task is the Polyline tool.
 
> 
> > Always show different line styles for help lines and parts of the curve.
> Yes, but isn't that how it works today? Control points are connected with
> dashed lines in Draw 5.3 at least.

Not at the beginning.  When you start with click-mouse-button-down, and then drag, and then do a mouse-button-up, then a control point is set. So in first place this line is a help line from anchor point to control point and should be dashed, so that the user knows, that he is going to set a control point by mouse-button-up. Later on it is correct.

> 
> > Create the second and following segments the same way as the first segment.
> You mean to connect another Bezier curve after the first rather than adding
> a line? Alternatively we could just end after the second click - and allow
> to add segments/points later. One could also argue that right click to
> delete the last point is not obvious, but users can easily try it out.

Currently you add a Bézier segment (hold mouse button down as in the beginning). The next mouse-button-up generates a control point for the first segment at the position where you do the mouse-button-up, and it turns the second anchor point to a symmetric transition and therefore generates the first control point of the second segment automatically in addition. But the user does not know this, because he doesn't get the associated help line to this control point. So the user is surprised, that he cannot set a control point, but has do set the end-anchor-point of the second segment.

It would already be an improvement, if this automatically inserted, associated control point and its help line is shown too, as Inkscape and Corel Draw do it. Another improvement would be to allow edge transition as Inkscape does.

You can add and delete points always later. That does not solve the problem.

Continuing a first segment with a straight line is only one way to use this tool.

"Right click to delete" is indeed not obvious. Right click for reverting last step is new to me and not mentioned in the help. Another thing to improve, not this function, but the help.  

> 
> > Add help text for use of Alt-key to the text "Drawing Curves".
> Don't get this.

If you hold the Alt-key down, when you click for an anchor point, then the curve up to there is closed and your mouse is "free" and you can draw a next, closed curve, but you stay _inside the same object_. The result is the same as if you first draw two objects and then combine them.

> 
> > Please have a look at Inkscape or Corel Draw to see other UI concepts.
> Inkscape works very similar. You start with a straight line and have to
> click once in order to see a curve and a second time to finish it. But
> unless you double-clicked, segments will be added. Inkscape supports the
> user with coloring and keeps the first helpline active, however. Good idea.

Corel Draw keeps showing all anchor points while creating the curve.
Inkscape allows to switch from symmetric transition to edge transition by holding shift key. Inkscape shows possible modifiers in the status bar. All further nice ideas.

> 
> What also would be really helpful is when the coordinates would be shown at
> the control (not only for curves). The statusbar is way too far away to
> attract the attention when a curve is being drawn or modified. And when we
> could edit the end points as well as the control points we'd have a perfect
> tool.
Yes, better numeric control of point positions, is really desired, not only for Bézier curves but for polylines and legacy arc and segment too.
Comment 5 Heiko Tietze 2017-02-21 20:52:47 UTC
(In reply to Regina Henschel from comment #4)
> If you hold the Alt-key down, when you click for an anchor point, then the
> curve up to there is closed and your mouse is "free" and you can draw a
> next, closed curve, but you stay _inside the same object_. The result is the
> same as if you first draw two objects and then combine them.

The most wanted feature I guess. Hidden combine, which in turn is unknown...

How about keeping this ticket plain and ask for helplines only, which would be nice. Otherwise we could also make this a meta ticket.
Comment 6 Regina Henschel 2017-02-21 21:29:30 UTC
I think, the "Meta"-idea is better. Create a new bug report for the missing parts in the help. It is clear, that an existing feature should be described.

For the other parts, first a concept has to be discussed (outside Bugzilla), about what are use cases with Bézier curves and how the UI can better support the users in their tasks. (Perhaps an idea for GSoC 2018?)