
Me gustaría aprovechar z=x^2+y^2
el intervalo 0<z<9
. Normalmente lo he estado usando pgfplots
con el addplot3
comando, y para dominios rectangulares eso no parece causar demasiados problemas. Ejemplo (de¿Existe alguna forma sencilla de dibujar una superficie reglada como un paraboloide hiperbólico en TikZ?):
En mi caso, sin embargo, me gustaría dibujar un paraboloide y me gustaría que el borde de la curva estuviera r=3
en el z=9
plano. Mi primer intento fue algo como esto (adaptado de la pregunta 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, el dominio causa un problema: el paraboloide no se imprime nada bien porque el último valor z evaluado no está en z=9
, sino más bien cerca del siguiente z=9
, variando para cada par de coordenadas (x,y).
Podría configurarlo samples y=300
, pero el tiempo de compilación será una locura. Además, limita las posibilidades del documento, ya que estoy consumiendo mucho tamaño de pila.
\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}
¿Seguramente hay una mejor manera de hacer esto?
Respuesta1
Como dijo Percusse en el comentario, podrías 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}