Skip to main content
24-Ruby IV
February 23, 2022
Question

New problem with circles

  • February 23, 2022
  • 2 replies
  • 21404 views

The belt pulls together two or three circles with D1, D2 and D3. What is the length L of the belt?

If D1=D2=D3 L=D*(3+pi)

D1D2D3L.pngD1D2L.png

 

See also

https://community.ptc.com/t5/PTC-Mathcad/Malfatti-circles/m-p/687281

 

2 replies

24-Ruby IV
February 24, 2022

One of the solutions in attachment - Prime 6 and pdf.
But I would like to see a more elegant solution. Is it possible?
"How do you boil water in a kettle?
- You need to pour water into the kettle and put it on fire!
- And if there is already water in the kettle?
“We need to pour out the water and reduce the problem to the previous one!”

Who is the author?

16-Pearl
February 24, 2022

Here's a quick solution for the two circle problem.  Three circle can be solved the same way but needs a check on if the 3rd circle extends outside the belt.  

DJF_0-1645707735213.png

 

 

24-Ruby IV
February 24, 2022

Thanks DFJ for the nice and simple solution.
But other simplicity is worse than theft - theft of a graphical representation of the task and the transition to three, four, etc. circles.
But from the very beginning, I focused not on two, but on three circles and on a graphical display of the problem.

25-Diamond I
February 25, 2022

I would suggest a more generic problem.

Let's not limit ourselves to touching circles, and let's not limit the number to three or four. Let's find the convex hull of any number of circles in any position and find its perimeter.

K2.gif

Of course we can use the very same solution to deal with touching circles as well.

T2.gif

Here's a nice animation with three moving circles trying to escape the rubber band:

MC2.gif

Lets see what you can come up with ..

24-Ruby IV
February 25, 2022

Fine! A solution without animation is not a solution.
But a solution without the code shown is not a solution too.


Let's start with an open function L(D1, D2, D3):=...

Than L(D):=...   where D is a vector.

And without crossing circles. Only touch!

Бревна.png

PS

I often get Werner's solutions just in time for my morning coffee.
We might think that Werner lives in Australia.

25-Diamond I
February 25, 2022

The function you are asking for is called "TouchingCircles" im my sheet - the rest is done by the already mentioned generic functions.

And no, I'm not living in Australia - no kangaroos here in Austria 😉
We call it "Senile Bettflucht" over here 😞

I'am waiting for other solutions.

My solution still fails in some special cases but I don't think I'll be interested in trying to fix that in the near (or even far) future 😉 It would require to add some if statements which usually ruins the beauty of the main solution 😞
And once the main problem is solved, my interest usually fades very quickly ...

Werner_E_0-1645768361888.pngWerner_E_1-1645768369826.png

Anyway - here is something for you to play with a bit if you like ...

 

BTW, a nice problem to solve would be a couple of circles in arbitrary position (not overlapping) and then wrap a rubber band around them and see how they move and come closer. But I guess that the physics involved here is beyond me and my resources.

 

EDIT (2022-02-26): The worksheet which was attached here calculated wrong values for the circumferences. Should be fixed in the new attached sheet.