¿Cómo puedo obtener la línea completa del círculo de esta imagen?

¿Cómo puedo obtener la línea completa del círculo de esta imagen?

Basado en mi pregunta aquí¿Cómo dibujar un arco discontinuo de un círculo detrás de una pirámide?

Lo intenté

\documentclass[border=2 mm,12pt,tikz]{standalone}
\usepackage{tikz,tikz-3dplot} 
\usepackage{tkz-euclide}
 \usetikzlibrary{intersections,calc,backgrounds}
\usepackage{fouriernc}

 \tikzset{reverseclip/.style={insert path={(current bounding box.south west)rectangle 
            (current bounding box.north east)} }}
 \begin{document}

\tdplotsetmaincoords{70}{290}
 \begin{tikzpicture}[tdplot_main_coords,line join = round, line cap = round]
 \pgfmathsetmacro\a{4*sqrt(2)/2}
\pgfmathsetmacro\h{2*\a*sqrt(2)/2}
 % definitions
 \path
 coordinate (O) at  (0,0,0)
 coordinate(A) at (\a,0,0)
coordinate (B) at (0,\a,0) 
coordinate (C) at (-\a,0,0)                    
coordinate (D) at (0,-\a,0) 
coordinate (S) at (0,0,\h)                

;
     \draw [thick] (S) -- (B) -- (C) -- cycle;
\draw [thick] (S) -- (C) -- (D) -- cycle;
 \draw[dashed,thick]
       (A) -- (B)  (A) -- (C)  (B) -- (D) (S)--(A) (A)--(D) (S)--(O);
\begin{scope}

\path (O) circle ({\a});
\clip (S) --   (B) -- (C)   --  (D) -- cycle [reverseclip];
\draw[very thick] (O) circle ({\a});
\end{scope}
\begin{scope}
\clip (S) --   (B) -- (C)   --  (D) --  cycle;
\draw[dashed] (O) circle ({\a});
\end{scope}


 \foreach \point/\position in {A/above,B/left,C/below,D/right,O/below,S/above}
 {
   \fill (\point) circle (1.8pt);
   \node[\position=1.5pt] at (\point) {$\point$};
 }

\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

¿Cómo puedo obtener la línea completa del círculo de esta imagen?

Respuesta1

Esto sucede porque en el momento que estás usando reverseclipel current bounding boxno es lo suficientemente grande como para que quepa un círculo con el ancho de línea que vas a dibujar. En su imagen, la solución quizás más sencilla es dibujar las etiquetas antes de dibujar el círculo.

\documentclass[border=2 mm,12pt,tikz]{standalone}
\usepackage{tikz,tikz-3dplot} 
\usepackage{tkz-euclide}
 \usetikzlibrary{intersections,calc,backgrounds}
\usepackage{fouriernc}

 \tikzset{reverseclip/.style={insert path={(current bounding box.south west)rectangle 
            (current bounding box.north east)} }}
 \begin{document}

\tdplotsetmaincoords{70}{290}
 \begin{tikzpicture}[tdplot_main_coords,line join = round, line cap = round]
 \pgfmathsetmacro\a{4*sqrt(2)/2}
\pgfmathsetmacro\h{2*\a*sqrt(2)/2}
 % definitions
 \path
 coordinate (O) at  (0,0,0)
 coordinate(A) at (\a,0,0)
coordinate (B) at (0,\a,0) 
coordinate (C) at (-\a,0,0)                    
coordinate (D) at (0,-\a,0) 
coordinate (S) at (0,0,\h)                

;
     \draw [thick] (S) -- (B) -- (C) -- cycle;
\draw [thick] (S) -- (C) -- (D) -- cycle;
 \draw[dashed,thick]
       (A) -- (B)  (A) -- (C)  (B) -- (D) (S)--(A) (A)--(D) (S)--(O);
 \foreach \point/\position in {A/above,B/left,C/below,D/right,O/below,S/above}
 {
   \fill (\point) circle (1.8pt);
   \node[\position=1.5pt] at (\point) {$\point$};
 }

\begin{scope}
\path(O) circle ({\a});
\clip (S) --   (B) -- (C)   --  (D) -- cycle [reverseclip];
\draw[very thick] (O) circle ({\a});
\end{scope}
\begin{scope}
\clip (S) --   (B) -- (C)   --  (D) --  cycle;
\draw[dashed] (O) circle ({\a});
\end{scope}


\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Corre con xelatex:

\documentclass[pstricks,border=15pt]{standalone}
\usepackage{pst-3dplot}%
\begin{document}
\begin{pspicture}[showgrid=false](-4,-2)(4,6)
\psset{Alpha=30,Beta=15}
\pstThreeDLine[arrows=*-*,linestyle=dashed](-2,-2,0)(0,0,5)
\pstThreeDLine[arrows=*-*](2,-2,0)(0,0,5)
\pstThreeDLine[arrows=*-*](-2,2,0)(0,0,5)
\pstThreeDLine[arrows=*-*](2,2,0)(0,0,5)
\pstThreeDLine(2,-2,0)(2,2,0)(-2,2,0)
\pstThreeDLine[linestyle=dashed](2,-2,0)(-2,-2,0)(-2,2,0)(2,-2,0)
\pstThreeDLine[linestyle=dashed](-2,-2,0)(2,2,0)
\pstThreeDLine[linestyle=dashed,arrows=*-](0,0,0)(0,0,5)
\pstThreeDEllipse[linestyle=dashed](0,0,0)(2,2,0)(-2,2,0)
\pstThreeDEllipse[beginAngle=-90,endAngle=140,linewidth=1.5pt](0,0,0)(2,2,0)(-2,2,0)
\pstThreeDPut(-2.4,-2.2,0.2){\large$A$}
\pstThreeDPut(2.2,-2.2,0.2){\large$B$}
\pstThreeDPut(2.4,2.2,-0.2){\large$C$}
\pstThreeDPut(-2.4,2.2,0.2){\large$D$}
\pstThreeDPut(-0.2,0,-0.2){\large$O$}
\pstThreeDPut(0,0,5.3){\large$S$}
\end{pspicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada