Curve Corner Points

Any clever trick to select just the corner points of a curve like this? I have tried Convex Hull Points, but I can’t find a way to filter out just the corner points. I need to split the curve in 4 separate curves.

Curve Corner Points.gh (3.3 KB)

The only way I was kind of able to do it is this. I wonder if there is anything better.

Curve Corner Points v1.gh (8.0 KB)

Or you can measure angle at end/start of neighbor segments (measure tangents at that points for each segment) and based on limit angle filter/dispatch points.

Curve Corner Points rg01.gh (11.2 KB)

4 Likes

Cool man, but it is difficult to calculate the angle automatically, no?

You set up some limit angle for which you will consider point at that discontinuity to be corner point.
Do not know other “automatic” way.

1 Like

Kangaroo has a component SplitAtCorners which does exactly that:

2 Likes

Cool! But I kind of want to get the logic behind it.

Internally it’s most likely doing the same thing as @RadovanG’s definition, measuring the 3d vector angle between both segments at each vertex and comparing it to a fixed maximum.

Another alternative way of getting the angles:
image

2 Likes

Logic is always about measuring kink angle and determining if it is “too kinked”

1 Like

Well, in this case my approach is kind of simpler, because I round the curve at the kinks with a very small value for the fillet and then just select the corresponding points with the cull pattern.

Thanks! It helps me a lot!