Does this math problem have a solution or not?

263 Views Asked by At

Image that visually shows the problem

While programming I have faced a math problem that needs to be solved before I can move on. Maybe you need more input data to be able to solve it, if that's the case, just let me know and I will consider this like it doesn't have a solution and move on and see if there are other ways of programming it.

Here is the problem:

  1. You have a small circle,

    • Predecided radious. Can be changed but we always know its value
    • Center point, "A" is known, this will never be changed
  2. You have a predecided point, "C". Can be changed but we always know its value

Now, the task is to come up with a bigger circle where its border have to touch point "C" and another unknown point "D". Point "D", exists somewhere on the border of the small circle.

In other words, the small circle should be inside the bigger one and touch each other in only one point "D" internally. At the same time the border of bigger circle shoud also touch point "C".

This is our starting point:

  • Radius of small circle is known
  • Point "A" is known
  • Point "B" is unknown
  • Point "C" is known
  • Point "D" is unknown

We need to find B and D, if we do that, we get a triangle like the picture shows. Then we should be able to get the alpha angle CBD. When we have the angle we can easly do the calculation to get the arc distance between point C and D for the bigger circle, thats our final mission.

As I mentioned before, since point "C" and radius of small circle can vary, we need to find a general solution so the calculation always works

6

There are 6 best solutions below

0
On BEST ANSWER

For convenience, I'll use $r$ for the (known) radius of the small circle and $R$ for the radius of the larger circle.

If the radius of the larger circle is not known in advance (that is, if we take the question as originally posted, where only $r$ and the positions of $A$ and $C$ are known at the start), then there are infinitely many solutions.

If the known coordinates of $A$ are $(0,0)$ as in the graph in the question, the simplest solution (in my opinion) is to find the distance from $A$ to $C$ -- let's call this distance $d$ -- and then multiply each of the coordinates of $C$ by $-\frac{r}{d}.$ This gives you the coordinates of $D.$ The points $A,$ $B,$ $C,$ and $D$ will all lie on the same single straight line with $B$ exactly halfway between $C$ and $D.$ It follows that $R = \frac12(d + r).$

If $R$ is given and is equal to $\frac12(d + r),$ then the solution in the previous paragraph is the only solution.

If $R$ is given but $R < \frac12(d + r),$ there is no solution.

But if $R$ is given and $R > \frac12(d + r),$ there are exactly two solutions. Rather than look at the triangle $\triangle BCD,$ however, I would look at $\triangle ABC.$ This has sides $AC = d,$ $BC = R$, and $AB = R - r,$ all of which are known or easily computed from the positions of known points. So by the law of cosines, $$ R^2 = d^2 + (R - r)^2 - 2 d(R-r) \cos\angle BAC.$$

Solve for $\cos\angle BAC$ and deduce $\angle BAC.$ Since you know the direction from $A$ to $C,$ by adding or subtracting $\angle BAC$ from that direction and taking the distance $R - r$ from $A$ to $B$ you can determine the two possible locations of $B.$

2
On

There are infinitely many solutions for the bigger. This can be seen as such -

  1. Choose any point on the smaller circle as $D$
  2. For simplicity, rotate coordinate axes such that $D$ lies on the $x$ axis. Thus, the point $B$ too must lie on the $x$ axis.
  3. Then, if the coordinates of $C$ are $(a,b)$ and radius of smaller circle are $r$, the position of $B$, $(x,0)$ must satisfy the following equation - $$(x-r)^2 = (x-a)^2 + b^2$$ whose solution is $$x = \frac{a^2 + b^2 - r^2}{2(a-r)}$$
  4. Undo the rotation in $2$ to get back the original case.
0
On

The system is once indeterminate.

Let the point $D$ be located at $(x_D,y_D)=(r\cos\theta,r\sin\theta)$ where $\theta$ is arbitrary. $B$ can be found at the intersection of the line $AD$ (which is normal to both circles), and the bissectrix of $CD$. This determines the large circle.

But to get the distance $CD$, you can just write $$CD=\sqrt{(r\cos\theta-x_C)^2+(r\sin\theta-y_C)^2}=\sqrt{r^2-2r(x_C\cos\theta+y_C\sin\theta)+x_C^2+y_C^2}.$$

1
On

This "answer" is more of an overly long comment.

Ishan Deo is absolutely right. There are an infinite number of possible circles which satisfy your conditions.

But if you want a unique one, you can impose an extra condition of the angle $CBD$. If you make this $\pi$ or $180^\circ$, then you are making a line segment starting at $C$, passing through $A$ and intersecting the far side of the circle at $D$. The center of your new larger circle, $B$, will then be the midpoint of this line segment. This is probably the easiest option, if you are looking to create a single circle. But you can make this angle anything you like, in which case you will get something more like the picture you linked to.

If you are interested, let me know and I can work out some details, but I thought you might find this useful

0
On

There are infinitely many possible points $D$ on the small circle that allow you to construct the second circle such that $C$ lies on that second circle and it touches the given circle in point $D$. Assuming that point $C$ is always outside the given ("small") circle, we can construct two tangents through $C$ that touch the given circle at points $T_1$ and $T_2$. If we choose $D$ to be one of these, we won't be able to construct the second circle, because it would be infinitely large. Choosing $D$ on the given circle between $T_1$ and $T_2$ (on the side near $C$), we will be able to construct a second circle that does not contain the given one, and choosing $D$ on the opposite side will let us construct a "larger circle" that contains the smaller one.

After choosing point $D$, we find the center $B$ of the second circle as follows:

Since the second circle must just touch the given one in point $D$, its center $B$ must lie on the line $AD$ through $A$ and $D$. Also, since $\vert\overline{BC}\vert=\vert\overline{BD}\vert$, $B$ must lie on the bisector of the line segment $\overline{CD}$. As long as these two lines aren't parallel (as for $D=T_1$ or $D=T_2$), this uniquely defines the center $B$ of the desired second circle.

Since $\triangle BCD$ is an isoceles triangle, $\beta=\gamma$ and so $\alpha=180^\circ-2\gamma$ where $\gamma=\angle CDA$. For calculation purposes, it might be helpful to find the second point $P$ on the line $CD$ intersecting the given circle. Denoting the radius of the given circle with $r$ and the radius of the second circle with $R$, we can use the following calculation formulas: $$ \cos\gamma=\frac{\vert\overline{CP}\vert}{2r}=\frac{\vert\overline{CD}\vert}{2R} $$ and $$ \cos\alpha=-\cos2\gamma=-(\cos^2\gamma-\sin^2\gamma)=1-2\cos^2\gamma $$

0
On

Because the difference of lengths $|BC| - |BA|$ is equal to the radius of the small circle, which is a constant, the locus of the point $B$ is one branch of a hyperbola with foci $A$ and $C.$ As $B$ moves upward to infinity, the lower circular arc $CD$ with centre $B$ approaches the tangent $CD_0,$ and similarly as $B$ moves downward to infinity, the upper arc $CD$ approaches the tangent $CD_1.$ The asymptotes of the hyperbola are therefore perpendicular to these two tangents, as shown.

The locus of B.

The other branch of the hyperbola is the locus of centres of circles passing through $C$ and touching the small circle externally. As explained in Hyperbola - Wikipedia, the small circle is therefore the circular directrix of the hyperbola in relation to the focus $A.$