Distance between curves


(Emmanuelle Vanhaesendonck) #1

Hi, I am trying something in grasshopper, but my knowledge doesn’t go so far to know if it’s right what I am doing till now. I have read some posts but doesn’t find exactly what I need. I have multiple curves and a given point. I try to connect with a line the given point to curve 1, curve 1 to curve 2 and curve 2 to curve 3, and those 3 lines must have the same lengths. So i am searching for the points on the 3 curves so that they have the same connection length. I did a try in Grasshopper, but can’t get a result out till now. I don’t know if my 'equal length is calculating the points i need.

!
I made a little sketch to show what I am looking for.

Someone that has more experience with this? Thanks! :slight_smile:


(Lando Schumpich) #2

Based on your Sketch there should most certainly be an Infinite number of possible solutions. This could be solved either with scripting or Galapagos if i don’t miss some fancy math here.
You could draw circles with increasing radii around your given point and as soon as the circles intersects with curve 1 draw another circle with the same radius around the intersection point. If this circle intersects the second curve keep going, otherwise go back to the start and increase the radius.

i wrote something in native gh using galapagos which should to the trickequicrvconnect.gh (13.8 KB)


(Emmanuelle Vanhaesendonck) #3

@lando.schumpich Waw, thanks for spending time making this! I tried it, but seems to do nothing - is galapagos included in Rhino, or do I need to download it separately? I Think it could not be working because my curves are not in 1 plane drawn. My curves are circles but drawn perpendicular on a surface. curves distance 1.3dm (2.8 MB)
Can you take a look at my file? I took a sceenshot of the curves and the point that I am talking about.


Because my drawing is in 3D, maybe I should use a sphere in the gh in stead of a circle?
I could get the number of points smaller by making my circles only half of them, I only need a result in the range of 180 degrees to the outisde… :slight_smile:
Thanks!


(Lando Schumpich) #4

Well Spheres are the way to go in 3d space :wink:

I adjusted the slider Value to your file so you don’t really need galapagos anymore just play with the slider till you see a solution that you like

equicrvconnect.gh (19.0 KB)


(Emmanuelle Vanhaesendonck) #5

@lando.schumpich great!! I understand the gh where you do the intersections, I have a doubt understanding the end: After the crv (where al the lengths come in) do you say to delete the options that don’t have the asked length (‘Cull’)? Is that why after the first intersection he know he only continue drawing on one intersection point? And what is the pink one doing?


(Lando Schumpich) #6

That’s a start :slight_smile:
the expression returns 0 (=False) for all lines that don’t fit the starting radius (the sphere will most of the time intersect in one point which has the right distance and another one on the “back”). like here: the point in the back is too far away so no line is drawn

‘Cull Pattern’ deletes all lines from the list which are too long or too short.

The ‘Join’ and ‘Shatter’ operations in the end are a hacky-i-didn*t-have-a-better-idea check to see if there is a path (a polyline) made out of equal length lines.

the pink one would be for optimization, you could either search for the longest or shortest possible path with equal line lengths.


(Emmanuelle Vanhaesendonck) #7

@lando.schumpich oké :slight_smile: is it normal I don’t see something changing when removing the pink one? (I was thinking each possible path would have the same length, as the number of length in between is given)
And is there a reason for adding a ‘python block’ in the beginning?


(Lando Schumpich) #8

yeah that’s normal the pink one doesn’t do stuff till you double click it.

Whoops i forgot about the python block it’s unfinished and doesn’t work :sweat_smile:


(Emmanuelle Vanhaesendonck) #9

@lando.schumpich oeps oké :stuck_out_tongue: I didn’t know that. I did a test, and now I have 1 green line colored at the end. Does it mean the other connections are not good, or he just piked out one good?


(Lando Schumpich) #10

looking back at it my solution was super messy. here is a much cleaner one which is maybe even self explanatory because i tried to make it a clean definition:

equicrvconnect.gh (23.4 KB)


(Emmanuelle Vanhaesendonck) #11

@lando.schumpich I continued drawing on the previous grasshopper this night, I didn’t noticed the last one. But it is very clear! Thank you very much to do this! I will use the last one to continue. I also put an angle to my starting point so it can move, and i made connections at the end between my starting line and the new line in grasshopper. The black lines are connections I draw in Rhino, the blue from gh. (need still some adjustments, but close to what I want :slight_smile:) If I can ask you another question. I tried this night making planar surfaces of the triangles, but that didn’t work out. I found it is called boundery surface in gh, but the triangles should be flat If I well understood to work.I tried with delanauy mesh, but it is not dividing like my triangles (or I am giving maybe to much/wrong input lines). I also tried with ‘patch’ but that just made like a vertical straight plane. In Rhino I can do it simple, but I wanted to see how it looked like when I am changing my angle point and the length. :blush: Have you some advice for this?


hyperbool kraag1.gh (32.2 KB)

hyperbool verdeling 3.6.3dm (14.7 MB)