4

I am trying to draw like this picture enter image description here

I tried

\documentclass[border=2 mm,12pt]{standalone}
\usepackage{fouriernc}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
    \tdplotsetmaincoords{70}{180}
    \begin{tikzpicture}[tdplot_main_coords,line join = round, line cap = round]
        \coordinate (A) at (0,0,0);
        \coordinate (S) at (7/2,{-7*sqrt(3)/6},14/3);
        \coordinate (C) at (7,0,0);
        \coordinate (B) at  ({65/14},{15*sqrt(3)/14},0);
        \coordinate (I) at  (7/2,{-7*sqrt(3)/6},0) ;

        \draw[very thick] (A) -- (B) (B) -- (C)  (S) --  (A) (S) --(B) (S) -- (C) ;

        \draw[dashed ] (C) -- (A) (I) -- (A) (I) -- (B) (I) --(C) (S) --(I) ;
        \draw[very thick] (I) circle ({7/sqrt(3)});
        \foreach \point/\position in {A/below,B/below,C/below,
            I/below,S/above}
        {
            \fill (\point) circle (1.5pt);
            \node[\position=3pt] at (\point) {$\point$};
        }
          \end{tikzpicture}
  \end{document}

and got

enter image description here

How to draw dashed arc of a circle behind pyramid?

  • Only an idea, a nice effect could be made with some transparency. – Harald Lichtenstein Mar 11 at 6:33
6

One thing that always works is the reverseclip trick.

\documentclass[border=2 mm,12pt]{standalone}
\usepackage{fouriernc}
\usepackage{tikz}
\usepackage{tikz-3dplot}
% based on https://tex.stackexchange.com/a/12033/121799
\tikzset{reverseclip/.style={insert path={(current bounding box.south west)rectangle 
  (current bounding box.north east)} }}
\begin{document}
    \tdplotsetmaincoords{70}{180}
    \begin{tikzpicture}[tdplot_main_coords,line join = round, line cap = round]
        \coordinate (A) at (0,0,0);
        \coordinate (S) at (7/2,{-7*sqrt(3)/6},14/3);
        \coordinate (C) at (7,0,0);
        \coordinate (B) at  ({65/14},{15*sqrt(3)/14},0);
        \coordinate (I) at  (7/2,{-7*sqrt(3)/6},0) ;

        \draw[very thick] (A) -- (B) (B) -- (C)  (S) --  (A) (S) --(B) (S) -- (C) ;

        \draw[dashed ] (C) -- (A) (I) -- (A) (I) -- (B) (I) --(C) (S) --(I) ;
        \path (I) circle ({1.01*7/sqrt(3)});
        \begin{scope}
         \clip (S) -- (C) -- (B) -- (A) -- cycle [reverseclip];
         \draw[very thick] (I) circle ({7/sqrt(3)});
        \end{scope}
        \begin{scope}
         \clip (S) -- (C) -- (B) -- (A);
         \draw[dashed] (I) circle ({7/sqrt(3)});
        \end{scope}
        \foreach \point/\position in {A/below,B/below,C/below,
            I/below,S/above}
        {
            \fill (\point) circle (1.5pt);
            \node[\position=3pt] at (\point) {$\point$};
        }
    \end{tikzpicture}
\end{document}

enter image description here

  • @minhthien_2016 Yes, you are right. Sorry! I fixed it. (I actually do not know what went wrong, perhaps I forgot to press command+c so that the older version was in the buffer.) – user121799 Mar 11 at 3:08
  • A new question at here tex.stackexchange.com/questions/479756/… – minhthien_2016 Mar 16 at 11:48
3

Using the intersections library, the code would look like this (I have highlighted in red the required line):

enter image description here

\documentclass[border=2 mm,12pt]{standalone}
\usepackage{fouriernc}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{intersections}
\colorlet{bgcolor}{white}

\tikzset{
    overdraw/.style={preaction={draw,bgcolor,line width=#1}},
    overdraw/.default=2pt
}

\begin{document}
    \tdplotsetmaincoords{70}{180}
    \begin{tikzpicture}[tdplot_main_coords,line join = round, line cap = round]
        \coordinate (A) at (0,0,0);
        \coordinate (S) at (7/2,{-7*sqrt(3)/6},14/3);
        \coordinate (C) at (7,0,0);
        \coordinate (B) at  ({65/14},{15*sqrt(3)/14},0);
        \coordinate (I) at  (7/2,{-7*sqrt(3)/6},0) ;

        \draw[very thick] (A) -- (B) (B) -- (C) (S) --(B);
        \draw[very thick,name path=SC] (S) -- (C);
        \draw[very thick,name path=SA] (S) --  (A);

        \draw[very thick,name path=CIR] (I) circle ({7/sqrt(3)});

        \path [name intersections={of=SC and CIR, by={C,C'}}];
        \path [name intersections={of=SA and CIR, by={D,D'}}];
        \draw[red,dashed,overdraw] (C') to [bend right=-10] (D'); %to draw the curved path
        \draw[dashed] (C) -- (A) (I) -- (A) (I) -- (B) (I) --(C) (S) --(I) ;
        \foreach \point/\position in {A/below,B/below,C/below,
            I/below,S/above}
        {
            \fill (\point) circle (1.5pt);
            \node[\position=3pt] at (\point) {$\point$};
        }
          \end{tikzpicture}
  \end{document} 
  • I think, the lines don't cut path=CIR. – minhthien_2016 Mar 11 at 3:52
  • @minhthien_2016 - I have updated my answer. – subham soni Mar 11 at 3:57
  • Please do not get me wrong, but the overdraw style seems to be remarkably similar to what one can find in tex.stackexchange.com/a/20874/121799. Wouldn't it be more appropriate to give credit to tex.stackexchange.com/a/20874/121799 for this? – user121799 Mar 11 at 7:32
  • @subhamsoni If the line SC cut CIR at C,C', then the line SC line on the plane of the circle, and then, there is not the pyramid. – minhthien_2016 Mar 11 at 9:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.