Quantcast
Channel: Pgfplots 3d Arc Arrow - TeX - LaTeX Stack Exchange
Viewing all articles
Browse latest Browse all 2

Answer by bjorne for Pgfplots 3d Arc Arrow

$
0
0

I finally managed to do it. Although if you change the arrow head (to latex, for example) it doesn't look aligned because it remains two dimensional.

\documentclass[crop,tikz]{standalone}
\usepackage{pgfplots}%,tikz-3dplot}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[hide axis,axis equal]
    \def\h{2}
    \def\r{1}
    \def\R{2}

    \addplot3 [surf,color=black,faceted color=black,opacity=.1,data cs=polar,domain=0:360,y domain=\r:\R,samples=50,samples y=15,data cs=polar] {(1-(y-\r)/(\R-\r))*\h};

    \def\ang{-100}
    \def\f{.7}
    \def\ff{.3}
    \def\fff{.5}
    \def\ffff{.8}
    \draw[blue,thick] ({\ff*\R*cos(\ang)},{\ff*\R*sin(\ang)},0) -- ({\R*cos(\ang)},{\R*sin(\ang)},0) -- ({\f*\R*cos(\ang)},{\f*\R*sin(\ang)},{(1-(\f*\R-\r)/(\R-\r))*\h});

    \def\fr{.5*\R}
    \addplot3[thick,variable=t,samples y=0,blue,domain=0:{atan(\h/(\R-\r))}
    ,->] ({\R*cos(\ang)+(\fr*cos(t))*cos(\ang-180)},{\R*sin(\ang)+(\fr*cos(t))*sin(\ang-180)},{\fr*sin(t)}) node[xshift=.05cm,yshift=-.55cm]{$\theta$};

    \end{axis}
\end{tikzpicture}
\end{document}

enter image description here


Viewing all articles
Browse latest Browse all 2

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>