0
$\begingroup$

I have a problem that I have to solve mathematically. I need the solution for drawing circles in a GUI:

enter image description here

I have a rectangle with width $s,$ the height is not important. Inside this rect I draw a circle at $M_1$ with $r_1 = \frac 13 s,$ so $M_1$ is $(\frac 23 s, \frac 13 s).$

I want to draw two additional circles having the same radius $r_2=r_3$ so that all three circles touch each other and the two additional circles touch the border of the rect. So I need to find out $M_2$ and $M_3$ and the radius of the two circles.

There should exist exactly one solution, I could just try to find the needed radius and centers depending on s but it should be possible to calculate that exactly.

  • 1
    Needing some mathematics to implement some software does not automatically make that mathematics appropriate to stack-overflow. (Just as questions about archery are off-topic here even if you're writing an RPG.)2012-04-19

1 Answers 1

1

Let's assume M1=(m1x, m1y), M2=(m2x, m2y), M3=(m3x, m3y).

Circles will touch each other if

|M1 M2| = r1 + r2 |M1 M3| = r1 + r2 

Or

r1 + r2 = sqrt( (m1x-m2x)^2 + (m1y-m2y)^2 ) r1 + r2 = sqrt( (m1x-m3x)^2 + (m1y-m3y)^2 ) 

We known some of this variables values:

m1x = 2*s/3; m1y = r1; m2x = r2; m3x = s - r2; 

So, we have two variables (m2y, m3y) and two equations. It must be easy to find this two variables values.

  • 0
    If you don't know r2, add the following equation: `|M2 M3| = 2*r2`.2012-04-19