How to draw a circle (sphere) passing through four points?
I am trying to draw a circle (sphere) passing through four points B, C, E, F
like this picture
I tried with tikz-3dplot
and my code
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
end{tikzpicture}
end{document}
and got
How can I draw a circle (sphere) passing through four points B, C, E, F
?
3d tikz-3dplot
|
show 7 more comments
I am trying to draw a circle (sphere) passing through four points B, C, E, F
like this picture
I tried with tikz-3dplot
and my code
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
end{tikzpicture}
end{document}
and got
How can I draw a circle (sphere) passing through four points B, C, E, F
?
3d tikz-3dplot
2
A circle is already uniquely fixed by 3 (noncollinear) points. There exist answers that show you how to find such a circle. E.g. tex.stackexchange.com/questions/461161/… (Sorry for advertising;-)
– marmot
Jan 15 at 3:38
@marmot Is it true in 3D?
– minhthien_2016
Jan 15 at 3:52
1
I believe that an orthographic projection of a sphere is a circle. The subtle point is whether the projected circle runs through the points you indicate, something that I cannot decide without more information on how the sphere is determined.
– marmot
Jan 15 at 3:56
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
Jan 15 at 3:59
1
That circle doesn't look very circular.
– RemcoGerlich
Jan 15 at 9:07
|
show 7 more comments
I am trying to draw a circle (sphere) passing through four points B, C, E, F
like this picture
I tried with tikz-3dplot
and my code
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
end{tikzpicture}
end{document}
and got
How can I draw a circle (sphere) passing through four points B, C, E, F
?
3d tikz-3dplot
I am trying to draw a circle (sphere) passing through four points B, C, E, F
like this picture
I tried with tikz-3dplot
and my code
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
end{tikzpicture}
end{document}
and got
How can I draw a circle (sphere) passing through four points B, C, E, F
?
3d tikz-3dplot
3d tikz-3dplot
edited Jan 15 at 8:02
minhthien_2016
asked Jan 15 at 3:35
minhthien_2016minhthien_2016
1,226916
1,226916
2
A circle is already uniquely fixed by 3 (noncollinear) points. There exist answers that show you how to find such a circle. E.g. tex.stackexchange.com/questions/461161/… (Sorry for advertising;-)
– marmot
Jan 15 at 3:38
@marmot Is it true in 3D?
– minhthien_2016
Jan 15 at 3:52
1
I believe that an orthographic projection of a sphere is a circle. The subtle point is whether the projected circle runs through the points you indicate, something that I cannot decide without more information on how the sphere is determined.
– marmot
Jan 15 at 3:56
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
Jan 15 at 3:59
1
That circle doesn't look very circular.
– RemcoGerlich
Jan 15 at 9:07
|
show 7 more comments
2
A circle is already uniquely fixed by 3 (noncollinear) points. There exist answers that show you how to find such a circle. E.g. tex.stackexchange.com/questions/461161/… (Sorry for advertising;-)
– marmot
Jan 15 at 3:38
@marmot Is it true in 3D?
– minhthien_2016
Jan 15 at 3:52
1
I believe that an orthographic projection of a sphere is a circle. The subtle point is whether the projected circle runs through the points you indicate, something that I cannot decide without more information on how the sphere is determined.
– marmot
Jan 15 at 3:56
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
Jan 15 at 3:59
1
That circle doesn't look very circular.
– RemcoGerlich
Jan 15 at 9:07
2
2
A circle is already uniquely fixed by 3 (noncollinear) points. There exist answers that show you how to find such a circle. E.g. tex.stackexchange.com/questions/461161/… (Sorry for advertising;-)
– marmot
Jan 15 at 3:38
A circle is already uniquely fixed by 3 (noncollinear) points. There exist answers that show you how to find such a circle. E.g. tex.stackexchange.com/questions/461161/… (Sorry for advertising;-)
– marmot
Jan 15 at 3:38
@marmot Is it true in 3D?
– minhthien_2016
Jan 15 at 3:52
@marmot Is it true in 3D?
– minhthien_2016
Jan 15 at 3:52
1
1
I believe that an orthographic projection of a sphere is a circle. The subtle point is whether the projected circle runs through the points you indicate, something that I cannot decide without more information on how the sphere is determined.
– marmot
Jan 15 at 3:56
I believe that an orthographic projection of a sphere is a circle. The subtle point is whether the projected circle runs through the points you indicate, something that I cannot decide without more information on how the sphere is determined.
– marmot
Jan 15 at 3:56
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
Jan 15 at 3:59
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
Jan 15 at 3:59
1
1
That circle doesn't look very circular.
– RemcoGerlich
Jan 15 at 9:07
That circle doesn't look very circular.
– RemcoGerlich
Jan 15 at 9:07
|
show 7 more comments
1 Answer
1
active
oldest
votes
A circle is determined by 3 points. A sphere, of course, needs at least 4 points on its boundary to be determined. However, the projection of the sphere, i.e. the circle, won't necessarily run through the projections of these points. (Actually, if the sphere is uniquely determined by these points, the boundary circle, i.e. the projection of the sphere on the screen coordinates, will never run through all projections of the points because for this to happen, the points need to lie in a plane, but then they no longer uniquely determine the circle.)
This shows two ways to construct circles that run through some of the points:
- The dotted circle runs through
F
,E
andC
. It is fixed by this requirement. As a consequence it missesB
by a small amount. - The red dashed circle runs through the midpoint of
BC
and through these points. It missesF
andE
by small amounts.
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{%
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
node[circle through 3 points={F}{E}{C},draw=blue,dotted]{};
draw[red,dashed]
let p1=($(B)-(C)$), n1={veclen(x1,y1)/2} in ($(B)!0.5!(C)$) circle (n1);
end{tikzpicture}
end{document}
It will be possible to construct the sphere as well. However, as mentioned its boundary may not run through any of the points.
ADDENDUM: In your setup, the four points do not determine a unique sphere because they all lie in a plane. Using Mathematica I was able to express F
as a linear combination
F = x B + y C + z E
where
So in this setup it is not possible to draw a unique sphere.
I edited your mathematical equations so that it is easier to read them. If it is wrong or you don't like it, feel free to re-edit it :))
– JouleV
Jan 15 at 8:42
@JouleV Thanks a lot!
– marmot
Jan 15 at 15:04
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
},
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%2ftex.stackexchange.com%2fquestions%2f470177%2fhow-to-draw-a-circle-sphere-passing-through-four-points%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
A circle is determined by 3 points. A sphere, of course, needs at least 4 points on its boundary to be determined. However, the projection of the sphere, i.e. the circle, won't necessarily run through the projections of these points. (Actually, if the sphere is uniquely determined by these points, the boundary circle, i.e. the projection of the sphere on the screen coordinates, will never run through all projections of the points because for this to happen, the points need to lie in a plane, but then they no longer uniquely determine the circle.)
This shows two ways to construct circles that run through some of the points:
- The dotted circle runs through
F
,E
andC
. It is fixed by this requirement. As a consequence it missesB
by a small amount. - The red dashed circle runs through the midpoint of
BC
and through these points. It missesF
andE
by small amounts.
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{%
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
node[circle through 3 points={F}{E}{C},draw=blue,dotted]{};
draw[red,dashed]
let p1=($(B)-(C)$), n1={veclen(x1,y1)/2} in ($(B)!0.5!(C)$) circle (n1);
end{tikzpicture}
end{document}
It will be possible to construct the sphere as well. However, as mentioned its boundary may not run through any of the points.
ADDENDUM: In your setup, the four points do not determine a unique sphere because they all lie in a plane. Using Mathematica I was able to express F
as a linear combination
F = x B + y C + z E
where
So in this setup it is not possible to draw a unique sphere.
I edited your mathematical equations so that it is easier to read them. If it is wrong or you don't like it, feel free to re-edit it :))
– JouleV
Jan 15 at 8:42
@JouleV Thanks a lot!
– marmot
Jan 15 at 15:04
add a comment |
A circle is determined by 3 points. A sphere, of course, needs at least 4 points on its boundary to be determined. However, the projection of the sphere, i.e. the circle, won't necessarily run through the projections of these points. (Actually, if the sphere is uniquely determined by these points, the boundary circle, i.e. the projection of the sphere on the screen coordinates, will never run through all projections of the points because for this to happen, the points need to lie in a plane, but then they no longer uniquely determine the circle.)
This shows two ways to construct circles that run through some of the points:
- The dotted circle runs through
F
,E
andC
. It is fixed by this requirement. As a consequence it missesB
by a small amount. - The red dashed circle runs through the midpoint of
BC
and through these points. It missesF
andE
by small amounts.
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{%
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
node[circle through 3 points={F}{E}{C},draw=blue,dotted]{};
draw[red,dashed]
let p1=($(B)-(C)$), n1={veclen(x1,y1)/2} in ($(B)!0.5!(C)$) circle (n1);
end{tikzpicture}
end{document}
It will be possible to construct the sphere as well. However, as mentioned its boundary may not run through any of the points.
ADDENDUM: In your setup, the four points do not determine a unique sphere because they all lie in a plane. Using Mathematica I was able to express F
as a linear combination
F = x B + y C + z E
where
So in this setup it is not possible to draw a unique sphere.
I edited your mathematical equations so that it is easier to read them. If it is wrong or you don't like it, feel free to re-edit it :))
– JouleV
Jan 15 at 8:42
@JouleV Thanks a lot!
– marmot
Jan 15 at 15:04
add a comment |
A circle is determined by 3 points. A sphere, of course, needs at least 4 points on its boundary to be determined. However, the projection of the sphere, i.e. the circle, won't necessarily run through the projections of these points. (Actually, if the sphere is uniquely determined by these points, the boundary circle, i.e. the projection of the sphere on the screen coordinates, will never run through all projections of the points because for this to happen, the points need to lie in a plane, but then they no longer uniquely determine the circle.)
This shows two ways to construct circles that run through some of the points:
- The dotted circle runs through
F
,E
andC
. It is fixed by this requirement. As a consequence it missesB
by a small amount. - The red dashed circle runs through the midpoint of
BC
and through these points. It missesF
andE
by small amounts.
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{%
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
node[circle through 3 points={F}{E}{C},draw=blue,dotted]{};
draw[red,dashed]
let p1=($(B)-(C)$), n1={veclen(x1,y1)/2} in ($(B)!0.5!(C)$) circle (n1);
end{tikzpicture}
end{document}
It will be possible to construct the sphere as well. However, as mentioned its boundary may not run through any of the points.
ADDENDUM: In your setup, the four points do not determine a unique sphere because they all lie in a plane. Using Mathematica I was able to express F
as a linear combination
F = x B + y C + z E
where
So in this setup it is not possible to draw a unique sphere.
A circle is determined by 3 points. A sphere, of course, needs at least 4 points on its boundary to be determined. However, the projection of the sphere, i.e. the circle, won't necessarily run through the projections of these points. (Actually, if the sphere is uniquely determined by these points, the boundary circle, i.e. the projection of the sphere on the screen coordinates, will never run through all projections of the points because for this to happen, the points need to lie in a plane, but then they no longer uniquely determine the circle.)
This shows two ways to construct circles that run through some of the points:
- The dotted circle runs through
F
,E
andC
. It is fixed by this requirement. As a consequence it missesB
by a small amount. - The red dashed circle runs through the midpoint of
BC
and through these points. It missesF
andE
by small amounts.
documentclass[border=3mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz,tikz-3dplot}
usepackage{tkz-euclide}
usetkzobj{all}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{%
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
usetikzlibrary{intersections,calc,backgrounds}
begin{document}
tdplotsetmaincoords{70}{110}
%tdplotsetmaincoords{80}{100}
begin{tikzpicture}[tdplot_main_coords,scale=1.5]
pgfmathsetmacroa{3}
pgfmathsetmacrob{4}
pgfmathsetmacroh{5}
% definitions
path
coordinate(A) at (0,0,0)
coordinate (B) at (a,0,0)
coordinate (C) at (0,b,0)
coordinate (S) at (0,0,h)
coordinate (E) at ({a*h^2/(a*a + h*h)},0,{(a*a*h)/(a*a + h*h)})
coordinate (F) at (0,{(b*h*h)/(b*b + h*h)},{(b*b*h)/(b*b + h*h)});
draw[dashed,thick]
(A) -- (B) (A) -- (C) (A) -- (E) (S)--(A) (F)--(A);
draw[thick]
(S) -- (B) -- (C) -- cycle;
draw[thick]
(F) -- (B) (C)--(E) (F)--(E);
tkzMarkRightAngle(S,E,A);
tkzMarkRightAngle(S,F,A);
foreach point/position in {A/below,B/left,C/below,S/above,E/left,F/above}
{
fill (point) circle (.8pt);
node[position=3pt] at (point) {$point$};
}
node[circle through 3 points={F}{E}{C},draw=blue,dotted]{};
draw[red,dashed]
let p1=($(B)-(C)$), n1={veclen(x1,y1)/2} in ($(B)!0.5!(C)$) circle (n1);
end{tikzpicture}
end{document}
It will be possible to construct the sphere as well. However, as mentioned its boundary may not run through any of the points.
ADDENDUM: In your setup, the four points do not determine a unique sphere because they all lie in a plane. Using Mathematica I was able to express F
as a linear combination
F = x B + y C + z E
where
So in this setup it is not possible to draw a unique sphere.
edited Jan 15 at 8:41
JouleV
2,656830
2,656830
answered Jan 15 at 4:47
marmotmarmot
97.6k4112216
97.6k4112216
I edited your mathematical equations so that it is easier to read them. If it is wrong or you don't like it, feel free to re-edit it :))
– JouleV
Jan 15 at 8:42
@JouleV Thanks a lot!
– marmot
Jan 15 at 15:04
add a comment |
I edited your mathematical equations so that it is easier to read them. If it is wrong or you don't like it, feel free to re-edit it :))
– JouleV
Jan 15 at 8:42
@JouleV Thanks a lot!
– marmot
Jan 15 at 15:04
I edited your mathematical equations so that it is easier to read them. If it is wrong or you don't like it, feel free to re-edit it :))
– JouleV
Jan 15 at 8:42
I edited your mathematical equations so that it is easier to read them. If it is wrong or you don't like it, feel free to re-edit it :))
– JouleV
Jan 15 at 8:42
@JouleV Thanks a lot!
– marmot
Jan 15 at 15:04
@JouleV Thanks a lot!
– marmot
Jan 15 at 15:04
add a comment |
Thanks for contributing an answer to TeX - LaTeX 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.
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%2ftex.stackexchange.com%2fquestions%2f470177%2fhow-to-draw-a-circle-sphere-passing-through-four-points%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
2
A circle is already uniquely fixed by 3 (noncollinear) points. There exist answers that show you how to find such a circle. E.g. tex.stackexchange.com/questions/461161/… (Sorry for advertising;-)
– marmot
Jan 15 at 3:38
@marmot Is it true in 3D?
– minhthien_2016
Jan 15 at 3:52
1
I believe that an orthographic projection of a sphere is a circle. The subtle point is whether the projected circle runs through the points you indicate, something that I cannot decide without more information on how the sphere is determined.
– marmot
Jan 15 at 3:56
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
Jan 15 at 3:59
1
That circle doesn't look very circular.
– RemcoGerlich
Jan 15 at 9:07