![Как нарисовать сферу, проходящую через четыре точки, не зная центра и радиуса?](https://rvso.com/image/405352/%D0%9A%D0%B0%D0%BA%20%D0%BD%D0%B0%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%81%D1%84%D0%B5%D1%80%D1%83%2C%20%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D1%83%D1%8E%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20%D1%87%D0%B5%D1%82%D1%8B%D1%80%D0%B5%20%D1%82%D0%BE%D1%87%D0%BA%D0%B8%2C%20%D0%BD%D0%B5%20%D0%B7%D0%BD%D0%B0%D1%8F%20%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%20%D0%B8%20%D1%80%D0%B0%D0%B4%D0%B8%D1%83%D1%81%D0%B0%3F.png)
На основеЭта бумага, у меня есть Героновы тетраэдры - это решетчатые тетраэдры с вершинами O(0, 0, 0), A(15, -60, 20), B(96, 120, 128), C(63, 84, 56)
и
основанные на Этот ответЯ пытался
\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}
Я не могу получить результат, потому что Dimension слишком большой. Без вычисления координат центра и радиуса сферы, как я могу нарисовать сферу, проходящую через O, A, B, C
?
решение1
Я только что воспользовался ручным калькулятором.
\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}
решение2
Если ваш вопрос заключается в том, как устранить dimension too large
ошибку, один из возможных ответов: с помощью 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}