2 curves intersecting point

Hello everyone.

How do I find the intersecting point as in the example below? What I’m trying to do is move the curve on the Z-axis so that they are touching tangentially at exactly one point.

How to find interecting point

If I understood correctly, if you run Line>Perpendicular to two curves, it will create a line between the two, you can then move one curve from the end of the line to the other.

  1. Extrude the lower curve vertically towards the up direction.
  2. Make an object intersection between the extruded surface and the upper curve. That will create an intersection point.
  3. Then you can create a vertical line from that point towards the lower curve.

Alternatively, do the reverse and extrude the upper curve towards the bottom. Then follow the above steps in the reverse direction.

it s a pity you did not share a file, its not obvious from you screenshot wether it is 2d or 3d problem:

3d ?

if its a 3d problem - both curves are on different planes or they are 3d freeform → see Bobis approach.

2d ?

it s a planar 2d problem on X-Z plane ?

my workflow would be

  • extrude the Curve (you get a planar surface, the 2nd target curve lays on.
  • createUVCrv from this surface and the target curve. (the rectangle on the right in my screenshot)
  • draw a point on the lowest point with point snap “quad”
  • use applyCrv to get the point back to the surface.
  • _extractIsocurve (a vertical one) or draw a vertical line to get the startpoint for the move.

just for illustration the violett line is perpendicular to both curves. the shortest distance to move them to be tangent. but not necessarily vertical.

hope this helps - kind regards -tom

Hi Tom,

I tried your method for 2D and when I checked for the intersection of the moved curve and the target curve I got two intersection points, meaning the move overshot slightly. I can place the curve more accurately (and quickly?) by using the gumball and zooming out.

DumbZoomWins.3dm (79.3 KB)

Blue curve placed via UVCrv.
Red curve placed via gumball.

Thanks for createUVCrv and applyCrv though - two more commands I didn’t know!

Also worth noting that not all curves will extrude into a valid surface. E.g. move one end point inward beyond vertical and extrude won’t work.

Regards
Jeremy

Yes, but that could very likely entail also moving the bottom curve left or right, not only along the up (Z) axis, which is what the user specified.

About a decade ago or a little more, I used to work with SolidThinking in a company. It had two extremely powerful capabilities:

  1. Super robust history that worked even on split intersecting surfaces, variable radius fillets, and blends. It was probably the best in the industry, at least for its time.

  2. Ability to move curves, surgaces, and objects and snap them to other objects so that they will touch together precisely. I guess that they used inverse kinematics for that.

@jeremy5
this is what i get.
the final curve exactly intersects in one point.

DumbZoomWins_02_tomp.3dm (3.1 MB)

for applyCrv you have to select the rectangle and the point to get the precise position.
why do you have this fancy wavy curve ? (cyan)

check above file and see if you can repeat the workflow.
kind regards - tom

see the workflow i posted above

It’s just good old calculus; the curves’ first derivatives (slopes) must be equal 𝑓′(𝑎) = 𝑔′(𝑎) at the point of intersection, the distance is the common normal. The good thing is that Rhino does all that for us while we’re chewing gum.

I used Tom’s method and the moved curve had only one intersection. The result is very sensitive to selecting the min/max point on the UV curve.

Ah that was my mistake: I didn’t include the rectangle in my selection for ApplyCrv. If I include it I see what you see. Thanks for clarifying.

You get the cyan line if you select the uv curve but not the rectangle. As it says in the help file “Tip: If the UV rectangle is not selected together… …The result will not be correct”. I really must start reading the help file before using a new command, not after!

@Tom_P et al,

I feel this is turning into a challenge: how would you go about moving the white club vertically upwards to just touch the red heart?

AskTomReMove.3dm (92.8 KB)

Cheers
Jeremy

The first point that touches?

Let s clarify the rules:
Vanilla rhino please, no Kangaroo

Use Tom’s brillant method.
SubCrv for a segment of the red curve.
Extrude the subcrv.
CreateUVCrv for the white curve.
Point at quad on the UV white curve, and then line through that point.
ApplyCrv for the line back to the extruded surface.
Move/Copy the white curve.
AskTomReMoveDC01.3dm (2.1 MB)

Yes, first point.

But maybe two categories: a) Vanilla Rhino, no grasshopper, and b) grasshopper. Some people may want to rise to the challenge of a, others to b.

The latter could come into its own if there is a repeated need to do this.