¿Cómo puedo insertar un cilindro en un cono en la figura dada?

¿Cómo puedo insertar un cilindro en un cono en la figura dada?

¿Cómo podemos colocar el cilindro usando el siguiente código en el cono? Por favor, ayuda, no puedo colocar este cilindro en el cono... será de gran ayuda.

\documentclass{article}
\usepackage{amsmath}
\usepackage{lmodern}
\usepackage[x11names]{xcolor}
\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{mathptmx}
\usepackage{geometry}
\usetikzlibrary{intersections}
\geometry{
    top=0.5in,            % <-- you want to adjust this
    inner=0.5in,
    outer=0.5in,
    bottom=0.5in,
    headheight=3ex,       % <-- and this
    headsep=2ex,          % <-- and this
}
\usepackage{verbatim}
\everymath{\displaystyle}
\usepackage{amsmath}

\usetikzlibrary{calc}
\usepackage{mathptmx}
\usepackage{gnuplottex}
\everymath{\displaystyle}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}



\begin{tikzpicture}
\draw[dashed] (0,0) arc (170:10:2cm and 0.4cm)coordinate[pos=0] (a);
\draw (0,0) arc (-170:-10:2cm and 0.4cm)coordinate (b);
\draw[densely dashed] ([yshift=4cm]$(a)!0.5!(b)$) -- node[right,font=\footnotesize] {$h$}coordinate[pos=0.95] (aa)($(a)!0.5!(b)$)
-- node[above,font=\footnotesize] {$r$}coordinate[pos=0.1] (bb) (b);
\draw (aa) -| (bb);
\draw (a) -- ([yshift=4cm]$(a)!0.5!(b)$) -- (b);

\draw (0,0) ellipse (1.25 and 0.5);
\draw (-1.25,0) -- (-1.25,-3.5);
\draw (-1.25,-3.5) arc (180:360:1.25 and 0.5);
\draw [dashed] (-1.25,-3.5) arc (180:360:1.25 and -0.5);
\draw (1.25,-3.5) -- (1.25,0);  
\fill [gray,opacity=0.5] (-1.25,0) -- (-1.25,-3.5) arc (180:360:1.25 and 0.5) -- (1.25,0) arc (0:180:1.25 and -0.5);


\end{tikzpicture}

Respuesta1

Puedes probar este código

\documentclass[border=1mm,tikz,12pt]{standalone} 
    \usepackage{tikz-3dplot} 
\usetikzlibrary{calc,backgrounds} 
\begin{document} 
    \pgfmathsetmacro\th{75} 
    \pgfmathsetmacro\az{120} 
    \tdplotsetmaincoords{\th}{\az} 
    \pgfmathsetmacro\a{1} 
    \pgfmathsetmacro\R{5*\a} %radius of base 
    \pgfmathsetmacro\v{5*\a} %hight of cone 
    \pgfmathsetmacro\d{2*\R} %side AB 
            \pgfmathsetmacro\h{\v/2}
    \pgfmathsetmacro\myr{(\v-\h)*\R/\v} 
        \pgfmathsetmacro\cott{{cot(\th)}} 
    \pgfmathsetmacro\fraction{\R*\cott/\v} 
    \pgfmathsetmacro\fraction{\fraction<1 ? \fraction : 1} 
    \pgfmathsetmacro\angle{{acos(\fraction)}} 
    
    \pgfmathsetmacro\PhiOne{180+(\az-90)+\angle} 
    \pgfmathsetmacro\PhiTwo{180+(\az-90)-\angle} 
    \pgfmathsetmacro\sinPhiOne{{sin(\PhiOne)}} 
    \pgfmathsetmacro\cosPhiOne{{cos(\PhiOne)}} 
    \pgfmathsetmacro\sinPhiTwo{{sin(\PhiTwo)}} 
    \pgfmathsetmacro\cosPhiTwo{{cos(\PhiTwo)}} 
    \pgfmathsetmacro\sinazp{{sin(\az-90)}} 
    \pgfmathsetmacro\cosazp{{cos(\az-90)}} 
    \pgfmathsetmacro\sinazm{{sin(90-\az)}} 
    \pgfmathsetmacro\cosazm{{cos(90-\az)}} 
    \begin{tikzpicture} [tdplot_main_coords,line join = round, line cap = round] 
    \coordinate (O) at (0,0,0) ; 
    \coordinate (S) at (0,0,\v); 
    \draw[dashed]  (S)--(O) ; 
    \begin{scope}[canvas is xy plane at z=0]
    
    \draw[dashed] (\tdplotmainphi:\myr) arc(\tdplotmainphi:\tdplotmainphi+180:\myr);
    
    \draw[dashed] (\tdplotmainphi:\myr) coordinate(BR) arc(\tdplotmainphi:\tdplotmainphi-180:\myr) coordinate(BL);
    \coordinate (O) at (0,0);
    \draw[dashed] (BL) -- (BR); 
    \end{scope}
    %
    \begin{scope}[canvas is xy plane at z=\h]
    \coordinate (O') at (0,0);
    
    \draw [dashed](BR) -- (\tdplotmainphi:\myr) (BL) -- (\tdplotmainphi-180:\myr); 
    
    \draw[dashed] (\tdplotmainphi:\myr) arc(\tdplotmainphi:\tdplotmainphi+180:\myr);
    
    \draw[thick] (\tdplotmainphi:\myr) coordinate(BR) arc(\tdplotmainphi:\tdplotmainphi-180:\myr) coordinate(BL);
\draw[dashed]  (\tdplotmainphi:\myr)  -- (\tdplotmainphi-180:\myr); 
    \end{scope}
\tdplotdrawarc[tdplot_main_coords,thick]{(O)}{\R}{\PhiOne}{360+\PhiTwo}{anchor=north}{} 
    \tdplotdrawarc[tdplot_main_coords,dashed]{(O)}{\R}{\PhiTwo}{\PhiOne}{anchor=north}{} 
    \draw[thick] (0,0,\v) -- (\R*\cosPhiOne,\R*\sinPhiOne,0); 
    \draw[thick] (0,0,\v) -- (\R*\cosPhiTwo,\R*\sinPhiTwo,0); 
\end{tikzpicture} 
    \end{document}

ingrese la descripción de la imagen aquí

Con 3dtoolsenaquí, puedes usar este código.

\documentclass[border=1mm,tikz]{standalone} 
\usetikzlibrary{calc,3dtools}% https://github.com/marmotghost/tikz-3dtools

    \begin{document} 
        \begin{tikzpicture}[3d/install view={phi=110,theta=70},line join = round, line cap = round,
            declare function={R=2;v=R;% base radius and height of the cone 
                r=R/2;% radius of the cylinder
                h=(R-r)*v/R;%  height of the base of the upper circle
            }] 
            \draw[3d/hidden] (0,0,0) coordinate (O) circle[radius=r]
            --  (0,0,v) coordinate (S) (0,0,h) coordinate (H)
            [3d/screen coords] (-r,0) -- (-r,0|-H) (r,0) -- (r,0|-H); 
            \path pic{3d/cone={r=R,h=v}} (0,0,h) pic{3d/cone={r=r,h/.evaluated=v-h}};   
        \end{tikzpicture} 
    
    \begin{tikzpicture}[3d/install view={phi=110,theta=70},line join = round, line cap = round,
        declare function={R=2;v=R;% base radius and height of the cone 
            r=R/2;% radius of the cylinder
            h=(R-r)*v/R;%  height of the base of the upper circle
        }] 
        \draw[3d/hidden] (0,0,0) coordinate (O) circle[radius=r]
        --  (0,0,v) coordinate (S) (0,0,h) coordinate (H)
     ([xshift=-r*1cm]O) -- ([xshift=-r*1cm]H)
        ([xshift=r*1cm]O) -- ([xshift=r*1cm]H); 
        \path pic{3d/cone={r=R,h=v}} (0,0,h) pic{3d/cone={r=r,h/.evaluated=v-h}};   
    \end{tikzpicture} 
    \end{document}  

ingrese la descripción de la imagen aquí

información relacionada