TransWikia.com

How can I draw sphere passing though four points without knowing center and radius?

TeX - LaTeX Asked by Thuy Nguyen on April 29, 2021

Based on This paper, I have a Heronian Tetrahedra Are
Lattice Tetrahedra with vertices O(0, 0, 0), A(15, -60, 20), B(96, 120, 128), C(63, 84, 56) and
based on This answer I tried

documentclass[tikz,border=2 mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz-3dplot-circleofsphere}
begin{document} 
    tdplotsetmaincoords{75}{170} 
    begin{tikzpicture}[scale=1/10,line cap=butt,line join=round,tdplot_main_coords,declare function={R= 5*sqrt(451369)/14;%
    }] 
    path 
    coordinate (O) at (0, 0, 0) 
    coordinate (A) at (15, -60, 20) 
    coordinate (B) at (96, 120, 128)
    coordinate (C) at (63, 84, 56)
    coordinate (I) at   (-1383/14, 90/7, 1528/7)
    ; 
    begin{scope}[tdplot_screen_coords]
    draw[thick] (I) circle (R);
    end{scope}
    end{tikzpicture} 
end{document}

I can’t obtain the result because the Dimension is too large.
Without calculating coordinates of center and radius of sphere, how can I draw the sphere passing through O, A, B, C?

2 Answers

If your question is how to remove the dimension too large error, one possible answer is: with fpu.

documentclass[tikz,border=2 mm,12pt]{standalone}
usepackage{fouriernc}
usepackage{tikz-3dplot-circleofsphere}
usetikzlibrary{fpu}
defpgfmathsetmacroFPU#1#2{begingroup%
pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}%
pgfmathsetmacro{#1}{#2}%
pgfmathsmuggle#1endgroup}%

begin{document} 
    tdplotsetmaincoords{75}{170} 
    begin{tikzpicture}[scale=1/10,line cap=butt,line join=round,tdplot_main_coords,
        %declare function={R= 5*sqrt(451369/(14*14));%  }
        ] 
    pgfmathsetmacroFPU{myR}{5*sqrt(451369)/14}
    path 
    coordinate (O) at (0, 0, 0) 
    coordinate (A) at (15, -60, 20) 
    coordinate (B) at (96, 120, 128)
    coordinate (C) at (63, 84, 56)
    coordinate (I) at   (-1383/14, 90/7, 1528/7)
    ; 
    begin{scope}[tdplot_screen_coords]
     draw[thick] (I) circle[radius=myR];
    end{scope}
    end{tikzpicture} 
end{document}

Answered by user194703 on April 29, 2021

I just used a hand calculator.

documentclass[tikz,border=2 mm,12pt]{standalone}
usepackage{tikz-3dplot}
begin{document} 
    tdplotsetmaincoords{75}{170} 
    begin{tikzpicture}[scale=1/10,line cap=butt,line join=round,tdplot_main_coords] 
    path 
    coordinate (O) at (0, 0, 0) 
    coordinate (A) at (15, -60, 20) 
    coordinate (B) at (96, 120, 128)
    coordinate (C) at (63, 84, 56)
    coordinate (I) at (-98.79, 12.86, 218.29)
    ; 
    begin{scope}[tdplot_screen_coords]
    draw[thick] (I) circle (239.94);
    end{scope}
    ; 
    draw[thick] (O)--(A) (O)--(B) (O)--(C) (A)--(B) (A)--(C) (B)--(C);
    end{tikzpicture} 
end{document}

demo

Answered by John Kormylo on April 29, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP