drawing arc tangent to 2 curves through a specific tangent point

Next
 From:  pressure (PEER)
11616.1 
How should I draw an arc that's tangent to 2 curves and that passes through a specific point on one of the curves?

Here I want the black circle to be tangent to both the blue line and the red arc and I want the tangent circle to specifically pass through the endpoint of the blue line.

- Peer

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11616.2 In reply to 11616.1 
Circles>Tan_Tan seems to do the trick. Select line end point, then select red arc, and move away, until new circle appears.

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
11616.3 In reply to 11616.1 
Hi Peer, can you please post a .3dm file with the curves in it?

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  pressure (PEER)
11616.4 In reply to 11616.3 
Brian:

Circles > Tan is one of the things I tried using. I can get a circle that's tangent to both the red and blue curves, but not one that passes exactly through the end of the line. The circle dissapears if I snap the cursor to the end of the line.

Michael:

See attached. The black arc is what I want.

- Peer
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11616.5 In reply to 11616.4 
Hi PEER,

The center of the tangent circle must be equidistant from the line endpoint, and the red arc, and Also be on a horizontal line through the line endpoint.
Not sure how to do such constraints.

- Brian

Copy the Red circle to make it tangent to the line endpoint, on the left side.
Draw a line between the two red circle centers, and find the midpoint, and perpendicular bisector line. This line intersects the horizontal line thru the line endpoint.
This is the center of the desired tangent circle. Then draw said circle.

(isosceles triangle.)

EDITED: 2 Jan by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
11616.6 In reply to 11616.4 
Hi Peer, a couple of things that might help the tangent solver for this case are first to place a point object (Draw curve > More > Point) at the endpoint and then slide the line down a little so that it can converge onto that point from either side.

The other thing that could influence it would be to hide the line before picking the 3rd point because it's probably trying to do a "tangent to 3 curves" operation since the through point is on that line.

To hide the line, select it before drawing the circle and then push Edit > Hide before your 3rd pick.

It seems like there could be a geometric solution since the circle's center point will be located on a perpendicular line off the end. So if a second constraint can be determined they could be intersected to get the solution.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11616.7 
3dm attached.
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
11616.8 In reply to 11616.4 
Hi Peer, how about mirror circle over perpendicular:







Then circle tangent to 3 curves:


- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
11616.9 In reply to 11616.5 
@Brian, yup that looks like the correct geometric solution.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
11616.10 In reply to 11616.8 
Your solution is Cool, part geometry, part MoI.

There is another, larger candidate, on the left hand side.

EDITED: 2 Jan by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  pressure (PEER)
11616.11 In reply to 11616.6 
Hi Michael,

Re:
> a couple of things that might help the tangent solver for this case are
> first to place a point object (Draw curve > More > Point) at the
> endpoint and then slide the line down a little so that it can converge
> onto that point from either side.

That doesn't work for me. The circle disappears when I try snapping onto the drawn point.

Re:
> The other thing that could influence it would be to hide the line before
> picking the 3rd point because it's probably trying to do a "tangent to 3
> curves" operation since the through point is on that line.

The behavior is identical when I do that. The circle disappears when the 3rd pointpicker snaps to the endpoint of the line.

Re:
> It seems like there could be a geometric solution

I was hoping for a direct way using tangent snaps. The tangent circle and tangent arc commands are a little flaky with the circle often failing to generate even when the cursor is in a valid position. Seems like there's some hysteresis where if the cursor is in a valid position and is moved toward an invalid one then the circle updates all the way to the edge of validity, but if I move the cursor from an invalid position to a valid one there's a band where after the cursor is in the valid zone no circle gets drawn until the cursor is moved further into the valid zone.

It also might be nice if the tangent circle closest to passing through the 3rd pointpicker would always be drawn even if the cursor is in an invalid area. If that's too expensive, just doing it when moving the cursor from valid to invalid by "leaving behind" the last valid circle might feel better than having the circle continually vanish.

But, even if it can be made to work reliably so that picking the 3rd point on a curve actually causes the point of tangency to coincide with the 3rd point, that would be a big help. Here's an example where I'm picking the 3rd point and the tangency is being found a ways away even though a solution exists that passes through the cursor position.

- Peer



Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  pressure (PEER)
11616.12 
Brian and Michael,

We're all typing at the same time :) Thank you both for working on this. Brian yours is beautiful. I think I see why Michael's works: it's avoiding having a discontinuity where the solution suddenly vanishes.

By the way, happy new year to both of you!

- Peer
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
11616.13 In reply to 11616.11 
Hi Peer,

re:
> It also might be nice if the tangent circle closest to passing through the 3rd pointpicker would
> always be drawn even if the cursor is in an invalid area.

Sorry I'm not understanding this part.

Basically the circle tangent solver doesn't like to be given coincident points. Internally it's trying to generate a circle through 3 points which is undefined when the 3 points are collinear or coincident.

Happy new Year!

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  pressure (PEER)
11616.14 In reply to 11616.13 
Hi Michael,

Re:
> Basically the circle tangent solver doesn't like to be given coincident
> points. Internally it's trying to generate a circle through 3 points
> which is undefined when the 3 points are collinear or coincident.

Thanks for explaining. I wasn't thinking of this command as a circle through 3 points. Was instead thinking of it as picking 2 curves and then picking a point that the tangent arc must go through. I thought the first 2 points were used to select the single closest solution if there are multiple solutions. But now I see that I'm never picking any particular curves.

Re:
> I'm not understanding this part.

Here are 2 cases where the pointpicker is in a region where there's no solution, but the closest solution is drawn.

- Peer





  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
11616.15 In reply to 11616.14 
Hi Peer,

re:
> Was instead thinking of it as picking 2 curves and then picking a point that the tangent arc must go through.

Well it is doing that (either 2 curves + point or 3 curves) but for each curve the point on the curve is part of what it is gathering.

The point on each curve will be used as the starting parameter for the solver, it will converge to the closest solution to those starting points.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All