I have some random planar curves, some of them have intersections. I’d like to sort list of intersected curves. For example I’m figured out that curve 0 2 intersected, and 1 3 intersected - i wanna have list of 2 branches with 0 2 and 1 3 items. If curve 0 intersected with 2 and 3 - one branch with 0 2 3 items.
Intr603.gh (12.2 KB)OMG, you’re right. Really clear and simple solution. But in occasion when one curve intersect another more then one time your solution didn’t work as i expect. And also your def is not detect intersected curves inside other curve.
You didn’t ask that in the first post
Ma bad =( Sorry if i set objective wrong. I thought that “Random curves” means many ways of collisions. i’ve already found the way how to detect that one curve intersect another (maybe multiple times). I have list of pairs of curves with intersections. My problem is how to sort this results. For example curve 1 intersect curve 0 and curve 0 intersect 2 (no matter how much times). Also there’s curve 3 and 4 with intersection. So i need to sort result to have one branch with 0 1 2 curves, and second branch with 3 4 curves inside it.
Check this topic.
And search or wait for more simple solutions, sometimes few components can solve a complex problem
Intr3.gh (14.4 KB)
Here something crazy
curve_intersection_grouping.gh (27.1 KB)
This is a possible solution by exploiting manifold edges of meshes, by using [Mesh join] and [Split disjoint meshes] functions.
First used MCX to have all the possible intersections.
Then used indexes to create single-faced quad meshes on XZ plane with Z edges with X coordinate equal to the indexes.
Join mesh will then join quads that share an edge , but it is not limited to a single coupling: all the quad faces that share a single edge will be merged into a single mesh.
(3 curves touching into a single point cannot be joined into a single object, but meshes can and will)
Disjointed the meshes.
Extracted the vertexes of the mesh and re-converted X values into indexes.
Edit:
Better version of the same concept by @anon39580149 here Sets question
It’s absolutely brilliant and crazy at the same time =)!
Thant you so much! And thank you all who help me to find solution!
Check this
I use script of David Rutten to combine branches where items have the same value
Grp crvs int .gh (13.4 KB)
find a way to get the same result as David script
This more simple, intersection component already do the job
@DavidRutten, Hello David can you convert your script to a component ? this solve many problems like this