Bug? Deleting curve segments

How to reproduce:

  1. Open a new file
  2. Add a bezier circle
  3. Deselect exactly one segment (2 control points and their 2 inner handles)
    Of the 12 points, 8 should be selected and 4 not
  4. Press X > Delete > Segments
  5. Have nothing left!?

Other selections also have strange outcomes:

  • Selecting opposite segments of a circle will also delete the entire circle
  • Subdividing the circle first deletes everything as well

Question: Am I misunderstanding how segment deletion should work or is this a bug?

Hi.
What version of Blender are you using and in what operating system?

Could you share a screenshot of what you have selected before deleting segments?

Mac OS 10.13.3
Blender 2.79

Selection:


Result:


Expectation:


Hi.
Well, I use curves in a very basic way and I do not know much about it. I do not think this is a bug, because it works the same way from many previous versions. The manual is a bit confusing at least for me:
https://docs.blender.org/manual/en/dev/modeling/curves/editing/introduction.html#delete

In my tests apparently selecting any handle works in the same way as if the corresponding control point of those handles was selected. So for example in the first case you show, it’s as if you had all the control points selected anyway. But as I said I do not know much about curves, maybe someone can clarify this better.

Yes, this was probably there since curves where added.
But that doesn’t mean it is correct / helpful, just that it is not well tested, because it isn’t used frequently.

In my opinion, the way it is right now is very unintuitive and its hard to predict what will happen.
It should be based on the selection of the handles, not the control points.
Otherwise, you could not delete one segment of a cyclic two segment curve, because you can’t select which one you want.

Also not much of a curve user, sorry…
But wouldn’t it help to simply disable the display of curve handles temporarily in order not to accidentally select them (N for properties panel, then turn off handle display in the “Curve Display” section)?

The points you selected aren’t the endpoints of the segment you are trying to remove, they’re just the handles that influence the amount of curvature between two endpoints.

I suggest you read up on the concept of bezier curves.

I am well acquainted with bezier curves and their mathematics,
but that has nothing to do with how one would design a user interface for them.

No.
We already have “Delete-Vertices”, if you want to delete parts of a curve based on the segments end-points / control-points.
But, there is no way to delete a single segment of a cyclic two segment curve directly.

Let’s say you want to delete the lower segment of this curve but keep the upper one:

That would only be possible if the selection of the handles would be used instead of the control-points.
To be more useful and give the user more control “Delete-Segments” should do this and that would make it different from “Delete-Vertices”.

There cannot exist cyclic bezier with only one vertex. Just toggle cyclic Alt-C.

True, but I am not talking about one vertex but one segment being left.

Yes, that would remove the cyclic flag, like any other delete operation (except for dissolve).
And no, toggling cyclic does remove one segment but you can not choose which one (again).

You could subdivide, delete the necessary segments, then dissolve any extra points.