7

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?

1
  • Only an idea, a nice effect could be made with some transparency. Commented Mar 11, 2019 at 6:33

2 Answers 2

5

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

2
  • @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
    Commented Mar 11, 2019 at 3:08
  • A new question at here tex.stackexchange.com/questions/479756/… Commented Mar 16, 2019 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} 
4
  • I think, the lines don't cut path=CIR. Commented Mar 11, 2019 at 3:52
  • @minhthien_2016 - I have updated my answer. Commented Mar 11, 2019 at 3:57
  • 1
    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
    Commented Mar 11, 2019 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. Commented Mar 11, 2019 at 9:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .