2

would you mind making amendments to my codes. A portion of ring needs to be dashed and my cone is not truly a cone. How can I have a shaded cone?

Ring:

\begin{figure} [H]
\begin{center}
\begin{tikzpicture}
\draw (0,0,0) circle (2cm);
\draw (-2,0,0) arc (180:360:2 and 0.6);
\draw[dashed] (2,0,0) arc (0:180:2 and 0.6);
\fill[fill=black] (0,0,0) circle (1pt);
\draw[thin,->,>=stealth] (0,0,0) -- (3,0,0)
\draw[line width=2] (-1.3,1.5,0) arc (180:360:1.3 and 0.4);
\draw [->,>=stealth]  (0,0,0) -- (0.5,1.1,0) node [midway,right] {$R$};
\draw [thin,->,>=stealth]  (0,0,0) -- (0,0,3);
\draw [thin,->,>=stealth]  (0,0,0) -- (0,2.5,0);
\draw[thin] (0,0.4,0) arc (90:65:0.4) node[near end,above] {$\gamma$};
\draw[dashed] (0.45,1.2) -- (0,1.4);
\end{tikzpicture}
\end{center}
\end{figure}

Cone:

\begin{figure} [H]
\begin{center}
\begin{tikzpicture}
\draw (0,0) circle (2cm);
\draw (-2,0) arc (180:360:2 and 0.6);
\draw[dashed] (2,0,0) arc (0:180:2 and 0.6);
\fill[fill=black] (0,0,0) circle (1pt);
\draw[thin,->,>=stealth] (0,0,0) -- (3,0,0);

\draw[line width=2] (-1.2,1.55,0) arc (180:360:1.2 and 0.4);
\draw[line width=2] (-1.3,1.5,0) -- (0,0,0);
\draw[line width=2] (1.3,1.5,0) -- (0,0,0);

\draw [->,>=stealth]  (0,0,0) -- (0.5,1.1,0);
\draw [thin,->,>=stealth]  (0,0,0) -- (0,0,3);

\draw [thin,->,>=stealth]  (0,0,0) -- (0,2.5,0);
\draw[thin] (0,0.4,0) arc (90:65:0.4) node[near end,above] {$\gamma$};
\draw[dashed] (0.45,1.2) -- (0,1.4);
\end{tikzpicture}
\end{center}
\end{figure}
1
  • 1
    Welcome to TeX.SX! Can you please expand the code snippet that you have posted to a full minimal working example. It is much easier to help you if we can start with some compilable code that illustrates your problem. A MWE should start with a \documentclass command, include any necessary packages and be as small as possible to demonstrate your problem. At the moment we have to guess what packages etc you are using before we can compile your code. – user30471 Jun 28 '18 at 7:10
1

DISCLAIMER: These are not 100% 3D features, rather I just took what you had and made some approximation to get 3D-like features. There are macros that do a better job e.g. here (and perhaps also here), but these may be overkill in the present situation.

Anyway, here comes some sort of minimal fix. I load the tikz-3dplot package and chose the view coordinates such that I reproduce your equator circle, and then add the latitude circle. IMHO the huge line width does not really help to make the thing more appealing, but I kept it of course.

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{108}{00}
\begin{tikzpicture}
\draw (0,0,0) circle (2cm);
\begin{scope}[tdplot_main_coords,samples=60]
\draw plot[variable=\x,domain=0:180] 
({2*cos(\x)},{2*sin(\x)},{0});
\draw[dashed] plot[variable=\x,domain=0:-180] 
({2*cos(\x)},{2*sin(\x)},{0});
\draw[line width=2] plot[variable=\x,domain=-10:190] 
({2*cos(\x)*cos(50)},{2*sin(\x)*cos(50)},{2*sin(50)});
\draw[dashed] plot[variable=\x,domain=-180:180] 
({2*cos(\x)*cos(50)},{2*sin(\x)*cos(50)},{2*sin(50)});
\end{scope}
\fill[fill=black] (0,0,0) circle (1pt);
\draw[thin,->,>=stealth] (0,0,0) -- (3,0,0);

\draw [->,>=stealth]  (0,0,0) -- (0.5,1.1,0) node [midway,right] {$R$};
\draw [thin,->,>=stealth]  (0,0,0) -- (0,0,3);
\draw [thin,->,>=stealth]  (0,0,0) -- (0,2.5,0);
\draw[thin] (0,0.4,0) arc (90:65:0.4) node[near end,above] {$\gamma$};
\draw[dashed] (0.45,1.2) -- (0,1.4);
\end{tikzpicture}
\begin{tikzpicture}
\draw (0,0) circle (2cm);
\draw (-2,0) arc (180:360:2 and 0.6);
\draw[dashed] (-2,0) arc (180:360:2 and 0.6);
\fill[fill=black] (0,0,0) circle (1pt);
\draw[thin,->,>=stealth] (0,0,0) -- (3,0,0);

\begin{scope}[tdplot_main_coords,samples=60]
\draw plot[variable=\x,domain=0:180] 
({2*cos(\x)},{2*sin(\x)},{0});
\draw[dashed] plot[variable=\x,domain=0:-180] 
({2*cos(\x)},{2*sin(\x)},{0});
\fill[gray!20] plot[variable=\x,domain=-180:180] 
({2*cos(\x)*cos(50)},{2*sin(\x)*cos(50)},{2*sin(50)}) -- cycle;
\shadedraw[line width=2,line join=round] ({-2*cos(10)*cos(50)},{2*sin(10)*cos(50)},{2*sin(50)}) -- 
(0,0,0)--  ({2*cos(10)*cos(50)},{2*sin(10)*cos(50)},{2*sin(50)}) --
plot[variable=\x,domain=-10:190] 
({2*cos(\x)*cos(50)},{2*sin(\x)*cos(50)},{2*sin(50)}) -- cycle;
\draw[dashed] plot[variable=\x,domain=-180:180] 
({2*cos(\x)*cos(50)},{2*sin(\x)*cos(50)},{2*sin(50)});
\end{scope}

\draw [->,>=stealth]  (0,0,0) -- (0.5,1.1,0);
\draw [thin,->,>=stealth]  (0,0,0) -- (0,0,3);

\draw [thin,->,>=stealth]  (0,0,0) -- (0,2.5,0);
\draw[thin] (0,0.4,0) arc (90:65:0.4) node[near end,above] {$\gamma$};
\draw[dashed] (0.45,1.2) -- (0,1.4);
\end{tikzpicture}
\end{document}

enter image description here

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.