Cálculo de coordenadas 3D direita em ambiente de eixo

Cálculo de coordenadas 3D direita em ambiente de eixo

Eu desenho um gráfico paramétrico usando pgfplotse quero adicionar um ponto específico na curva. Usei addplot3+ coordinatespara adicionar um marcador específico na curva em coordenadas específicas. Este ponto está bem posicionado (em vermelho). Agora quero acrescentar um texto específico sobre esse ponto usando \coordinatesobre axismeio ambiente. Eu tentei coordenadas diretas e axis csnenhuma está funcionando. O mais estranho é que na documentação do pgfplots está escrito (versão 1.16, seção 4.17.1) que axis csé o sistema de coordenadas padrão no axisambiente e pode ser omitido. Porém, se eu remover axis cso ponto não é o mesmo. Tenho certeza, estou faltando alguma coisa :-).

MWE:

\documentclass{standalone}

\usepackage{pgfplots}

\begin{document}

%parameters
\pgfmathsetmacro{\vrotP}{pi/4}
\def\lengthb{4}
\def\lengthh{3}
\pgfmathsetmacro{\timeTot}{4*pi/\vrotP}
\pgfmathsetmacro{\timeMid}{\timeTot/2}
\pgfmathsetmacro{\timeRef}{7}

\begin{tikzpicture}[
    declare function={%
    theta(\t)=\vrotP*\t;
    px(\t)=\lengthb*cos(theta(\t));
    py(\t)=\lengthb*sin(theta(\t));
    pz(\t)=-\lengthh*theta(\t);
    }%
]
\begin{axis}[axis lines=center,
    axis on top,
    samples y=0,
    trig format plots=rad,
    xmax=5,
    xmin=-5,
    ymax=5,
    ymin=-5,
    zmin=-45,
    zmax=0,
    ]
    % \addplot[variable=t,domain=0:10,samples=50]{pz(t)};
    \addplot3[blue,line width=2pt,variable=t,domain=0:\timeTot,samples=100]({px(t)},{py(t)},{pz(t)});
    % point M
    \addplot3+[red,only marks,line width=2pt] coordinates{({px(\timeRef)},{py(\timeRef)},{pz(\timeRef)})};
    %
    \pgfmathsetmacro{\tmpX}{px(\timeRef)}
    \pgfmathsetmacro{\tmpY}{py(\timeRef)}
    \pgfmathsetmacro{\tmpZ}{pz(\timeRef)}
    \coordinate (orig) at (axis cs:0,0,0);
    \coordinate (M) at (axis cs:\tmpX,\tmpY,\tmpZ);
    \coordinate (Mp) at (\tmpX,\tmpY,\tmpZ);
    \draw(orig)--(M);
    \draw(orig)--(Mp);
    \node[anchor=south] at (orig) {$O$};
    \node[] at (M) {$M$};
\end{axis}
\end{tikzpicture}

\end{document}

Resultado:

resultado

informação relacionada