How to split a curve by a point?

And how in GH to cut a certain curve with a selected point?

Get the t parameter of the curve for example with the curve closest point than feed it into the shatter component. After that use the list item to stay with the part of the curve you need.

3 Likes

Well, but a special tool would not hurt.

2 Likes

If you want a shorter way, Pufferfish has a Trim Curve with Points component.

7 Likes

is there any way to split a curve with 2 points or more on it with this method?
I have a circle and it does 2 intersection points with 2 different surfaces, and I want to split the circle curve with these points, but when I want to extract the T parameter from “surface | Curve split component”, it doesn’t work properly on the shatter component. I attached my file below and I would be very grateful if Somebody can solve this issue, thanks.Normal Vector.gh (16.4 KB)

Sure, if you reparametrize in the intersection component do it for shatter too.

2 Likes

I will awaken this dragon after it’s 2 year slumber. I want to split multiple curves (30) by multiple points (~300) on said curves. I determined these points using the intersection between the 30 curves and 2 spiral curves that pass through them. Basically, the segments of the 30 curves that are between the 2 spirals (the short ones) is what I want to ignore, and use the longer segments that remain. I have tried many methods which are in the attached definition, but I still cannot get the result I would like. Can anyone please help?
Split Multiple Curves w Points on Curve.gh (60.5 KB)

here’s a simple Python script that does exactly this​:joy::joy:
simple splitting curves.gh (5.9 KB)

Can you share the code becouse I can’t open in Rhino7.

Why Python?

Continuing the discussion from How to split a curve by a point?:

@cartermarino @andrija

Thanks to cartemarino and andrija for uploading your solutions!

I ran into an issue in my script where a circle would not split properly through two points (see my attached .gh file).

In the end, my workaround was to use the Curve | Curve (Intersection event for two curves) component — that’s the bottom solution in the script. This works for me, but I would really like to understand why the original split operation failed when the two points clearly lie on the circle.

What is the underlying mathematical reason for these incorrect results?

Thanks in advance for your time and effort!

Split circle throuhg 2 points, 25.09.2025_@.gh (15.6 KB)

2025-09-24T22:00:00Z

Not sure why yet but reparameterizing the circle works as expected: (in R7 and R8)

1 Like

Rotating the circle sightly works without reparameterizing :interrobang: (in R7 and R8)


Split circle throuhg 2 points_2025Sep25a.gh (23.8 KB)

1 Like

My guess for the failure is that one of your points closest points seems to be coincident with the seam.

3 Likes

@Joseph_Oster

Thanks for your quick feedback and the rotation idea, Joseph!

I’ll be able to use it nicely with my 9 circles later on too.

@martinsiegrist

Thanks for your feedback.

Wishing you all a great day

1 Like

Nine circles might make it harder to avoid the problem? FYI, instead of rotating the circle, you could move the ‘Pt_1’ that creates the problem.


Split circle throuhg 2 points_2025Sep25b.gh (24.3 KB)

1 Like

Instead of rotating the circle, you could conditionally move the seam if it’s zero or one.