Wie kann ich eine Kugel zeichnen, die durch vier Punkte verläuft, ohne Mittelpunkt und Radius zu kennen?

Wie kann ich eine Kugel zeichnen, die durch vier Punkte verläuft, ohne Mittelpunkt und Radius zu kennen?

Bezogen aufDieses Papier, ich habe ein Heronian Tetraeder Sind Gittertetraeder mit Ecken O(0, 0, 0), A(15, -60, 20), B(96, 120, 128), C(63, 84, 56)und
basierend auf Diese AntwortIch habe es versucht

\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}

Ich kann das Ergebnis nicht erhalten, da die Dimension zu groß ist. Wie kann ich die durchlaufende Kugel zeichnen, ohne die Koordinaten des Mittelpunkts und des Radius der Kugel zu berechnen O, A, B, C?

Antwort1

Ich habe einfach einen Taschenrechner benutzt.

\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

Antwort2

Wenn Ihre Frage lautet, wie Sie den dimension too largeFehler beheben können, lautet eine mögliche Antwort: mit fpu.

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

\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}

verwandte Informationen