Coordinates of circle center on a line through a point touching other circle

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












3












$begingroup$


I need to make a part of a program in java that calculates a circle center. It has to be a circle through a given point that touches another circle, and the variable circle center has the possibility to move over a given line.



Example of the problem



Here the coordinates of A, B and C and the radius of the circle around A are given. I need to know how to get the coordinates of P and P' when they touch the blue circle around A.










share|cite|improve this question











$endgroup$
















    3












    $begingroup$


    I need to make a part of a program in java that calculates a circle center. It has to be a circle through a given point that touches another circle, and the variable circle center has the possibility to move over a given line.



    Example of the problem



    Here the coordinates of A, B and C and the radius of the circle around A are given. I need to know how to get the coordinates of P and P' when they touch the blue circle around A.










    share|cite|improve this question











    $endgroup$














      3












      3








      3


      1



      $begingroup$


      I need to make a part of a program in java that calculates a circle center. It has to be a circle through a given point that touches another circle, and the variable circle center has the possibility to move over a given line.



      Example of the problem



      Here the coordinates of A, B and C and the radius of the circle around A are given. I need to know how to get the coordinates of P and P' when they touch the blue circle around A.










      share|cite|improve this question











      $endgroup$




      I need to make a part of a program in java that calculates a circle center. It has to be a circle through a given point that touches another circle, and the variable circle center has the possibility to move over a given line.



      Example of the problem



      Here the coordinates of A, B and C and the radius of the circle around A are given. I need to know how to get the coordinates of P and P' when they touch the blue circle around A.







      geometry trigonometry circle






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited Feb 7 at 19:51







      Floris

















      asked Feb 7 at 17:29









      FlorisFloris

      434




      434




















          3 Answers
          3






          active

          oldest

          votes


















          3












          $begingroup$

          A strong hint, but not a complete solution



          Let
          $$
          newcommandbu mathbf u
          newcommandbv mathbf v
          beginalign
          s &= |B - C|\
          bu &= fracB - Cs
          endalign
          $$

          The point $P$ is then $C + tbu$ for some $t in Bbb R$, and I'll follow the picture and consider the case $t < s$ so that we find $P$ instead of $P'$. We'll work out some constraints on $t$.



          The first constraint is that the distance from $P$ to $B$ (namely $s - t$), which is the radius of the circle around $P$, must, when added to $r$, the radius of the blue circle, give the distance from $P$ to $A$. Thus:



          $$
          (s - t) + r = | A - (C + t bu) |.
          $$

          Squaring both sides, and letting $bv = A - C$ and $e = |A - C | = |bv|$, we get
          beginalign
          (s - t)^2 + 2r(s-t) + r^2 &= | (A - C) - t bu) |^2\
          (s - t)^2 + 2r(s-t) + r^2 &= [ (A - C) - t bu) ] cdot [ (A - C) - t bu) ] \
          s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 bu cdot bu \
          s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 & text, because $bu$ is a unit vector\
          s^2 - 2st + t^2 + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv + t^2 & text, defn's of $bv$ and $e$\
          s^2 - 2st + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv & textalgebra\
          2t bu cdot bv - 2st -2rt &= e^2 -s^2 -2rs - r^2& textalgebra\
          t( -2 bu cdot bv + 2s + 2r) &= (s+r)^2 - e^2& textalgebra\
          t &= frac(s+r)^2 - e^2-2 bu cdot bv + 2s + 2r & textalgebra\
          endalign

          ...so that gives you the point $P$ (you just compute $P + tbu$). Now you have to do the same thing, but starting with $(t - s) + r = ...$ to find the point on the other side of $B$.



          Here is (not pretty) Matlab code to implement this, and a plot of the result of



          circles([0 3], [1, 1], [-3, 0], 1)


          being run in the Command window.



          function circles(a, b, c, r)
          clf;
          a = a(:); b = b(:); c = c(:);

          vv = b - c;
          s = sqrt(dot(vv, vv));
          u = (b-c)/s;

          v = a - c;
          e = sqrt(dot(v, v));
          numerator = (s+r)^2 - e^2;
          denominator = -2 * dot (u, v)+ 2*s + 2*r;
          t = numerator/denominator;
          P = c + t*u
          % draw line from C to B
          point(c);
          point(b);
          plot([c(1) b(1)], [c(2) b(2)], 'k');
          circle(a, r);
          circle(P, (s-t));
          axis equal
          figure(gcf);


          function point(pt)
          hold on;
          plot(pt(1), pt(2), 'ro');
          hold off;



          function circle(ctr, radius)
          t = linspace(0, 2*pi, 100);
          x = ctr(1) + radius * cos(t);
          y = ctr(2) + radius * sin(t);
          hold on;
          plot(x, y);
          point(ctr);
          hold off;


          enter image description here



          The blue circle is the one around point $A$; the red-orange circle is the computed on. The black line segment goes from $C$ to $B$.



          Of course, you still have to work through the case where $t > s$ to find the coordinates of the center $P'$ and the radius of the second circle.






          share|cite|improve this answer











          $endgroup$












          • $begingroup$
            Edited to fix a sign-error, and to add working code.
            $endgroup$
            – John Hughes
            Feb 8 at 18:01


















          5












          $begingroup$

          Geometric solution



          Locus of points equidistant to a circle and a point (exterior to the circle) is a hyperbola.

          These equidistant points are centers of circles through the given point, and touching the given circle.



          enter image description here



          In the present case, the given blue circle is denoted $gamma$ and is centered at $A.$ The hyperbola has foci $A$ and $B$ and passes through the middle point of the segment $BG,$ where $G$ is intersection of $AB$ and $gamma.$

          Since the centers of circles touching $gamma$ must lie at $BC,$ they are at the intersection of $BC$ and the hyperbola.



          The picture gives two possible configurations assuming that $BC$ has empty intersection with the circle:



          1. the line cuts each branch of the hyperbola at a single point

          2. the line cuts one branch of hyperbola at two points

          (analytic solution can be added à la commande)






          share|cite|improve this answer











          $endgroup$








          • 1




            $begingroup$
            Very nice! Much better than my analytical solution.
            $endgroup$
            – John Hughes
            Feb 7 at 20:52










          • $begingroup$
            Thanks for your answer. I, however, can't see how I could make this into a fomula that gives the coordinates of the two points. Could you please give the analytic solution?
            $endgroup$
            – Floris
            Feb 8 at 16:49











          • $begingroup$
            @Floris as I see, John Hughes implemented a code in Matlab. If his answer is more appropriate to your needs, feel free to unaccept the mine and accept that of John.
            $endgroup$
            – user376343
            Feb 8 at 20:27


















          1












          $begingroup$

          You haven’t mentioned this explicitly, but from the illustration is appears that you’re only interested in externally tangent circles. If the radius of the circle is $r$, then the points you are looking for satisfy $|PA|-|PB|=r$. Set $P = (1-t)B+tC$ and use the distance formula to get a somewhat messy-looking equation in $t$. You can find some useful suggestions for how to manipulate equations involving sums of radicals into a more manageable form in the answers to this question.






          share|cite|improve this answer









          $endgroup$












            Your Answer





            StackExchange.ifUsing("editor", function ()
            return StackExchange.using("mathjaxEditing", function ()
            StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
            StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
            );
            );
            , "mathjax-editing");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "69"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            noCode: true, onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3104058%2fcoordinates-of-circle-center-on-a-line-through-a-point-touching-other-circle%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3












            $begingroup$

            A strong hint, but not a complete solution



            Let
            $$
            newcommandbu mathbf u
            newcommandbv mathbf v
            beginalign
            s &= |B - C|\
            bu &= fracB - Cs
            endalign
            $$

            The point $P$ is then $C + tbu$ for some $t in Bbb R$, and I'll follow the picture and consider the case $t < s$ so that we find $P$ instead of $P'$. We'll work out some constraints on $t$.



            The first constraint is that the distance from $P$ to $B$ (namely $s - t$), which is the radius of the circle around $P$, must, when added to $r$, the radius of the blue circle, give the distance from $P$ to $A$. Thus:



            $$
            (s - t) + r = | A - (C + t bu) |.
            $$

            Squaring both sides, and letting $bv = A - C$ and $e = |A - C | = |bv|$, we get
            beginalign
            (s - t)^2 + 2r(s-t) + r^2 &= | (A - C) - t bu) |^2\
            (s - t)^2 + 2r(s-t) + r^2 &= [ (A - C) - t bu) ] cdot [ (A - C) - t bu) ] \
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 bu cdot bu \
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 & text, because $bu$ is a unit vector\
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv + t^2 & text, defn's of $bv$ and $e$\
            s^2 - 2st + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv & textalgebra\
            2t bu cdot bv - 2st -2rt &= e^2 -s^2 -2rs - r^2& textalgebra\
            t( -2 bu cdot bv + 2s + 2r) &= (s+r)^2 - e^2& textalgebra\
            t &= frac(s+r)^2 - e^2-2 bu cdot bv + 2s + 2r & textalgebra\
            endalign

            ...so that gives you the point $P$ (you just compute $P + tbu$). Now you have to do the same thing, but starting with $(t - s) + r = ...$ to find the point on the other side of $B$.



            Here is (not pretty) Matlab code to implement this, and a plot of the result of



            circles([0 3], [1, 1], [-3, 0], 1)


            being run in the Command window.



            function circles(a, b, c, r)
            clf;
            a = a(:); b = b(:); c = c(:);

            vv = b - c;
            s = sqrt(dot(vv, vv));
            u = (b-c)/s;

            v = a - c;
            e = sqrt(dot(v, v));
            numerator = (s+r)^2 - e^2;
            denominator = -2 * dot (u, v)+ 2*s + 2*r;
            t = numerator/denominator;
            P = c + t*u
            % draw line from C to B
            point(c);
            point(b);
            plot([c(1) b(1)], [c(2) b(2)], 'k');
            circle(a, r);
            circle(P, (s-t));
            axis equal
            figure(gcf);


            function point(pt)
            hold on;
            plot(pt(1), pt(2), 'ro');
            hold off;



            function circle(ctr, radius)
            t = linspace(0, 2*pi, 100);
            x = ctr(1) + radius * cos(t);
            y = ctr(2) + radius * sin(t);
            hold on;
            plot(x, y);
            point(ctr);
            hold off;


            enter image description here



            The blue circle is the one around point $A$; the red-orange circle is the computed on. The black line segment goes from $C$ to $B$.



            Of course, you still have to work through the case where $t > s$ to find the coordinates of the center $P'$ and the radius of the second circle.






            share|cite|improve this answer











            $endgroup$












            • $begingroup$
              Edited to fix a sign-error, and to add working code.
              $endgroup$
              – John Hughes
              Feb 8 at 18:01















            3












            $begingroup$

            A strong hint, but not a complete solution



            Let
            $$
            newcommandbu mathbf u
            newcommandbv mathbf v
            beginalign
            s &= |B - C|\
            bu &= fracB - Cs
            endalign
            $$

            The point $P$ is then $C + tbu$ for some $t in Bbb R$, and I'll follow the picture and consider the case $t < s$ so that we find $P$ instead of $P'$. We'll work out some constraints on $t$.



            The first constraint is that the distance from $P$ to $B$ (namely $s - t$), which is the radius of the circle around $P$, must, when added to $r$, the radius of the blue circle, give the distance from $P$ to $A$. Thus:



            $$
            (s - t) + r = | A - (C + t bu) |.
            $$

            Squaring both sides, and letting $bv = A - C$ and $e = |A - C | = |bv|$, we get
            beginalign
            (s - t)^2 + 2r(s-t) + r^2 &= | (A - C) - t bu) |^2\
            (s - t)^2 + 2r(s-t) + r^2 &= [ (A - C) - t bu) ] cdot [ (A - C) - t bu) ] \
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 bu cdot bu \
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 & text, because $bu$ is a unit vector\
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv + t^2 & text, defn's of $bv$ and $e$\
            s^2 - 2st + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv & textalgebra\
            2t bu cdot bv - 2st -2rt &= e^2 -s^2 -2rs - r^2& textalgebra\
            t( -2 bu cdot bv + 2s + 2r) &= (s+r)^2 - e^2& textalgebra\
            t &= frac(s+r)^2 - e^2-2 bu cdot bv + 2s + 2r & textalgebra\
            endalign

            ...so that gives you the point $P$ (you just compute $P + tbu$). Now you have to do the same thing, but starting with $(t - s) + r = ...$ to find the point on the other side of $B$.



            Here is (not pretty) Matlab code to implement this, and a plot of the result of



            circles([0 3], [1, 1], [-3, 0], 1)


            being run in the Command window.



            function circles(a, b, c, r)
            clf;
            a = a(:); b = b(:); c = c(:);

            vv = b - c;
            s = sqrt(dot(vv, vv));
            u = (b-c)/s;

            v = a - c;
            e = sqrt(dot(v, v));
            numerator = (s+r)^2 - e^2;
            denominator = -2 * dot (u, v)+ 2*s + 2*r;
            t = numerator/denominator;
            P = c + t*u
            % draw line from C to B
            point(c);
            point(b);
            plot([c(1) b(1)], [c(2) b(2)], 'k');
            circle(a, r);
            circle(P, (s-t));
            axis equal
            figure(gcf);


            function point(pt)
            hold on;
            plot(pt(1), pt(2), 'ro');
            hold off;



            function circle(ctr, radius)
            t = linspace(0, 2*pi, 100);
            x = ctr(1) + radius * cos(t);
            y = ctr(2) + radius * sin(t);
            hold on;
            plot(x, y);
            point(ctr);
            hold off;


            enter image description here



            The blue circle is the one around point $A$; the red-orange circle is the computed on. The black line segment goes from $C$ to $B$.



            Of course, you still have to work through the case where $t > s$ to find the coordinates of the center $P'$ and the radius of the second circle.






            share|cite|improve this answer











            $endgroup$












            • $begingroup$
              Edited to fix a sign-error, and to add working code.
              $endgroup$
              – John Hughes
              Feb 8 at 18:01













            3












            3








            3





            $begingroup$

            A strong hint, but not a complete solution



            Let
            $$
            newcommandbu mathbf u
            newcommandbv mathbf v
            beginalign
            s &= |B - C|\
            bu &= fracB - Cs
            endalign
            $$

            The point $P$ is then $C + tbu$ for some $t in Bbb R$, and I'll follow the picture and consider the case $t < s$ so that we find $P$ instead of $P'$. We'll work out some constraints on $t$.



            The first constraint is that the distance from $P$ to $B$ (namely $s - t$), which is the radius of the circle around $P$, must, when added to $r$, the radius of the blue circle, give the distance from $P$ to $A$. Thus:



            $$
            (s - t) + r = | A - (C + t bu) |.
            $$

            Squaring both sides, and letting $bv = A - C$ and $e = |A - C | = |bv|$, we get
            beginalign
            (s - t)^2 + 2r(s-t) + r^2 &= | (A - C) - t bu) |^2\
            (s - t)^2 + 2r(s-t) + r^2 &= [ (A - C) - t bu) ] cdot [ (A - C) - t bu) ] \
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 bu cdot bu \
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 & text, because $bu$ is a unit vector\
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv + t^2 & text, defn's of $bv$ and $e$\
            s^2 - 2st + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv & textalgebra\
            2t bu cdot bv - 2st -2rt &= e^2 -s^2 -2rs - r^2& textalgebra\
            t( -2 bu cdot bv + 2s + 2r) &= (s+r)^2 - e^2& textalgebra\
            t &= frac(s+r)^2 - e^2-2 bu cdot bv + 2s + 2r & textalgebra\
            endalign

            ...so that gives you the point $P$ (you just compute $P + tbu$). Now you have to do the same thing, but starting with $(t - s) + r = ...$ to find the point on the other side of $B$.



            Here is (not pretty) Matlab code to implement this, and a plot of the result of



            circles([0 3], [1, 1], [-3, 0], 1)


            being run in the Command window.



            function circles(a, b, c, r)
            clf;
            a = a(:); b = b(:); c = c(:);

            vv = b - c;
            s = sqrt(dot(vv, vv));
            u = (b-c)/s;

            v = a - c;
            e = sqrt(dot(v, v));
            numerator = (s+r)^2 - e^2;
            denominator = -2 * dot (u, v)+ 2*s + 2*r;
            t = numerator/denominator;
            P = c + t*u
            % draw line from C to B
            point(c);
            point(b);
            plot([c(1) b(1)], [c(2) b(2)], 'k');
            circle(a, r);
            circle(P, (s-t));
            axis equal
            figure(gcf);


            function point(pt)
            hold on;
            plot(pt(1), pt(2), 'ro');
            hold off;



            function circle(ctr, radius)
            t = linspace(0, 2*pi, 100);
            x = ctr(1) + radius * cos(t);
            y = ctr(2) + radius * sin(t);
            hold on;
            plot(x, y);
            point(ctr);
            hold off;


            enter image description here



            The blue circle is the one around point $A$; the red-orange circle is the computed on. The black line segment goes from $C$ to $B$.



            Of course, you still have to work through the case where $t > s$ to find the coordinates of the center $P'$ and the radius of the second circle.






            share|cite|improve this answer











            $endgroup$



            A strong hint, but not a complete solution



            Let
            $$
            newcommandbu mathbf u
            newcommandbv mathbf v
            beginalign
            s &= |B - C|\
            bu &= fracB - Cs
            endalign
            $$

            The point $P$ is then $C + tbu$ for some $t in Bbb R$, and I'll follow the picture and consider the case $t < s$ so that we find $P$ instead of $P'$. We'll work out some constraints on $t$.



            The first constraint is that the distance from $P$ to $B$ (namely $s - t$), which is the radius of the circle around $P$, must, when added to $r$, the radius of the blue circle, give the distance from $P$ to $A$. Thus:



            $$
            (s - t) + r = | A - (C + t bu) |.
            $$

            Squaring both sides, and letting $bv = A - C$ and $e = |A - C | = |bv|$, we get
            beginalign
            (s - t)^2 + 2r(s-t) + r^2 &= | (A - C) - t bu) |^2\
            (s - t)^2 + 2r(s-t) + r^2 &= [ (A - C) - t bu) ] cdot [ (A - C) - t bu) ] \
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 bu cdot bu \
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= (A - C)cdot(A-C) - 2t bu cdot (A - C) + t^2 & text, because $bu$ is a unit vector\
            s^2 - 2st + t^2 + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv + t^2 & text, defn's of $bv$ and $e$\
            s^2 - 2st + 2rs-2rt + r^2 &= e^2 - 2t bu cdot bv & textalgebra\
            2t bu cdot bv - 2st -2rt &= e^2 -s^2 -2rs - r^2& textalgebra\
            t( -2 bu cdot bv + 2s + 2r) &= (s+r)^2 - e^2& textalgebra\
            t &= frac(s+r)^2 - e^2-2 bu cdot bv + 2s + 2r & textalgebra\
            endalign

            ...so that gives you the point $P$ (you just compute $P + tbu$). Now you have to do the same thing, but starting with $(t - s) + r = ...$ to find the point on the other side of $B$.



            Here is (not pretty) Matlab code to implement this, and a plot of the result of



            circles([0 3], [1, 1], [-3, 0], 1)


            being run in the Command window.



            function circles(a, b, c, r)
            clf;
            a = a(:); b = b(:); c = c(:);

            vv = b - c;
            s = sqrt(dot(vv, vv));
            u = (b-c)/s;

            v = a - c;
            e = sqrt(dot(v, v));
            numerator = (s+r)^2 - e^2;
            denominator = -2 * dot (u, v)+ 2*s + 2*r;
            t = numerator/denominator;
            P = c + t*u
            % draw line from C to B
            point(c);
            point(b);
            plot([c(1) b(1)], [c(2) b(2)], 'k');
            circle(a, r);
            circle(P, (s-t));
            axis equal
            figure(gcf);


            function point(pt)
            hold on;
            plot(pt(1), pt(2), 'ro');
            hold off;



            function circle(ctr, radius)
            t = linspace(0, 2*pi, 100);
            x = ctr(1) + radius * cos(t);
            y = ctr(2) + radius * sin(t);
            hold on;
            plot(x, y);
            point(ctr);
            hold off;


            enter image description here



            The blue circle is the one around point $A$; the red-orange circle is the computed on. The black line segment goes from $C$ to $B$.



            Of course, you still have to work through the case where $t > s$ to find the coordinates of the center $P'$ and the radius of the second circle.







            share|cite|improve this answer














            share|cite|improve this answer



            share|cite|improve this answer








            edited Feb 8 at 18:01

























            answered Feb 7 at 20:14









            John HughesJohn Hughes

            64.4k24191




            64.4k24191











            • $begingroup$
              Edited to fix a sign-error, and to add working code.
              $endgroup$
              – John Hughes
              Feb 8 at 18:01
















            • $begingroup$
              Edited to fix a sign-error, and to add working code.
              $endgroup$
              – John Hughes
              Feb 8 at 18:01















            $begingroup$
            Edited to fix a sign-error, and to add working code.
            $endgroup$
            – John Hughes
            Feb 8 at 18:01




            $begingroup$
            Edited to fix a sign-error, and to add working code.
            $endgroup$
            – John Hughes
            Feb 8 at 18:01











            5












            $begingroup$

            Geometric solution



            Locus of points equidistant to a circle and a point (exterior to the circle) is a hyperbola.

            These equidistant points are centers of circles through the given point, and touching the given circle.



            enter image description here



            In the present case, the given blue circle is denoted $gamma$ and is centered at $A.$ The hyperbola has foci $A$ and $B$ and passes through the middle point of the segment $BG,$ where $G$ is intersection of $AB$ and $gamma.$

            Since the centers of circles touching $gamma$ must lie at $BC,$ they are at the intersection of $BC$ and the hyperbola.



            The picture gives two possible configurations assuming that $BC$ has empty intersection with the circle:



            1. the line cuts each branch of the hyperbola at a single point

            2. the line cuts one branch of hyperbola at two points

            (analytic solution can be added à la commande)






            share|cite|improve this answer











            $endgroup$








            • 1




              $begingroup$
              Very nice! Much better than my analytical solution.
              $endgroup$
              – John Hughes
              Feb 7 at 20:52










            • $begingroup$
              Thanks for your answer. I, however, can't see how I could make this into a fomula that gives the coordinates of the two points. Could you please give the analytic solution?
              $endgroup$
              – Floris
              Feb 8 at 16:49











            • $begingroup$
              @Floris as I see, John Hughes implemented a code in Matlab. If his answer is more appropriate to your needs, feel free to unaccept the mine and accept that of John.
              $endgroup$
              – user376343
              Feb 8 at 20:27















            5












            $begingroup$

            Geometric solution



            Locus of points equidistant to a circle and a point (exterior to the circle) is a hyperbola.

            These equidistant points are centers of circles through the given point, and touching the given circle.



            enter image description here



            In the present case, the given blue circle is denoted $gamma$ and is centered at $A.$ The hyperbola has foci $A$ and $B$ and passes through the middle point of the segment $BG,$ where $G$ is intersection of $AB$ and $gamma.$

            Since the centers of circles touching $gamma$ must lie at $BC,$ they are at the intersection of $BC$ and the hyperbola.



            The picture gives two possible configurations assuming that $BC$ has empty intersection with the circle:



            1. the line cuts each branch of the hyperbola at a single point

            2. the line cuts one branch of hyperbola at two points

            (analytic solution can be added à la commande)






            share|cite|improve this answer











            $endgroup$








            • 1




              $begingroup$
              Very nice! Much better than my analytical solution.
              $endgroup$
              – John Hughes
              Feb 7 at 20:52










            • $begingroup$
              Thanks for your answer. I, however, can't see how I could make this into a fomula that gives the coordinates of the two points. Could you please give the analytic solution?
              $endgroup$
              – Floris
              Feb 8 at 16:49











            • $begingroup$
              @Floris as I see, John Hughes implemented a code in Matlab. If his answer is more appropriate to your needs, feel free to unaccept the mine and accept that of John.
              $endgroup$
              – user376343
              Feb 8 at 20:27













            5












            5








            5





            $begingroup$

            Geometric solution



            Locus of points equidistant to a circle and a point (exterior to the circle) is a hyperbola.

            These equidistant points are centers of circles through the given point, and touching the given circle.



            enter image description here



            In the present case, the given blue circle is denoted $gamma$ and is centered at $A.$ The hyperbola has foci $A$ and $B$ and passes through the middle point of the segment $BG,$ where $G$ is intersection of $AB$ and $gamma.$

            Since the centers of circles touching $gamma$ must lie at $BC,$ they are at the intersection of $BC$ and the hyperbola.



            The picture gives two possible configurations assuming that $BC$ has empty intersection with the circle:



            1. the line cuts each branch of the hyperbola at a single point

            2. the line cuts one branch of hyperbola at two points

            (analytic solution can be added à la commande)






            share|cite|improve this answer











            $endgroup$



            Geometric solution



            Locus of points equidistant to a circle and a point (exterior to the circle) is a hyperbola.

            These equidistant points are centers of circles through the given point, and touching the given circle.



            enter image description here



            In the present case, the given blue circle is denoted $gamma$ and is centered at $A.$ The hyperbola has foci $A$ and $B$ and passes through the middle point of the segment $BG,$ where $G$ is intersection of $AB$ and $gamma.$

            Since the centers of circles touching $gamma$ must lie at $BC,$ they are at the intersection of $BC$ and the hyperbola.



            The picture gives two possible configurations assuming that $BC$ has empty intersection with the circle:



            1. the line cuts each branch of the hyperbola at a single point

            2. the line cuts one branch of hyperbola at two points

            (analytic solution can be added à la commande)







            share|cite|improve this answer














            share|cite|improve this answer



            share|cite|improve this answer








            edited Feb 7 at 21:39

























            answered Feb 7 at 18:17









            user376343user376343

            3,9033829




            3,9033829







            • 1




              $begingroup$
              Very nice! Much better than my analytical solution.
              $endgroup$
              – John Hughes
              Feb 7 at 20:52










            • $begingroup$
              Thanks for your answer. I, however, can't see how I could make this into a fomula that gives the coordinates of the two points. Could you please give the analytic solution?
              $endgroup$
              – Floris
              Feb 8 at 16:49











            • $begingroup$
              @Floris as I see, John Hughes implemented a code in Matlab. If his answer is more appropriate to your needs, feel free to unaccept the mine and accept that of John.
              $endgroup$
              – user376343
              Feb 8 at 20:27












            • 1




              $begingroup$
              Very nice! Much better than my analytical solution.
              $endgroup$
              – John Hughes
              Feb 7 at 20:52










            • $begingroup$
              Thanks for your answer. I, however, can't see how I could make this into a fomula that gives the coordinates of the two points. Could you please give the analytic solution?
              $endgroup$
              – Floris
              Feb 8 at 16:49











            • $begingroup$
              @Floris as I see, John Hughes implemented a code in Matlab. If his answer is more appropriate to your needs, feel free to unaccept the mine and accept that of John.
              $endgroup$
              – user376343
              Feb 8 at 20:27







            1




            1




            $begingroup$
            Very nice! Much better than my analytical solution.
            $endgroup$
            – John Hughes
            Feb 7 at 20:52




            $begingroup$
            Very nice! Much better than my analytical solution.
            $endgroup$
            – John Hughes
            Feb 7 at 20:52












            $begingroup$
            Thanks for your answer. I, however, can't see how I could make this into a fomula that gives the coordinates of the two points. Could you please give the analytic solution?
            $endgroup$
            – Floris
            Feb 8 at 16:49





            $begingroup$
            Thanks for your answer. I, however, can't see how I could make this into a fomula that gives the coordinates of the two points. Could you please give the analytic solution?
            $endgroup$
            – Floris
            Feb 8 at 16:49













            $begingroup$
            @Floris as I see, John Hughes implemented a code in Matlab. If his answer is more appropriate to your needs, feel free to unaccept the mine and accept that of John.
            $endgroup$
            – user376343
            Feb 8 at 20:27




            $begingroup$
            @Floris as I see, John Hughes implemented a code in Matlab. If his answer is more appropriate to your needs, feel free to unaccept the mine and accept that of John.
            $endgroup$
            – user376343
            Feb 8 at 20:27











            1












            $begingroup$

            You haven’t mentioned this explicitly, but from the illustration is appears that you’re only interested in externally tangent circles. If the radius of the circle is $r$, then the points you are looking for satisfy $|PA|-|PB|=r$. Set $P = (1-t)B+tC$ and use the distance formula to get a somewhat messy-looking equation in $t$. You can find some useful suggestions for how to manipulate equations involving sums of radicals into a more manageable form in the answers to this question.






            share|cite|improve this answer









            $endgroup$

















              1












              $begingroup$

              You haven’t mentioned this explicitly, but from the illustration is appears that you’re only interested in externally tangent circles. If the radius of the circle is $r$, then the points you are looking for satisfy $|PA|-|PB|=r$. Set $P = (1-t)B+tC$ and use the distance formula to get a somewhat messy-looking equation in $t$. You can find some useful suggestions for how to manipulate equations involving sums of radicals into a more manageable form in the answers to this question.






              share|cite|improve this answer









              $endgroup$















                1












                1








                1





                $begingroup$

                You haven’t mentioned this explicitly, but from the illustration is appears that you’re only interested in externally tangent circles. If the radius of the circle is $r$, then the points you are looking for satisfy $|PA|-|PB|=r$. Set $P = (1-t)B+tC$ and use the distance formula to get a somewhat messy-looking equation in $t$. You can find some useful suggestions for how to manipulate equations involving sums of radicals into a more manageable form in the answers to this question.






                share|cite|improve this answer









                $endgroup$



                You haven’t mentioned this explicitly, but from the illustration is appears that you’re only interested in externally tangent circles. If the radius of the circle is $r$, then the points you are looking for satisfy $|PA|-|PB|=r$. Set $P = (1-t)B+tC$ and use the distance formula to get a somewhat messy-looking equation in $t$. You can find some useful suggestions for how to manipulate equations involving sums of radicals into a more manageable form in the answers to this question.







                share|cite|improve this answer












                share|cite|improve this answer



                share|cite|improve this answer










                answered Feb 7 at 20:13









                amdamd

                30.7k21050




                30.7k21050



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Mathematics Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    Use MathJax to format equations. MathJax reference.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3104058%2fcoordinates-of-circle-center-on-a-line-through-a-point-touching-other-circle%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown






                    Popular posts from this blog

                    How to check contact read email or not when send email to Individual?

                    Displaying single band from multi-band raster using QGIS

                    How many registers does an x86_64 CPU actually have?