
Eu gostaria de desenhar z=x^2+y^2
no intervalo 0<z<9
. Normalmente, estou usando apenas pgfplots
o addplot3
comando e para domínios retangulares que não parecem causar muitos problemas. Exemplo (deExiste alguma maneira fácil de desenhar uma superfície regrada como um parabolóide hiperbólico no TikZ?):
No meu caso, porém, gostaria de desenhar um parabolóide e gostaria que a borda da curva estivesse r=3
no z=9
plano. Minha primeira tentativa foi algo assim (adaptado da pergunta anterior):
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9] {x^2+y^2};
\end{axis}
\end{tikzpicture}
\end{document}
Claramente, o domínio causa um problema: o parabolóide não é impresso de forma bonita porque o último valor z avaliado não está em z=9
, está em algum lugar próximo daquele abaixo z=9
, variando para cada par de coordenadas (x,y).
Eu poderia definir samples y=300
, mas o tempo de compilação será uma loucura. Além disso, limita as possibilidades do documento, já que estou consumindo muito tamanho da pilha.
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9,samples y=300] {x^2+y^2};
\end{axis}
\end{tikzpicture}
\end{document}
Certamente há uma maneira melhor de fazer isso?
Responder1
Como disse percusse no comentário, você poderia usar coordenadas polares:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9, data cs=polar, domain=0:360, y domain=0:3] (x, y, y^2);
\end{axis}
\end{tikzpicture}
\end{document}