Coordinates of circle center on a line through a point touching other circle
Clash Royale CLAN TAG#URR8PPP
$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.
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
$endgroup$
add a comment |
$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.
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
$endgroup$
add a comment |
$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.
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
$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.
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
geometry trigonometry circle
edited Feb 7 at 19:51
Floris
asked Feb 7 at 17:29
FlorisFloris
434
434
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
$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;
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.
$endgroup$
$begingroup$
Edited to fix a sign-error, and to add working code.
$endgroup$
– John Hughes
Feb 8 at 18:01
add a comment |
$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.
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:
- the line cuts each branch of the hyperbola at a single point
- the line cuts one branch of hyperbola at two points
(analytic solution can be added à la commande)
$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
add a comment |
$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.
$endgroup$
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
$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;
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.
$endgroup$
$begingroup$
Edited to fix a sign-error, and to add working code.
$endgroup$
– John Hughes
Feb 8 at 18:01
add a comment |
$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;
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.
$endgroup$
$begingroup$
Edited to fix a sign-error, and to add working code.
$endgroup$
– John Hughes
Feb 8 at 18:01
add a comment |
$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;
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.
$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;
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.
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
add a comment |
$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
add a comment |
$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.
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:
- the line cuts each branch of the hyperbola at a single point
- the line cuts one branch of hyperbola at two points
(analytic solution can be added à la commande)
$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
add a comment |
$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.
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:
- the line cuts each branch of the hyperbola at a single point
- the line cuts one branch of hyperbola at two points
(analytic solution can be added à la commande)
$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
add a comment |
$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.
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:
- the line cuts each branch of the hyperbola at a single point
- the line cuts one branch of hyperbola at two points
(analytic solution can be added à la commande)
$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.
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:
- the line cuts each branch of the hyperbola at a single point
- the line cuts one branch of hyperbola at two points
(analytic solution can be added à la commande)
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
add a comment |
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
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$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.
answered Feb 7 at 20:13
amdamd
30.7k21050
30.7k21050
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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