% vim: ts=2 sw=2 et : \documentclass[tikz, border=2mm]{standalone} \usepackage{amsmath} \usepackage{bm} \usepackage{times} \usepackage{txfonts} \usepackage{tikz-3dplot} \tdplotsetmaincoords{60}{130} \pgfmathsetmacro{\l}{2} \begin{document} \begin{tikzpicture}[ >=latex, tdplot_main_coords, ] % origin and poles \coordinate (O) at (0,0,0); \coordinate (NP) at (0,0,\l); \coordinate (SP) at (0,0,-\l); % gray unit circle \tdplotdrawarc[lightgray, dashed]{(O)}{\l}{0}{360}{}{}; \draw[lightgray, dashed] (-\l, 0, 0) to (\l, 0, 0); \draw[lightgray, dashed] (0, -\l, 0) to (0, \l, 0); % axis \draw[->] (O) -- ++(0,0,1.25*\l) node[above] {\(\mathbf{\hat{z}}\)}; % meridians \foreach \phi in {0, 30, 60, ..., 150}{ \tdplotsetrotatedcoords{\phi}{90}{0}; \tdplotdrawarc[lightgray, densely dotted, tdplot_rotated_coords]{(O)}{\l}{0}{360}{}{}; } % dot above and its projection \pgfmathsetmacro{\phi}{120} \pgfmathsetmacro{\theta}{40} \pgfmathsetmacro{\px}{cos(\phi)*sin(\theta)*\l} \pgfmathsetmacro{\py}{sin(\phi)*sin(\theta)*\l} \pgfmathsetmacro{\pz}{cos(\theta)*\l}) % Special meridian \tdplotsetrotatedcoords{\phi-90}{90}{0}; \tdplotdrawarc[gray, tdplot_rotated_coords]{(O)}{\l}{0}{360}{}{}; % point A \coordinate (A) at (\px,\py,\pz); \coordinate (Ap) at (\px,\py, 0); % lines \draw[red!80!black, thick, ->] (O) -- (A); \draw[red!80!black] (O) -- node[midway, below, font=\small, sloped, fill=white] {$\sqrt{1 - z^2}$} (Ap) -- node[midway, right, font=\small, sloped, fill=white, anchor=north] {$z = \cos \vartheta$} (A) node[above right, fill=white] {$r = 1$}; % theta arc \tdplotsetrotatedcoords{\phi-90}{-90}{0}; \tdplotdrawarc[blue!80!black, ->, tdplot_rotated_coords]{(O)}{.95\l}{0}{\theta}{}{}; \node[above right = 1mm, blue!80!black] at (0,0,.8\l) {\(\bm{\hat{\vartheta}}\)}; \end{tikzpicture} \end{document}