Curve through points tangent to two

Lines have start tangent circle, how do I get this curve to start and end tangent and go through these points ?

see attached simple test.

a step by step as this still eludes me.

a Jing video most welcome from those with it installed.

SteveCurveThroughPointsTangentTwoCircles.3dm (24.5 KB)

Here’s what I’d do -
Split the curve with the point nearest the end.
Use SubCrv on a circle, Copy=Yes, to make a short arc starting at the end of the curve.
Match the split off curve segment to the arc for tangency.
Turn on control points for the curve and select the end two (that are on and near the circle).
Rotate the two points on the center of the circle to adjust the tangency location.

Then rejoin the curves…


sorry but not understanding the first line. lost me there…and elsewhere in fact !

Dont suppose you do Jing ? I truly need to see this.

I bet others come across this issue.


Link added to my post above… oh, OK, here it is again.


Another way would be to make a line tangent to the circle at the location you’d like to start or finish the curve, and use this line as a dummy for StartTangent or EndTangent.

Or forget the line and just make a subcurve of the circle at the desired tangent point and use that for StartTangent/EndTangent.


can’t you just go tangent to the circle?

i guess this is still the same question/problem from this thread:

fwiw, i do see how you want InterpCrv to act in this situation… some sort of ‘best fit tangent’ or a tangent line which deviates(?) the least amount… maybe if you draw it like this, it will ease your mind some… i don’t think it’s the best result but it will give you what you want as far as rhino choosing where on the circles is ‘the’ tangent point…

Hi Steve,
as Feff suggested, Arc tangent to two curves is the command that you need to have a single arc going from the black curve’s end point and tangent to the red circle.
The thing I would add to be sure that the arc starts from the curve’s end point is a mirrored circle (the red circle mirrored).
In other words, you’ll use the two circles as “tangent” curves and the end point to define the resulting arc radius.
Attached an image and the 3dm file to explain my procedure.
Hope this is clear…

CurveThroughPointsTangentTwoCircles_LZ.3dm (59.6 KB)

The only thing I’d watch there is that the arc will not be G2 to the interp curve, if that matters…


yeah, that’s what i meaning by ‘i don’t think it’s the best result’… i posted that as an example to show, as i understand, that steve is expecting interpCrv to snap to a single tangent point on the circle in the same way an arc or line can do that but not necessarily recognizing that with an interpolated curve, that tangent point could literally happen anywhere along the circle.

i don’t know… i guess i don’t understand how steve is getting these 6 inner points as absolutes but not being able to get the other two outer points… i personally think it would be best to draw the entire curve -then- place the circles tangent to the curve…

Jeff…The 6 points are fixture they are from an engineering drawing of a rudder top profile, and plotted using the drawings distance up from a datum and distance out from rudder centre line. The rudder tip has a small radius edge above and a larger one below.
I see it that there is just one mathematical curve line through the 6 points, and there can be one point on the circle where this curve could then end up to be tangent to the circle. If there are more than one I would like tosee an image of where they are. I have to trus in the fact that when this drawing was created 50 yrs ago they used splines (cane) and created the arc and circles to be feasible.

Lucios drawing looks good …as does yours. I need to study all methods shown here to see what is easiest and best.

Pascal,…yes I had trouble before and never recall a happy conclusion or one I understood, then couldnt find the thread to check.

I still think the interpCrv command could have an option to start tangent from curve, I just cant see how it is that in the scenario above there are a number of start positions on the circle, all of them tangent to it, for the curve to go through the points.

I ended up choosing line tangent from curve, selecting circle then first point, getting some idea of where the start would be, starting my interpCrv where that line started on the circle, and then using line tangent two curves and selecting the circle and the curve to further fine tune things, creating a new InterpCrv for the entire journey from circle to circle, ending up with a ‘looks good’ result !


interpCrv does have an option to start tangent… and end tangent.

it’s just that you have to tell it which point you’d like to start/end tangent… because any point along the circle can be the tangent point. ( I keep saying that… but I guess you don’t believe me :wink: )

in your other similar thread, i showed this drawing –

all four of those curves are drawn with _InterpCrv using the start tangent option then sharing the same additional 4 points… they’re all correct… just like any other startTangent point along that circle would be.

fwiw steve, i do realize there’s an exact point which you’re looking for and it appears as if interpCrv could find that point…

mathematically, it’s beyond me… because as next point is being moved into place, the back end of the curve is also adjusting and/or somewhat free to move around (which doesn’t happen with an arc or line since they’re much more limited in their definitions and a lot easier ,for me personally, to understand the formulas behind them)…

but in this video, (or better yet, just copy what i’m doing in the video to see for yourself), it’s pretty obvious there’s an exact point which gets crossed where the interpCrv begins to cross to the other side of the circle… right before that crossing point, it appears there should be a tangent point which could be figured out by rhino instead of requiring the user to pre-define the point of tangency…

i haven’t really thought it through enough to know if this works out the same in other situations or if it only appears as if it should work in this particular drawing… but maybe pascal can pass it along to one of the über math geeks at mcneel for analysis ?

Hi Steve

Along the lines of the way Jeff has done this, here is another idea.

Leading edge

1. Extend center line through to circle / split circle in half
2. Split curve a bit beyond the point object
3. Command _Arc _Tangent - pick the point object on the curve - then the circle - fine tune with the white markers and acceot when happy with result
4. Split the circle and the curve at the end points of the new arc
5. Delete the trimmed remnants and join the result

Trailing edge

I think you have a bump between the last 2 points because you’ve changed direction of the interpcrv, however, if that’s intended then repeat the above.

Finally join the original curve with the 2 new arcs and rebuild that portion to an acceptable deviation.
Then replace the remaining leading and trailing edge circles with blended curves (by tangent) between the rebuilt main curve and temporary perpendicular lines at the quadrants and using the part circles as your guide - see attached. Then join the result and possibly rebuild again if the curves are to be used for lofting.

CurveThroughPointsTangentTwoCircles(BM).3dm (57.8 KB)

@Steve1, ArcBlend might be a good candidate here as well, if tangent continuity to the long InterpCrv is enough.

I made a SubCrv of the circle as ArcBlend seems to behave better on the open curve than on the closed circle.


This is very close to what I want to do. Is there anyway to post the Screencast examples again please )