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 1 more comment
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
2 hours ago
@marmot Is it true in 3D?
– minhthien_2016
2 hours ago
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
2 hours ago
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
2 hours ago
OK this tells you already where the center of the circle will be. If you know that E and C are on the boundary, this completely fixes the circle. If you load the call library, you could do draw let p1=($(E)-(C)$), n1={veclen(x1,y1)/2} in ($(E)!0.5!(C)$) circle (n1);
– marmot
2 hours ago
|
show 1 more comment
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
asked 2 hours ago
minhthien_2016minhthien_2016
1,107815
1,107815
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
2 hours ago
@marmot Is it true in 3D?
– minhthien_2016
2 hours ago
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
2 hours ago
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
2 hours ago
OK this tells you already where the center of the circle will be. If you know that E and C are on the boundary, this completely fixes the circle. If you load the call library, you could do draw let p1=($(E)-(C)$), n1={veclen(x1,y1)/2} in ($(E)!0.5!(C)$) circle (n1);
– marmot
2 hours ago
|
show 1 more comment
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
2 hours ago
@marmot Is it true in 3D?
– minhthien_2016
2 hours ago
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
2 hours ago
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
2 hours ago
OK this tells you already where the center of the circle will be. If you know that E and C are on the boundary, this completely fixes the circle. If you load the call library, you could do draw let p1=($(E)-(C)$), n1={veclen(x1,y1)/2} in ($(E)!0.5!(C)$) circle (n1);
– marmot
2 hours ago
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
2 hours ago
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
2 hours ago
@marmot Is it true in 3D?
– minhthien_2016
2 hours ago
@marmot Is it true in 3D?
– minhthien_2016
2 hours ago
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
2 hours ago
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
2 hours ago
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
2 hours ago
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
2 hours ago
OK this tells you already where the center of the circle will be. If you know that E and C are on the boundary, this completely fixes the circle. If you load the call library, you could do draw let p1=($(E)-(C)$), n1={veclen(x1,y1)/2} in ($(E)!0.5!(C)$) circle (n1);
– marmot
2 hours ago
OK this tells you already where the center of the circle will be. If you know that E and C are on the boundary, this completely fixes the circle. If you load the call library, you could do draw let p1=($(E)-(C)$), n1={veclen(x1,y1)/2} in ($(E)!0.5!(C)$) circle (n1);
– marmot
2 hours ago
|
show 1 more comment
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.
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.
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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.
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.
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.
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.
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.
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.
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.
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.
edited 1 hour ago
answered 1 hour ago
marmotmarmot
91.4k4106199
91.4k4106199
add a comment |
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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
2 hours ago
@marmot Is it true in 3D?
– minhthien_2016
2 hours ago
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
2 hours ago
The sphere has centre is midpoint of the segment EC.
– minhthien_2016
2 hours ago
OK this tells you already where the center of the circle will be. If you know that E and C are on the boundary, this completely fixes the circle. If you load the call library, you could do draw let p1=($(E)-(C)$), n1={veclen(x1,y1)/2} in ($(E)!0.5!(C)$) circle (n1);
– marmot
2 hours ago